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_addcc.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 /* sll: sll$pack $GRi,$GRj,$GRk */
455 SEM_FN_NAME (frvbf,sll) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
457 #define FLD(f) abuf->fields.sfmt_addcc.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 SI opval = SLLSI (GET_H_GR (FLD (f_GRi)), ANDSI (GET_H_GR (FLD (f_GRj)), 31));
465 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
466 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
473 /* srl: srl$pack $GRi,$GRj,$GRk */
476 SEM_FN_NAME (frvbf,srl) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
478 #define FLD(f) abuf->fields.sfmt_addcc.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 SI opval = SRLSI (GET_H_GR (FLD (f_GRi)), ANDSI (GET_H_GR (FLD (f_GRj)), 31));
486 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
487 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
494 /* sra: sra$pack $GRi,$GRj,$GRk */
497 SEM_FN_NAME (frvbf,sra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
499 #define FLD(f) abuf->fields.sfmt_addcc.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 SI opval = SRASI (GET_H_GR (FLD (f_GRi)), ANDSI (GET_H_GR (FLD (f_GRj)), 31));
507 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
508 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
515 /* scan: scan$pack $GRi,$GRj,$GRk */
518 SEM_FN_NAME (frvbf,scan) (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);
529 tmp_tmp1 = GET_H_GR (FLD (f_GRi));
530 tmp_tmp2 = SRASI (GET_H_GR (FLD (f_GRj)), 1);
532 SI opval = frvbf_scan_result (current_cpu, XORSI (tmp_tmp1, tmp_tmp2));
533 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
534 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
542 /* cadd: cadd$pack $GRi,$GRj,$GRk,$CCi,$cond */
545 SEM_FN_NAME (frvbf,cadd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
547 #define FLD(f) abuf->fields.sfmt_cswap.f
548 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
549 int UNUSED written = 0;
550 IADDR UNUSED pc = abuf->addr;
551 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
553 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
555 SI opval = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
556 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
558 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
562 abuf->written = written;
567 /* csub: csub$pack $GRi,$GRj,$GRk,$CCi,$cond */
570 SEM_FN_NAME (frvbf,csub) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
572 #define FLD(f) abuf->fields.sfmt_cswap.f
573 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
574 int UNUSED written = 0;
575 IADDR UNUSED pc = abuf->addr;
576 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
578 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
580 SI opval = SUBSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
581 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
583 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
587 abuf->written = written;
592 /* cand: cand$pack $GRi,$GRj,$GRk,$CCi,$cond */
595 SEM_FN_NAME (frvbf,cand) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
597 #define FLD(f) abuf->fields.sfmt_cswap.f
598 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
599 int UNUSED written = 0;
600 IADDR UNUSED pc = abuf->addr;
601 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
603 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
605 SI opval = ANDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
606 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
608 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
612 abuf->written = written;
617 /* cor: cor$pack $GRi,$GRj,$GRk,$CCi,$cond */
620 SEM_FN_NAME (frvbf,cor) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
622 #define FLD(f) abuf->fields.sfmt_cswap.f
623 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
624 int UNUSED written = 0;
625 IADDR UNUSED pc = abuf->addr;
626 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
628 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
630 SI opval = ORSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
631 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
633 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
637 abuf->written = written;
642 /* cxor: cxor$pack $GRi,$GRj,$GRk,$CCi,$cond */
645 SEM_FN_NAME (frvbf,cxor) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
647 #define FLD(f) abuf->fields.sfmt_cswap.f
648 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
649 int UNUSED written = 0;
650 IADDR UNUSED pc = abuf->addr;
651 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
653 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
655 SI opval = XORSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
656 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
658 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
662 abuf->written = written;
667 /* cnot: cnot$pack $GRj,$GRk,$CCi,$cond */
670 SEM_FN_NAME (frvbf,cnot) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
672 #define FLD(f) abuf->fields.sfmt_cswap.f
673 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
674 int UNUSED written = 0;
675 IADDR UNUSED pc = abuf->addr;
676 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
678 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
680 SI opval = INVSI (GET_H_GR (FLD (f_GRj)));
681 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
683 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
687 abuf->written = written;
692 /* csmul: csmul$pack $GRi,$GRj,$GRdoublek,$CCi,$cond */
695 SEM_FN_NAME (frvbf,csmul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
697 #define FLD(f) abuf->fields.sfmt_clddu.f
698 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
699 int UNUSED written = 0;
700 IADDR UNUSED pc = abuf->addr;
701 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
703 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
705 DI opval = MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (GET_H_GR (FLD (f_GRj))));
706 sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
708 TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
712 abuf->written = written;
717 /* csdiv: csdiv$pack $GRi,$GRj,$GRk,$CCi,$cond */
720 SEM_FN_NAME (frvbf,csdiv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
722 #define FLD(f) abuf->fields.sfmt_cswap.f
723 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
724 int UNUSED written = 0;
725 IADDR UNUSED pc = abuf->addr;
726 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
728 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
730 frvbf_signed_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), FLD (f_GRk), 0);
735 abuf->written = written;
740 /* cudiv: cudiv$pack $GRi,$GRj,$GRk,$CCi,$cond */
743 SEM_FN_NAME (frvbf,cudiv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
745 #define FLD(f) abuf->fields.sfmt_cswap.f
746 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
747 int UNUSED written = 0;
748 IADDR UNUSED pc = abuf->addr;
749 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
751 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
753 frvbf_unsigned_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), FLD (f_GRk), 0);
758 abuf->written = written;
763 /* csll: csll$pack $GRi,$GRj,$GRk,$CCi,$cond */
766 SEM_FN_NAME (frvbf,csll) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
768 #define FLD(f) abuf->fields.sfmt_cswap.f
769 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
770 int UNUSED written = 0;
771 IADDR UNUSED pc = abuf->addr;
772 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
774 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
776 SI opval = SLLSI (GET_H_GR (FLD (f_GRi)), ANDSI (GET_H_GR (FLD (f_GRj)), 31));
777 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
779 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
783 abuf->written = written;
788 /* csrl: csrl$pack $GRi,$GRj,$GRk,$CCi,$cond */
791 SEM_FN_NAME (frvbf,csrl) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
793 #define FLD(f) abuf->fields.sfmt_cswap.f
794 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
795 int UNUSED written = 0;
796 IADDR UNUSED pc = abuf->addr;
797 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
799 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
801 SI opval = SRLSI (GET_H_GR (FLD (f_GRi)), ANDSI (GET_H_GR (FLD (f_GRj)), 31));
802 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
804 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
808 abuf->written = written;
813 /* csra: csra$pack $GRi,$GRj,$GRk,$CCi,$cond */
816 SEM_FN_NAME (frvbf,csra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
818 #define FLD(f) abuf->fields.sfmt_cswap.f
819 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
820 int UNUSED written = 0;
821 IADDR UNUSED pc = abuf->addr;
822 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
824 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
826 SI opval = SRASI (GET_H_GR (FLD (f_GRi)), ANDSI (GET_H_GR (FLD (f_GRj)), 31));
827 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
829 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
833 abuf->written = written;
838 /* cscan: cscan$pack $GRi,$GRj,$GRk,$CCi,$cond */
841 SEM_FN_NAME (frvbf,cscan) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
843 #define FLD(f) abuf->fields.sfmt_cswap.f
844 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
845 int UNUSED written = 0;
846 IADDR UNUSED pc = abuf->addr;
847 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
849 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
853 tmp_tmp1 = GET_H_GR (FLD (f_GRi));
854 tmp_tmp2 = SRASI (GET_H_GR (FLD (f_GRj)), 1);
856 SI opval = frvbf_scan_result (current_cpu, XORSI (tmp_tmp1, tmp_tmp2));
857 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
859 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
864 abuf->written = written;
869 /* addcc: addcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
872 SEM_FN_NAME (frvbf,addcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
874 #define FLD(f) abuf->fields.sfmt_addcc.f
875 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
876 int UNUSED written = 0;
877 IADDR UNUSED pc = abuf->addr;
878 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
884 tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
885 tmp_tmp = ADDOFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0);
886 if (EQBI (tmp_tmp, 0)) {
887 tmp_cc = ANDQI (tmp_cc, 13);
889 tmp_cc = ORQI (tmp_cc, 2);
891 tmp_tmp = ADDCFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0);
892 if (EQBI (tmp_tmp, 0)) {
893 tmp_cc = ANDQI (tmp_cc, 14);
895 tmp_cc = ORQI (tmp_cc, 1);
897 tmp_result = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
898 if (EQSI (tmp_result, 0)) {
899 tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
901 if (LTSI (tmp_result, 0)) {
902 tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
904 tmp_cc = ANDQI (tmp_cc, 3);
908 SI opval = tmp_result;
909 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
910 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
914 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
915 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
923 /* subcc: subcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
926 SEM_FN_NAME (frvbf,subcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
928 #define FLD(f) abuf->fields.sfmt_addcc.f
929 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
930 int UNUSED written = 0;
931 IADDR UNUSED pc = abuf->addr;
932 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
938 tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
939 tmp_tmp = SUBOFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0);
940 if (EQBI (tmp_tmp, 0)) {
941 tmp_cc = ANDQI (tmp_cc, 13);
943 tmp_cc = ORQI (tmp_cc, 2);
945 tmp_tmp = SUBCFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0);
946 if (EQBI (tmp_tmp, 0)) {
947 tmp_cc = ANDQI (tmp_cc, 14);
949 tmp_cc = ORQI (tmp_cc, 1);
951 tmp_result = SUBSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
952 if (EQSI (tmp_result, 0)) {
953 tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
955 if (LTSI (tmp_result, 0)) {
956 tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
958 tmp_cc = ANDQI (tmp_cc, 3);
962 SI opval = tmp_result;
963 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
964 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
968 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
969 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
977 /* andcc: andcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
980 SEM_FN_NAME (frvbf,andcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
982 #define FLD(f) abuf->fields.sfmt_addcc.f
983 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
984 int UNUSED written = 0;
985 IADDR UNUSED pc = abuf->addr;
986 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
990 tmp_tmp = ANDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
993 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
994 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
996 if (EQSI (tmp_tmp, 0)) {
998 UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 7), 4);
999 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1000 written |= (1 << 4);
1001 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1004 if (LTSI (tmp_tmp, 0)) {
1006 UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 11), 8);
1007 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1008 written |= (1 << 4);
1009 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1013 UQI opval = ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 3);
1014 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1015 written |= (1 << 4);
1016 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1022 abuf->written = written;
1027 /* orcc: orcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1030 SEM_FN_NAME (frvbf,orcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1032 #define FLD(f) abuf->fields.sfmt_addcc.f
1033 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1034 int UNUSED written = 0;
1035 IADDR UNUSED pc = abuf->addr;
1036 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1040 tmp_tmp = ORSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
1043 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1044 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1046 if (EQSI (tmp_tmp, 0)) {
1048 UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 7), 4);
1049 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1050 written |= (1 << 4);
1051 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1054 if (LTSI (tmp_tmp, 0)) {
1056 UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 11), 8);
1057 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1058 written |= (1 << 4);
1059 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1063 UQI opval = ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 3);
1064 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1065 written |= (1 << 4);
1066 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1072 abuf->written = written;
1077 /* xorcc: xorcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1080 SEM_FN_NAME (frvbf,xorcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1082 #define FLD(f) abuf->fields.sfmt_addcc.f
1083 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1084 int UNUSED written = 0;
1085 IADDR UNUSED pc = abuf->addr;
1086 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1090 tmp_tmp = XORSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
1093 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1094 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1096 if (EQSI (tmp_tmp, 0)) {
1098 UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 7), 4);
1099 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1100 written |= (1 << 4);
1101 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1104 if (LTSI (tmp_tmp, 0)) {
1106 UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 11), 8);
1107 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1108 written |= (1 << 4);
1109 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1113 UQI opval = ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 3);
1114 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1115 written |= (1 << 4);
1116 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1122 abuf->written = written;
1127 /* sllcc: sllcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1130 SEM_FN_NAME (frvbf,sllcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1132 #define FLD(f) abuf->fields.sfmt_addcc.f
1133 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1134 int UNUSED written = 0;
1135 IADDR UNUSED pc = abuf->addr;
1136 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1142 tmp_shift = ANDSI (GET_H_GR (FLD (f_GRj)), 31);
1143 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)]));
1144 tmp_tmp = SLLSI (GET_H_GR (FLD (f_GRi)), tmp_shift);
1147 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1148 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1150 if (EQSI (tmp_tmp, 0)) {
1151 tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1153 if (LTSI (tmp_tmp, 0)) {
1154 tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1156 tmp_cc = ANDQI (tmp_cc, 3);
1161 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1162 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1170 /* srlcc: srlcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1173 SEM_FN_NAME (frvbf,srlcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1175 #define FLD(f) abuf->fields.sfmt_addcc.f
1176 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1177 int UNUSED written = 0;
1178 IADDR UNUSED pc = abuf->addr;
1179 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1185 tmp_shift = ANDSI (GET_H_GR (FLD (f_GRj)), 31);
1186 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)]));
1187 tmp_tmp = SRLSI (GET_H_GR (FLD (f_GRi)), tmp_shift);
1190 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1191 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1193 if (EQSI (tmp_tmp, 0)) {
1194 tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1196 if (LTSI (tmp_tmp, 0)) {
1197 tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1199 tmp_cc = ANDQI (tmp_cc, 3);
1204 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1205 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1213 /* sracc: sracc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1216 SEM_FN_NAME (frvbf,sracc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1218 #define FLD(f) abuf->fields.sfmt_addcc.f
1219 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1220 int UNUSED written = 0;
1221 IADDR UNUSED pc = abuf->addr;
1222 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1228 tmp_shift = ANDSI (GET_H_GR (FLD (f_GRj)), 31);
1229 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)]));
1230 tmp_tmp = SRASI (GET_H_GR (FLD (f_GRi)), tmp_shift);
1233 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1234 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1236 if (EQSI (tmp_tmp, 0)) {
1237 tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1239 if (LTSI (tmp_tmp, 0)) {
1240 tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1242 tmp_cc = ANDQI (tmp_cc, 3);
1247 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1248 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1256 /* smulcc: smulcc$pack $GRi,$GRj,$GRdoublek,$ICCi_1 */
1259 SEM_FN_NAME (frvbf,smulcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1261 #define FLD(f) abuf->fields.sfmt_smulcc.f
1262 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1263 int UNUSED written = 0;
1264 IADDR UNUSED pc = abuf->addr;
1265 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1270 tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
1271 tmp_tmp = MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (GET_H_GR (FLD (f_GRj))));
1272 if (EQDI (SRLDI (tmp_tmp, 63), 0)) {
1273 tmp_cc = ANDQI (tmp_cc, 7);
1275 tmp_cc = ORQI (tmp_cc, 8);
1277 if (EQBI (EQDI (tmp_tmp, 0), 0)) {
1278 tmp_cc = ANDQI (tmp_cc, 11);
1280 tmp_cc = ORQI (tmp_cc, 4);
1284 sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
1285 TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
1289 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1290 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1298 /* umulcc: umulcc$pack $GRi,$GRj,$GRdoublek,$ICCi_1 */
1301 SEM_FN_NAME (frvbf,umulcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1303 #define FLD(f) abuf->fields.sfmt_smulcc.f
1304 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1305 int UNUSED written = 0;
1306 IADDR UNUSED pc = abuf->addr;
1307 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1312 tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
1313 tmp_tmp = MULDI (ZEXTSIDI (GET_H_GR (FLD (f_GRi))), ZEXTSIDI (GET_H_GR (FLD (f_GRj))));
1314 if (EQDI (SRLDI (tmp_tmp, 63), 0)) {
1315 tmp_cc = ANDQI (tmp_cc, 7);
1317 tmp_cc = ORQI (tmp_cc, 8);
1319 if (EQBI (EQDI (tmp_tmp, 0), 0)) {
1320 tmp_cc = ANDQI (tmp_cc, 11);
1322 tmp_cc = ORQI (tmp_cc, 4);
1326 sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
1327 TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
1331 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1332 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1340 /* caddcc: caddcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1343 SEM_FN_NAME (frvbf,caddcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1345 #define FLD(f) abuf->fields.sfmt_caddcc.f
1346 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1347 int UNUSED written = 0;
1348 IADDR UNUSED pc = abuf->addr;
1349 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1351 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1356 tmp_cc = CPU (h_iccr[((FLD (f_CCi)) & (3))]);
1357 tmp_tmp = ADDOFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0);
1358 if (EQBI (tmp_tmp, 0)) {
1359 tmp_cc = ANDQI (tmp_cc, 13);
1361 tmp_cc = ORQI (tmp_cc, 2);
1363 tmp_tmp = ADDCFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0);
1364 if (EQBI (tmp_tmp, 0)) {
1365 tmp_cc = ANDQI (tmp_cc, 14);
1367 tmp_cc = ORQI (tmp_cc, 1);
1369 tmp_result = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
1370 if (EQSI (tmp_result, 0)) {
1371 tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1373 if (LTSI (tmp_result, 0)) {
1374 tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1376 tmp_cc = ANDQI (tmp_cc, 3);
1380 SI opval = tmp_result;
1381 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1382 written |= (1 << 6);
1383 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1387 sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1388 written |= (1 << 7);
1389 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1394 abuf->written = written;
1399 /* csubcc: csubcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1402 SEM_FN_NAME (frvbf,csubcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1404 #define FLD(f) abuf->fields.sfmt_caddcc.f
1405 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1406 int UNUSED written = 0;
1407 IADDR UNUSED pc = abuf->addr;
1408 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1410 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1415 tmp_cc = CPU (h_iccr[((FLD (f_CCi)) & (3))]);
1416 tmp_tmp = SUBOFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0);
1417 if (EQBI (tmp_tmp, 0)) {
1418 tmp_cc = ANDQI (tmp_cc, 13);
1420 tmp_cc = ORQI (tmp_cc, 2);
1422 tmp_tmp = SUBCFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0);
1423 if (EQBI (tmp_tmp, 0)) {
1424 tmp_cc = ANDQI (tmp_cc, 14);
1426 tmp_cc = ORQI (tmp_cc, 1);
1428 tmp_result = SUBSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
1429 if (EQSI (tmp_result, 0)) {
1430 tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1432 if (LTSI (tmp_result, 0)) {
1433 tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1435 tmp_cc = ANDQI (tmp_cc, 3);
1439 SI opval = tmp_result;
1440 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1441 written |= (1 << 6);
1442 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1446 sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1447 written |= (1 << 7);
1448 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1453 abuf->written = written;
1458 /* csmulcc: csmulcc$pack $GRi,$GRj,$GRdoublek,$CCi,$cond */
1461 SEM_FN_NAME (frvbf,csmulcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1463 #define FLD(f) abuf->fields.sfmt_csmulcc.f
1464 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1465 int UNUSED written = 0;
1466 IADDR UNUSED pc = abuf->addr;
1467 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1469 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1473 tmp_cc = CPU (h_iccr[((FLD (f_CCi)) & (3))]);
1474 tmp_tmp = MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (GET_H_GR (FLD (f_GRj))));
1475 if (EQDI (SRLDI (tmp_tmp, 63), 0)) {
1476 tmp_cc = ANDQI (tmp_cc, 7);
1478 tmp_cc = ORQI (tmp_cc, 8);
1480 if (EQBI (EQDI (tmp_tmp, 0), 0)) {
1481 tmp_cc = ANDQI (tmp_cc, 11);
1483 tmp_cc = ORQI (tmp_cc, 4);
1487 sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
1488 written |= (1 << 6);
1489 TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
1493 sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1494 written |= (1 << 7);
1495 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1500 abuf->written = written;
1505 /* candcc: candcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1508 SEM_FN_NAME (frvbf,candcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1510 #define FLD(f) abuf->fields.sfmt_caddcc.f
1511 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1512 int UNUSED written = 0;
1513 IADDR UNUSED pc = abuf->addr;
1514 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1516 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1519 tmp_tmp = ANDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
1522 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1523 written |= (1 << 6);
1524 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1526 if (EQSI (tmp_tmp, 0)) {
1528 UQI opval = ORQI (ANDQI (CPU (h_iccr[((FLD (f_CCi)) & (3))]), 7), 4);
1529 sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1530 written |= (1 << 7);
1531 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1534 if (LTSI (tmp_tmp, 0)) {
1536 UQI opval = ORQI (ANDQI (CPU (h_iccr[((FLD (f_CCi)) & (3))]), 11), 8);
1537 sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1538 written |= (1 << 7);
1539 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1543 UQI opval = ANDQI (CPU (h_iccr[((FLD (f_CCi)) & (3))]), 3);
1544 sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1545 written |= (1 << 7);
1546 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1553 abuf->written = written;
1558 /* corcc: corcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1561 SEM_FN_NAME (frvbf,corcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1563 #define FLD(f) abuf->fields.sfmt_caddcc.f
1564 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1565 int UNUSED written = 0;
1566 IADDR UNUSED pc = abuf->addr;
1567 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1569 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1572 tmp_tmp = ORSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
1575 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1576 written |= (1 << 6);
1577 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1579 if (EQSI (tmp_tmp, 0)) {
1581 UQI opval = ORQI (ANDQI (CPU (h_iccr[((FLD (f_CCi)) & (3))]), 7), 4);
1582 sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1583 written |= (1 << 7);
1584 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1587 if (LTSI (tmp_tmp, 0)) {
1589 UQI opval = ORQI (ANDQI (CPU (h_iccr[((FLD (f_CCi)) & (3))]), 11), 8);
1590 sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1591 written |= (1 << 7);
1592 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1596 UQI opval = ANDQI (CPU (h_iccr[((FLD (f_CCi)) & (3))]), 3);
1597 sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1598 written |= (1 << 7);
1599 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1606 abuf->written = written;
1611 /* cxorcc: cxorcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1614 SEM_FN_NAME (frvbf,cxorcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1616 #define FLD(f) abuf->fields.sfmt_caddcc.f
1617 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1618 int UNUSED written = 0;
1619 IADDR UNUSED pc = abuf->addr;
1620 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1622 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1625 tmp_tmp = XORSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
1628 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1629 written |= (1 << 6);
1630 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1632 if (EQSI (tmp_tmp, 0)) {
1634 UQI opval = ORQI (ANDQI (CPU (h_iccr[((FLD (f_CCi)) & (3))]), 7), 4);
1635 sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1636 written |= (1 << 7);
1637 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1640 if (LTSI (tmp_tmp, 0)) {
1642 UQI opval = ORQI (ANDQI (CPU (h_iccr[((FLD (f_CCi)) & (3))]), 11), 8);
1643 sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1644 written |= (1 << 7);
1645 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1649 UQI opval = ANDQI (CPU (h_iccr[((FLD (f_CCi)) & (3))]), 3);
1650 sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1651 written |= (1 << 7);
1652 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1659 abuf->written = written;
1664 /* csllcc: csllcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1667 SEM_FN_NAME (frvbf,csllcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1669 #define FLD(f) abuf->fields.sfmt_caddcc.f
1670 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1671 int UNUSED written = 0;
1672 IADDR UNUSED pc = abuf->addr;
1673 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1675 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1680 tmp_shift = ANDSI (GET_H_GR (FLD (f_GRj)), 31);
1681 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))]));
1682 tmp_tmp = SLLSI (GET_H_GR (FLD (f_GRi)), tmp_shift);
1685 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1686 written |= (1 << 6);
1687 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1689 if (EQSI (tmp_tmp, 0)) {
1690 tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1692 if (LTSI (tmp_tmp, 0)) {
1693 tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1695 tmp_cc = ANDQI (tmp_cc, 3);
1700 sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1701 written |= (1 << 7);
1702 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1707 abuf->written = written;
1712 /* csrlcc: csrlcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1715 SEM_FN_NAME (frvbf,csrlcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1717 #define FLD(f) abuf->fields.sfmt_caddcc.f
1718 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1719 int UNUSED written = 0;
1720 IADDR UNUSED pc = abuf->addr;
1721 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1723 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1728 tmp_shift = ANDSI (GET_H_GR (FLD (f_GRj)), 31);
1729 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))]));
1730 tmp_tmp = SRLSI (GET_H_GR (FLD (f_GRi)), tmp_shift);
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)) {
1738 tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1740 if (LTSI (tmp_tmp, 0)) {
1741 tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1743 tmp_cc = ANDQI (tmp_cc, 3);
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);
1755 abuf->written = written;
1760 /* csracc: csracc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1763 SEM_FN_NAME (frvbf,csracc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1765 #define FLD(f) abuf->fields.sfmt_caddcc.f
1766 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1767 int UNUSED written = 0;
1768 IADDR UNUSED pc = abuf->addr;
1769 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1771 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1776 tmp_shift = ANDSI (GET_H_GR (FLD (f_GRj)), 31);
1777 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))]));
1778 tmp_tmp = SRASI (GET_H_GR (FLD (f_GRi)), tmp_shift);
1781 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1782 written |= (1 << 6);
1783 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1785 if (EQSI (tmp_tmp, 0)) {
1786 tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1788 if (LTSI (tmp_tmp, 0)) {
1789 tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1791 tmp_cc = ANDQI (tmp_cc, 3);
1796 sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1797 written |= (1 << 7);
1798 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1803 abuf->written = written;
1808 /* addx: addx$pack $GRi,$GRj,$GRk,$ICCi_1 */
1811 SEM_FN_NAME (frvbf,addx) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1813 #define FLD(f) abuf->fields.sfmt_addcc.f
1814 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1815 int UNUSED written = 0;
1816 IADDR UNUSED pc = abuf->addr;
1817 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1820 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)));
1821 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1822 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1829 /* subx: subx$pack $GRi,$GRj,$GRk,$ICCi_1 */
1832 SEM_FN_NAME (frvbf,subx) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1834 #define FLD(f) abuf->fields.sfmt_addcc.f
1835 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1836 int UNUSED written = 0;
1837 IADDR UNUSED pc = abuf->addr;
1838 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1841 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)));
1842 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1843 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1850 /* addxcc: addxcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1853 SEM_FN_NAME (frvbf,addxcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1855 #define FLD(f) abuf->fields.sfmt_addcc.f
1856 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1857 int UNUSED written = 0;
1858 IADDR UNUSED pc = abuf->addr;
1859 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1864 tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
1865 tmp_tmp = ADDCSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), TRUNCQIBI (ANDQI (tmp_cc, 1)));
1866 if (EQSI (ADDOFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), TRUNCQIBI (ANDQI (tmp_cc, 1))), 0)) {
1867 tmp_cc = ANDQI (tmp_cc, 13);
1869 tmp_cc = ORQI (tmp_cc, 2);
1871 if (EQSI (ADDCFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), TRUNCQIBI (ANDQI (tmp_cc, 1))), 0)) {
1872 tmp_cc = ANDQI (tmp_cc, 14);
1874 tmp_cc = ORQI (tmp_cc, 1);
1876 if (EQSI (tmp_tmp, 0)) {
1877 tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1879 if (LTSI (tmp_tmp, 0)) {
1880 tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1882 tmp_cc = ANDQI (tmp_cc, 3);
1887 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1888 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1892 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1893 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1901 /* subxcc: subxcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1904 SEM_FN_NAME (frvbf,subxcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1906 #define FLD(f) abuf->fields.sfmt_addcc.f
1907 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1908 int UNUSED written = 0;
1909 IADDR UNUSED pc = abuf->addr;
1910 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1915 tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
1916 tmp_tmp = SUBCSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), TRUNCQIBI (ANDQI (tmp_cc, 1)));
1917 if (EQSI (SUBOFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), TRUNCQIBI (ANDQI (tmp_cc, 1))), 0)) {
1918 tmp_cc = ANDQI (tmp_cc, 13);
1920 tmp_cc = ORQI (tmp_cc, 2);
1922 if (EQSI (SUBCFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), TRUNCQIBI (ANDQI (tmp_cc, 1))), 0)) {
1923 tmp_cc = ANDQI (tmp_cc, 14);
1925 tmp_cc = ORQI (tmp_cc, 1);
1927 if (EQSI (tmp_tmp, 0)) {
1928 tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1930 if (LTSI (tmp_tmp, 0)) {
1931 tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1933 tmp_cc = ANDQI (tmp_cc, 3);
1938 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1939 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1943 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1944 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1952 /* addi: addi$pack $GRi,$s12,$GRk */
1955 SEM_FN_NAME (frvbf,addi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1957 #define FLD(f) abuf->fields.sfmt_swapi.f
1958 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1959 int UNUSED written = 0;
1960 IADDR UNUSED pc = abuf->addr;
1961 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1964 SI opval = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
1965 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1966 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1973 /* subi: subi$pack $GRi,$s12,$GRk */
1976 SEM_FN_NAME (frvbf,subi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1978 #define FLD(f) abuf->fields.sfmt_swapi.f
1979 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1980 int UNUSED written = 0;
1981 IADDR UNUSED pc = abuf->addr;
1982 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1985 SI opval = SUBSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
1986 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1987 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1994 /* andi: andi$pack $GRi,$s12,$GRk */
1997 SEM_FN_NAME (frvbf,andi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1999 #define FLD(f) abuf->fields.sfmt_swapi.f
2000 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2001 int UNUSED written = 0;
2002 IADDR UNUSED pc = abuf->addr;
2003 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2006 SI opval = ANDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
2007 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2008 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2015 /* ori: ori$pack $GRi,$s12,$GRk */
2018 SEM_FN_NAME (frvbf,ori) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2020 #define FLD(f) abuf->fields.sfmt_swapi.f
2021 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2022 int UNUSED written = 0;
2023 IADDR UNUSED pc = abuf->addr;
2024 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2027 SI opval = ORSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
2028 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2029 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2036 /* xori: xori$pack $GRi,$s12,$GRk */
2039 SEM_FN_NAME (frvbf,xori) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2041 #define FLD(f) abuf->fields.sfmt_swapi.f
2042 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2043 int UNUSED written = 0;
2044 IADDR UNUSED pc = abuf->addr;
2045 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2048 SI opval = XORSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
2049 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2050 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2057 /* sdivi: sdivi$pack $GRi,$s12,$GRk */
2060 SEM_FN_NAME (frvbf,sdivi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2062 #define FLD(f) abuf->fields.sfmt_swapi.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);
2069 frvbf_signed_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), FLD (f_d12), FLD (f_GRk), 0);
2077 /* nsdivi: nsdivi$pack $GRi,$s12,$GRk */
2080 SEM_FN_NAME (frvbf,nsdivi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2082 #define FLD(f) abuf->fields.sfmt_swapi.f
2083 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2084 int UNUSED written = 0;
2085 IADDR UNUSED pc = abuf->addr;
2086 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2089 frvbf_signed_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), FLD (f_d12), FLD (f_GRk), 1);
2097 /* udivi: udivi$pack $GRi,$s12,$GRk */
2100 SEM_FN_NAME (frvbf,udivi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2102 #define FLD(f) abuf->fields.sfmt_swapi.f
2103 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2104 int UNUSED written = 0;
2105 IADDR UNUSED pc = abuf->addr;
2106 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2109 frvbf_unsigned_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), FLD (f_d12), FLD (f_GRk), 0);
2117 /* nudivi: nudivi$pack $GRi,$s12,$GRk */
2120 SEM_FN_NAME (frvbf,nudivi) (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 frvbf_unsigned_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), FLD (f_d12), FLD (f_GRk), 1);
2137 /* smuli: smuli$pack $GRi,$s12,$GRdoublek */
2140 SEM_FN_NAME (frvbf,smuli) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2142 #define FLD(f) abuf->fields.sfmt_smuli.f
2143 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2144 int UNUSED written = 0;
2145 IADDR UNUSED pc = abuf->addr;
2146 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2149 DI opval = MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (FLD (f_d12)));
2150 sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
2151 TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
2158 /* umuli: umuli$pack $GRi,$s12,$GRdoublek */
2161 SEM_FN_NAME (frvbf,umuli) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2163 #define FLD(f) abuf->fields.sfmt_smuli.f
2164 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2165 int UNUSED written = 0;
2166 IADDR UNUSED pc = abuf->addr;
2167 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2170 DI opval = MULDI (ZEXTSIDI (GET_H_GR (FLD (f_GRi))), ZEXTSIDI (FLD (f_d12)));
2171 sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
2172 TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
2179 /* slli: slli$pack $GRi,$s12,$GRk */
2182 SEM_FN_NAME (frvbf,slli) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2184 #define FLD(f) abuf->fields.sfmt_swapi.f
2185 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2186 int UNUSED written = 0;
2187 IADDR UNUSED pc = abuf->addr;
2188 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2191 SI opval = SLLSI (GET_H_GR (FLD (f_GRi)), ANDSI (FLD (f_d12), 31));
2192 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2193 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2200 /* srli: srli$pack $GRi,$s12,$GRk */
2203 SEM_FN_NAME (frvbf,srli) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2205 #define FLD(f) abuf->fields.sfmt_swapi.f
2206 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2207 int UNUSED written = 0;
2208 IADDR UNUSED pc = abuf->addr;
2209 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2212 SI opval = SRLSI (GET_H_GR (FLD (f_GRi)), ANDSI (FLD (f_d12), 31));
2213 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2214 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2221 /* srai: srai$pack $GRi,$s12,$GRk */
2224 SEM_FN_NAME (frvbf,srai) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2226 #define FLD(f) abuf->fields.sfmt_swapi.f
2227 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2228 int UNUSED written = 0;
2229 IADDR UNUSED pc = abuf->addr;
2230 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2233 SI opval = SRASI (GET_H_GR (FLD (f_GRi)), ANDSI (FLD (f_d12), 31));
2234 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2235 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2242 /* scani: scani$pack $GRi,$s12,$GRk */
2245 SEM_FN_NAME (frvbf,scani) (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);
2256 tmp_tmp1 = GET_H_GR (FLD (f_GRi));
2257 tmp_tmp2 = SRASI (FLD (f_d12), 1);
2259 SI opval = frvbf_scan_result (current_cpu, XORSI (tmp_tmp1, tmp_tmp2));
2260 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2261 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2269 /* addicc: addicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2272 SEM_FN_NAME (frvbf,addicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2274 #define FLD(f) abuf->fields.sfmt_addicc.f
2275 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2276 int UNUSED written = 0;
2277 IADDR UNUSED pc = abuf->addr;
2278 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2284 tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
2285 tmp_tmp = ADDOFSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), 0);
2286 if (EQBI (tmp_tmp, 0)) {
2287 tmp_cc = ANDQI (tmp_cc, 13);
2289 tmp_cc = ORQI (tmp_cc, 2);
2291 tmp_tmp = ADDCFSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), 0);
2292 if (EQBI (tmp_tmp, 0)) {
2293 tmp_cc = ANDQI (tmp_cc, 14);
2295 tmp_cc = ORQI (tmp_cc, 1);
2297 tmp_result = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10));
2298 if (EQSI (tmp_result, 0)) {
2299 tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
2301 if (LTSI (tmp_result, 0)) {
2302 tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
2304 tmp_cc = ANDQI (tmp_cc, 3);
2308 SI opval = tmp_result;
2309 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2310 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2314 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2315 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2323 /* subicc: subicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2326 SEM_FN_NAME (frvbf,subicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2328 #define FLD(f) abuf->fields.sfmt_addicc.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);
2338 tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
2339 tmp_tmp = SUBOFSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), 0);
2340 if (EQBI (tmp_tmp, 0)) {
2341 tmp_cc = ANDQI (tmp_cc, 13);
2343 tmp_cc = ORQI (tmp_cc, 2);
2345 tmp_tmp = SUBCFSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), 0);
2346 if (EQBI (tmp_tmp, 0)) {
2347 tmp_cc = ANDQI (tmp_cc, 14);
2349 tmp_cc = ORQI (tmp_cc, 1);
2351 tmp_result = SUBSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10));
2352 if (EQSI (tmp_result, 0)) {
2353 tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
2355 if (LTSI (tmp_result, 0)) {
2356 tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
2358 tmp_cc = ANDQI (tmp_cc, 3);
2362 SI opval = tmp_result;
2363 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2364 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2368 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2369 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2377 /* andicc: andicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2380 SEM_FN_NAME (frvbf,andicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2382 #define FLD(f) abuf->fields.sfmt_addicc.f
2383 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2384 int UNUSED written = 0;
2385 IADDR UNUSED pc = abuf->addr;
2386 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2390 tmp_tmp = ANDSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10));
2393 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2394 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2396 if (EQSI (tmp_tmp, 0)) {
2398 UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 7), 4);
2399 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2400 written |= (1 << 4);
2401 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2404 if (LTSI (tmp_tmp, 0)) {
2406 UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 11), 8);
2407 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2408 written |= (1 << 4);
2409 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2413 UQI opval = ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 3);
2414 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2415 written |= (1 << 4);
2416 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2422 abuf->written = written;
2427 /* oricc: oricc$pack $GRi,$s10,$GRk,$ICCi_1 */
2430 SEM_FN_NAME (frvbf,oricc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2432 #define FLD(f) abuf->fields.sfmt_addicc.f
2433 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2434 int UNUSED written = 0;
2435 IADDR UNUSED pc = abuf->addr;
2436 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2440 tmp_tmp = ORSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10));
2443 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2444 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2446 if (EQSI (tmp_tmp, 0)) {
2448 UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 7), 4);
2449 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2450 written |= (1 << 4);
2451 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2454 if (LTSI (tmp_tmp, 0)) {
2456 UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 11), 8);
2457 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2458 written |= (1 << 4);
2459 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2463 UQI opval = ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 3);
2464 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2465 written |= (1 << 4);
2466 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2472 abuf->written = written;
2477 /* xoricc: xoricc$pack $GRi,$s10,$GRk,$ICCi_1 */
2480 SEM_FN_NAME (frvbf,xoricc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2482 #define FLD(f) abuf->fields.sfmt_addicc.f
2483 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2484 int UNUSED written = 0;
2485 IADDR UNUSED pc = abuf->addr;
2486 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2490 tmp_tmp = XORSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10));
2493 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2494 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2496 if (EQSI (tmp_tmp, 0)) {
2498 UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 7), 4);
2499 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2500 written |= (1 << 4);
2501 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2504 if (LTSI (tmp_tmp, 0)) {
2506 UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 11), 8);
2507 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2508 written |= (1 << 4);
2509 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2513 UQI opval = ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 3);
2514 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2515 written |= (1 << 4);
2516 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2522 abuf->written = written;
2527 /* smulicc: smulicc$pack $GRi,$s10,$GRdoublek,$ICCi_1 */
2530 SEM_FN_NAME (frvbf,smulicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2532 #define FLD(f) abuf->fields.sfmt_smulicc.f
2533 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2534 int UNUSED written = 0;
2535 IADDR UNUSED pc = abuf->addr;
2536 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2541 tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
2542 tmp_tmp = MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (FLD (f_s10)));
2543 if (EQDI (SRLDI (tmp_tmp, 63), 0)) {
2544 tmp_cc = ANDQI (tmp_cc, 7);
2546 tmp_cc = ORQI (tmp_cc, 8);
2548 if (EQBI (EQDI (tmp_tmp, 0), 0)) {
2549 tmp_cc = ANDQI (tmp_cc, 11);
2551 tmp_cc = ORQI (tmp_cc, 4);
2555 sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
2556 TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
2560 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2561 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2569 /* umulicc: umulicc$pack $GRi,$s10,$GRdoublek,$ICCi_1 */
2572 SEM_FN_NAME (frvbf,umulicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2574 #define FLD(f) abuf->fields.sfmt_smulicc.f
2575 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2576 int UNUSED written = 0;
2577 IADDR UNUSED pc = abuf->addr;
2578 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2583 tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
2584 tmp_tmp = MULDI (ZEXTSIDI (GET_H_GR (FLD (f_GRi))), ZEXTSIDI (FLD (f_s10)));
2585 if (EQDI (SRLDI (tmp_tmp, 63), 0)) {
2586 tmp_cc = ANDQI (tmp_cc, 7);
2588 tmp_cc = ORQI (tmp_cc, 8);
2590 if (EQBI (EQDI (tmp_tmp, 0), 0)) {
2591 tmp_cc = ANDQI (tmp_cc, 11);
2593 tmp_cc = ORQI (tmp_cc, 4);
2597 sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
2598 TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
2602 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2603 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2611 /* sllicc: sllicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2614 SEM_FN_NAME (frvbf,sllicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2616 #define FLD(f) abuf->fields.sfmt_addicc.f
2617 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2618 int UNUSED written = 0;
2619 IADDR UNUSED pc = abuf->addr;
2620 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2626 tmp_shift = ANDSI (FLD (f_s10), 31);
2627 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)]));
2628 tmp_tmp = SLLSI (GET_H_GR (FLD (f_GRi)), tmp_shift);
2631 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2632 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2634 if (EQSI (tmp_tmp, 0)) {
2635 tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
2637 if (LTSI (tmp_tmp, 0)) {
2638 tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
2640 tmp_cc = ANDQI (tmp_cc, 3);
2645 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2646 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2654 /* srlicc: srlicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2657 SEM_FN_NAME (frvbf,srlicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2659 #define FLD(f) abuf->fields.sfmt_addicc.f
2660 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2661 int UNUSED written = 0;
2662 IADDR UNUSED pc = abuf->addr;
2663 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2669 tmp_shift = ANDSI (FLD (f_s10), 31);
2670 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)]));
2671 tmp_tmp = SRLSI (GET_H_GR (FLD (f_GRi)), tmp_shift);
2674 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2675 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2677 if (EQSI (tmp_tmp, 0)) {
2678 tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
2680 if (LTSI (tmp_tmp, 0)) {
2681 tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
2683 tmp_cc = ANDQI (tmp_cc, 3);
2688 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2689 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2697 /* sraicc: sraicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2700 SEM_FN_NAME (frvbf,sraicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2702 #define FLD(f) abuf->fields.sfmt_addicc.f
2703 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2704 int UNUSED written = 0;
2705 IADDR UNUSED pc = abuf->addr;
2706 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2712 tmp_shift = ANDSI (FLD (f_s10), 31);
2713 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)]));
2714 tmp_tmp = SRASI (GET_H_GR (FLD (f_GRi)), tmp_shift);
2717 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2718 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2720 if (EQSI (tmp_tmp, 0)) {
2721 tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
2723 if (LTSI (tmp_tmp, 0)) {
2724 tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
2726 tmp_cc = ANDQI (tmp_cc, 3);
2731 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2732 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2740 /* addxi: addxi$pack $GRi,$s10,$GRk,$ICCi_1 */
2743 SEM_FN_NAME (frvbf,addxi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2745 #define FLD(f) abuf->fields.sfmt_addicc.f
2746 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2747 int UNUSED written = 0;
2748 IADDR UNUSED pc = abuf->addr;
2749 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2752 SI opval = ADDCSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 1)));
2753 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2754 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2761 /* subxi: subxi$pack $GRi,$s10,$GRk,$ICCi_1 */
2764 SEM_FN_NAME (frvbf,subxi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2766 #define FLD(f) abuf->fields.sfmt_addicc.f
2767 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2768 int UNUSED written = 0;
2769 IADDR UNUSED pc = abuf->addr;
2770 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2773 SI opval = SUBCSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 1)));
2774 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2775 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2782 /* addxicc: addxicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2785 SEM_FN_NAME (frvbf,addxicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2787 #define FLD(f) abuf->fields.sfmt_addicc.f
2788 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2789 int UNUSED written = 0;
2790 IADDR UNUSED pc = abuf->addr;
2791 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2796 tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
2797 tmp_tmp = ADDCSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), TRUNCQIBI (ANDQI (tmp_cc, 1)));
2798 if (EQSI (ADDOFSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), TRUNCQIBI (ANDQI (tmp_cc, 1))), 0)) {
2799 tmp_cc = ANDQI (tmp_cc, 13);
2801 tmp_cc = ORQI (tmp_cc, 2);
2803 if (EQSI (ADDCFSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), TRUNCQIBI (ANDQI (tmp_cc, 1))), 0)) {
2804 tmp_cc = ANDQI (tmp_cc, 14);
2806 tmp_cc = ORQI (tmp_cc, 1);
2808 if (EQSI (tmp_tmp, 0)) {
2809 tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
2811 if (LTSI (tmp_tmp, 0)) {
2812 tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
2814 tmp_cc = ANDQI (tmp_cc, 3);
2819 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2820 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2824 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2825 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2833 /* subxicc: subxicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2836 SEM_FN_NAME (frvbf,subxicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2838 #define FLD(f) abuf->fields.sfmt_addicc.f
2839 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2840 int UNUSED written = 0;
2841 IADDR UNUSED pc = abuf->addr;
2842 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2847 tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
2848 tmp_tmp = SUBCSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), TRUNCQIBI (ANDQI (tmp_cc, 1)));
2849 if (EQSI (SUBOFSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), TRUNCQIBI (ANDQI (tmp_cc, 1))), 0)) {
2850 tmp_cc = ANDQI (tmp_cc, 13);
2852 tmp_cc = ORQI (tmp_cc, 2);
2854 if (EQSI (SUBCFSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), TRUNCQIBI (ANDQI (tmp_cc, 1))), 0)) {
2855 tmp_cc = ANDQI (tmp_cc, 14);
2857 tmp_cc = ORQI (tmp_cc, 1);
2859 if (EQSI (tmp_tmp, 0)) {
2860 tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
2862 if (LTSI (tmp_tmp, 0)) {
2863 tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
2865 tmp_cc = ANDQI (tmp_cc, 3);
2870 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2871 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2875 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2876 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2884 /* cmpb: cmpb$pack $GRi,$GRj,$ICCi_1 */
2887 SEM_FN_NAME (frvbf,cmpb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2889 #define FLD(f) abuf->fields.sfmt_smulcc.f
2890 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2891 int UNUSED written = 0;
2892 IADDR UNUSED pc = abuf->addr;
2893 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2897 if (EQBI (EQSI (ANDSI (GET_H_GR (FLD (f_GRi)), 0xff000000), ANDSI (GET_H_GR (FLD (f_GRj)), 0xff000000)), 0)) {
2898 tmp_cc = ANDQI (tmp_cc, 7);
2900 tmp_cc = ORQI (tmp_cc, 8);
2902 if (EQBI (EQSI (ANDSI (GET_H_GR (FLD (f_GRi)), 16711680), ANDSI (GET_H_GR (FLD (f_GRj)), 16711680)), 0)) {
2903 tmp_cc = ANDQI (tmp_cc, 11);
2905 tmp_cc = ORQI (tmp_cc, 4);
2907 if (EQBI (EQSI (ANDSI (GET_H_GR (FLD (f_GRi)), 65280), ANDSI (GET_H_GR (FLD (f_GRj)), 65280)), 0)) {
2908 tmp_cc = ANDQI (tmp_cc, 13);
2910 tmp_cc = ORQI (tmp_cc, 2);
2912 if (EQBI (EQSI (ANDSI (GET_H_GR (FLD (f_GRi)), 255), ANDSI (GET_H_GR (FLD (f_GRj)), 255)), 0)) {
2913 tmp_cc = ANDQI (tmp_cc, 14);
2915 tmp_cc = ORQI (tmp_cc, 1);
2919 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2920 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2928 /* cmpba: cmpba$pack $GRi,$GRj,$ICCi_1 */
2931 SEM_FN_NAME (frvbf,cmpba) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2933 #define FLD(f) abuf->fields.sfmt_smulcc.f
2934 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2935 int UNUSED written = 0;
2936 IADDR UNUSED pc = abuf->addr;
2937 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2942 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)) {
2943 tmp_cc = ANDQI (tmp_cc, 14);
2945 tmp_cc = ORQI (tmp_cc, 1);
2949 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2950 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2958 /* setlo: setlo$pack $ulo16,$GRklo */
2961 SEM_FN_NAME (frvbf,setlo) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2963 #define FLD(f) abuf->fields.sfmt_setlo.f
2964 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2965 int UNUSED written = 0;
2966 IADDR UNUSED pc = abuf->addr;
2967 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2970 UHI opval = FLD (f_u16);
2971 sim_queue_fn_hi_write (current_cpu, frvbf_h_gr_lo_set, FLD (f_GRk), opval);
2972 TRACE_RESULT (current_cpu, abuf, "gr_lo", 'x', opval);
2979 /* sethi: sethi$pack $uhi16,$GRkhi */
2982 SEM_FN_NAME (frvbf,sethi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2984 #define FLD(f) abuf->fields.sfmt_sethi.f
2985 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2986 int UNUSED written = 0;
2987 IADDR UNUSED pc = abuf->addr;
2988 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2991 UHI opval = FLD (f_u16);
2992 sim_queue_fn_hi_write (current_cpu, frvbf_h_gr_hi_set, FLD (f_GRk), opval);
2993 TRACE_RESULT (current_cpu, abuf, "gr_hi", 'x', opval);
3000 /* setlos: setlos$pack $slo16,$GRk */
3003 SEM_FN_NAME (frvbf,setlos) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3005 #define FLD(f) abuf->fields.sfmt_setlos.f
3006 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3007 int UNUSED written = 0;
3008 IADDR UNUSED pc = abuf->addr;
3009 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3012 SI opval = FLD (f_s16);
3013 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3014 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3021 /* ldsb: ldsb$pack @($GRi,$GRj),$GRk */
3024 SEM_FN_NAME (frvbf,ldsb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3026 #define FLD(f) abuf->fields.sfmt_addcc.f
3027 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3028 int UNUSED written = 0;
3029 IADDR UNUSED pc = abuf->addr;
3030 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3033 SI opval = frvbf_read_mem_QI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3034 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3035 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3042 /* ldub: ldub$pack @($GRi,$GRj),$GRk */
3045 SEM_FN_NAME (frvbf,ldub) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3047 #define FLD(f) abuf->fields.sfmt_addcc.f
3048 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3049 int UNUSED written = 0;
3050 IADDR UNUSED pc = abuf->addr;
3051 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3054 SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3055 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3056 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3063 /* ldsh: ldsh$pack @($GRi,$GRj),$GRk */
3066 SEM_FN_NAME (frvbf,ldsh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3068 #define FLD(f) abuf->fields.sfmt_addcc.f
3069 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3070 int UNUSED written = 0;
3071 IADDR UNUSED pc = abuf->addr;
3072 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3075 SI opval = frvbf_read_mem_HI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3076 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3077 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3084 /* lduh: lduh$pack @($GRi,$GRj),$GRk */
3087 SEM_FN_NAME (frvbf,lduh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3089 #define FLD(f) abuf->fields.sfmt_addcc.f
3090 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3091 int UNUSED written = 0;
3092 IADDR UNUSED pc = abuf->addr;
3093 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3096 SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3097 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3098 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3105 /* ld: ld$pack @($GRi,$GRj),$GRk */
3108 SEM_FN_NAME (frvbf,ld) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3110 #define FLD(f) abuf->fields.sfmt_addcc.f
3111 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3112 int UNUSED written = 0;
3113 IADDR UNUSED pc = abuf->addr;
3114 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3117 SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3118 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3119 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3126 /* ldbf: ldbf$pack @($GRi,$GRj),$FRintk */
3129 SEM_FN_NAME (frvbf,ldbf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3131 #define FLD(f) abuf->fields.sfmt_cldbfu.f
3132 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3133 int UNUSED written = 0;
3134 IADDR UNUSED pc = abuf->addr;
3135 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3138 SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3139 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
3140 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
3147 /* ldhf: ldhf$pack @($GRi,$GRj),$FRintk */
3150 SEM_FN_NAME (frvbf,ldhf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3152 #define FLD(f) abuf->fields.sfmt_cldbfu.f
3153 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3154 int UNUSED written = 0;
3155 IADDR UNUSED pc = abuf->addr;
3156 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3159 SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3160 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
3161 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
3168 /* ldf: ldf$pack @($GRi,$GRj),$FRintk */
3171 SEM_FN_NAME (frvbf,ldf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3173 #define FLD(f) abuf->fields.sfmt_cldbfu.f
3174 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3175 int UNUSED written = 0;
3176 IADDR UNUSED pc = abuf->addr;
3177 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3180 SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3181 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
3182 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
3189 /* ldc: ldc$pack @($GRi,$GRj),$CPRk */
3192 SEM_FN_NAME (frvbf,ldc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3194 #define FLD(f) abuf->fields.sfmt_ldcu.f
3195 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3196 int UNUSED written = 0;
3197 IADDR UNUSED pc = abuf->addr;
3198 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3201 SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3202 sim_queue_si_write (current_cpu, & CPU (h_cpr[FLD (f_CPRk)]), opval);
3203 TRACE_RESULT (current_cpu, abuf, "cpr", 'x', opval);
3210 /* nldsb: nldsb$pack @($GRi,$GRj),$GRk */
3213 SEM_FN_NAME (frvbf,nldsb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3215 #define FLD(f) abuf->fields.sfmt_addcc.f
3216 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3217 int UNUSED written = 0;
3218 IADDR UNUSED pc = abuf->addr;
3219 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3223 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 1, 0);
3226 SI opval = frvbf_read_mem_QI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3227 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3228 written |= (1 << 6);
3229 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3234 abuf->written = written;
3239 /* nldub: nldub$pack @($GRi,$GRj),$GRk */
3242 SEM_FN_NAME (frvbf,nldub) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3244 #define FLD(f) abuf->fields.sfmt_addcc.f
3245 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3246 int UNUSED written = 0;
3247 IADDR UNUSED pc = abuf->addr;
3248 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3252 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 0, 0);
3255 SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3256 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3257 written |= (1 << 6);
3258 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3263 abuf->written = written;
3268 /* nldsh: nldsh$pack @($GRi,$GRj),$GRk */
3271 SEM_FN_NAME (frvbf,nldsh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3273 #define FLD(f) abuf->fields.sfmt_addcc.f
3274 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3275 int UNUSED written = 0;
3276 IADDR UNUSED pc = abuf->addr;
3277 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3281 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 3, 0);
3284 SI opval = frvbf_read_mem_HI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3285 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3286 written |= (1 << 6);
3287 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3292 abuf->written = written;
3297 /* nlduh: nlduh$pack @($GRi,$GRj),$GRk */
3300 SEM_FN_NAME (frvbf,nlduh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3302 #define FLD(f) abuf->fields.sfmt_addcc.f
3303 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3304 int UNUSED written = 0;
3305 IADDR UNUSED pc = abuf->addr;
3306 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3310 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 2, 0);
3313 SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3314 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3315 written |= (1 << 6);
3316 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3321 abuf->written = written;
3326 /* nld: nld$pack @($GRi,$GRj),$GRk */
3329 SEM_FN_NAME (frvbf,nld) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3331 #define FLD(f) abuf->fields.sfmt_addcc.f
3332 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3333 int UNUSED written = 0;
3334 IADDR UNUSED pc = abuf->addr;
3335 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3339 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 4, 0);
3342 SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3343 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3344 written |= (1 << 6);
3345 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3350 abuf->written = written;
3355 /* nldbf: nldbf$pack @($GRi,$GRj),$FRintk */
3358 SEM_FN_NAME (frvbf,nldbf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3360 #define FLD(f) abuf->fields.sfmt_cldbfu.f
3361 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3362 int UNUSED written = 0;
3363 IADDR UNUSED pc = abuf->addr;
3364 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3368 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 0, 1);
3371 SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3372 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
3373 written |= (1 << 6);
3374 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
3379 abuf->written = written;
3384 /* nldhf: nldhf$pack @($GRi,$GRj),$FRintk */
3387 SEM_FN_NAME (frvbf,nldhf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3389 #define FLD(f) abuf->fields.sfmt_cldbfu.f
3390 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3391 int UNUSED written = 0;
3392 IADDR UNUSED pc = abuf->addr;
3393 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3397 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 2, 1);
3400 SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3401 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
3402 written |= (1 << 6);
3403 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
3408 abuf->written = written;
3413 /* nldf: nldf$pack @($GRi,$GRj),$FRintk */
3416 SEM_FN_NAME (frvbf,nldf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3418 #define FLD(f) abuf->fields.sfmt_cldbfu.f
3419 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3420 int UNUSED written = 0;
3421 IADDR UNUSED pc = abuf->addr;
3422 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3426 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 4, 1);
3429 SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3430 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
3431 written |= (1 << 6);
3432 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
3437 abuf->written = written;
3442 /* ldd: ldd$pack @($GRi,$GRj),$GRdoublek */
3445 SEM_FN_NAME (frvbf,ldd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3447 #define FLD(f) abuf->fields.sfmt_smulcc.f
3448 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3449 int UNUSED written = 0;
3450 IADDR UNUSED pc = abuf->addr;
3451 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3455 if (NESI (FLD (f_GRk), 0)) {
3457 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3459 DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
3460 sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
3461 written |= (1 << 4);
3462 TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
3468 abuf->written = written;
3473 /* lddf: lddf$pack @($GRi,$GRj),$FRdoublek */
3476 SEM_FN_NAME (frvbf,lddf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3478 #define FLD(f) abuf->fields.sfmt_clddfu.f
3479 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3480 int UNUSED written = 0;
3481 IADDR UNUSED pc = abuf->addr;
3482 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3487 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3489 DF opval = frvbf_read_mem_DF (current_cpu, pc, tmp_address);
3490 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
3491 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
3500 /* lddc: lddc$pack @($GRi,$GRj),$CPRdoublek */
3503 SEM_FN_NAME (frvbf,lddc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3505 #define FLD(f) abuf->fields.sfmt_lddcu.f
3506 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3507 int UNUSED written = 0;
3508 IADDR UNUSED pc = abuf->addr;
3509 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3514 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3516 DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
3517 sim_queue_fn_di_write (current_cpu, frvbf_h_cpr_double_set, FLD (f_CPRk), opval);
3518 TRACE_RESULT (current_cpu, abuf, "cpr_double", 'D', opval);
3527 /* nldd: nldd$pack @($GRi,$GRj),$GRdoublek */
3530 SEM_FN_NAME (frvbf,nldd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3532 #define FLD(f) abuf->fields.sfmt_smulcc.f
3533 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3534 int UNUSED written = 0;
3535 IADDR UNUSED pc = abuf->addr;
3536 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3542 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 5, 0);
3544 if (NESI (FLD (f_GRk), 0)) {
3546 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3548 DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
3549 sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
3550 written |= (1 << 6);
3551 TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
3559 abuf->written = written;
3564 /* nlddf: nlddf$pack @($GRi,$GRj),$FRdoublek */
3567 SEM_FN_NAME (frvbf,nlddf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3569 #define FLD(f) abuf->fields.sfmt_clddfu.f
3570 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3571 int UNUSED written = 0;
3572 IADDR UNUSED pc = abuf->addr;
3573 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3579 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 5, 1);
3582 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3584 DF opval = frvbf_read_mem_DF (current_cpu, pc, tmp_address);
3585 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
3586 written |= (1 << 6);
3587 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
3594 abuf->written = written;
3599 /* ldq: ldq$pack @($GRi,$GRj),$GRk */
3602 SEM_FN_NAME (frvbf,ldq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3604 #define FLD(f) abuf->fields.sfmt_smulcc.f
3605 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3606 int UNUSED written = 0;
3607 IADDR UNUSED pc = abuf->addr;
3608 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3613 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3614 frvbf_load_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
3622 /* ldqf: ldqf$pack @($GRi,$GRj),$FRintk */
3625 SEM_FN_NAME (frvbf,ldqf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3627 #define FLD(f) abuf->fields.sfmt_cstdfu.f
3628 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3629 int UNUSED written = 0;
3630 IADDR UNUSED pc = abuf->addr;
3631 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3636 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3637 frvbf_load_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
3645 /* ldqc: ldqc$pack @($GRi,$GRj),$CPRk */
3648 SEM_FN_NAME (frvbf,ldqc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3650 #define FLD(f) abuf->fields.sfmt_stdcu.f
3651 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3652 int UNUSED written = 0;
3653 IADDR UNUSED pc = abuf->addr;
3654 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3659 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3660 frvbf_load_quad_CPR (current_cpu, pc, tmp_address, FLD (f_CPRk));
3668 /* nldq: nldq$pack @($GRi,$GRj),$GRk */
3671 SEM_FN_NAME (frvbf,nldq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3673 #define FLD(f) abuf->fields.sfmt_smulcc.f
3674 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3675 int UNUSED written = 0;
3676 IADDR UNUSED pc = abuf->addr;
3677 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3683 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 6, 0);
3686 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3687 frvbf_load_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
3697 /* nldqf: nldqf$pack @($GRi,$GRj),$FRintk */
3700 SEM_FN_NAME (frvbf,nldqf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3702 #define FLD(f) abuf->fields.sfmt_cstdfu.f
3703 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3704 int UNUSED written = 0;
3705 IADDR UNUSED pc = abuf->addr;
3706 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3712 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 6, 1);
3715 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3716 frvbf_load_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
3726 /* ldsbu: ldsbu$pack @($GRi,$GRj),$GRk */
3729 SEM_FN_NAME (frvbf,ldsbu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3731 #define FLD(f) abuf->fields.sfmt_cldsbu.f
3732 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3733 int UNUSED written = 0;
3734 IADDR UNUSED pc = abuf->addr;
3735 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3739 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3741 SI opval = frvbf_read_mem_QI (current_cpu, pc, tmp_address);
3742 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3743 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3745 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
3748 SI opval = tmp_address;
3749 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
3750 written |= (1 << 5);
3751 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3753 frvbf_force_update (current_cpu);
3758 abuf->written = written;
3763 /* ldubu: ldubu$pack @($GRi,$GRj),$GRk */
3766 SEM_FN_NAME (frvbf,ldubu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3768 #define FLD(f) abuf->fields.sfmt_cldsbu.f
3769 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3770 int UNUSED written = 0;
3771 IADDR UNUSED pc = abuf->addr;
3772 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3776 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3778 SI opval = frvbf_read_mem_UQI (current_cpu, pc, tmp_address);
3779 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3780 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3782 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
3785 SI opval = tmp_address;
3786 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
3787 written |= (1 << 5);
3788 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3790 frvbf_force_update (current_cpu);
3795 abuf->written = written;
3800 /* ldshu: ldshu$pack @($GRi,$GRj),$GRk */
3803 SEM_FN_NAME (frvbf,ldshu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3805 #define FLD(f) abuf->fields.sfmt_cldsbu.f
3806 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3807 int UNUSED written = 0;
3808 IADDR UNUSED pc = abuf->addr;
3809 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3813 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3815 SI opval = frvbf_read_mem_HI (current_cpu, pc, tmp_address);
3816 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3817 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3819 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
3822 SI opval = tmp_address;
3823 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
3824 written |= (1 << 5);
3825 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3827 frvbf_force_update (current_cpu);
3832 abuf->written = written;
3837 /* lduhu: lduhu$pack @($GRi,$GRj),$GRk */
3840 SEM_FN_NAME (frvbf,lduhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3842 #define FLD(f) abuf->fields.sfmt_cldsbu.f
3843 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3844 int UNUSED written = 0;
3845 IADDR UNUSED pc = abuf->addr;
3846 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3850 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3852 SI opval = frvbf_read_mem_UHI (current_cpu, pc, tmp_address);
3853 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3854 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3856 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
3859 SI opval = tmp_address;
3860 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
3861 written |= (1 << 5);
3862 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3864 frvbf_force_update (current_cpu);
3869 abuf->written = written;
3874 /* ldu: ldu$pack @($GRi,$GRj),$GRk */
3877 SEM_FN_NAME (frvbf,ldu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3879 #define FLD(f) abuf->fields.sfmt_cldsbu.f
3880 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3881 int UNUSED written = 0;
3882 IADDR UNUSED pc = abuf->addr;
3883 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3887 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3889 SI opval = frvbf_read_mem_SI (current_cpu, pc, tmp_address);
3890 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3891 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3893 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
3896 SI opval = tmp_address;
3897 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
3898 written |= (1 << 5);
3899 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3901 frvbf_force_update (current_cpu);
3906 abuf->written = written;
3911 /* nldsbu: nldsbu$pack @($GRi,$GRj),$GRk */
3914 SEM_FN_NAME (frvbf,nldsbu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3916 #define FLD(f) abuf->fields.sfmt_cldsbu.f
3917 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3918 int UNUSED written = 0;
3919 IADDR UNUSED pc = abuf->addr;
3920 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3924 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 1, 0);
3928 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3930 SI opval = frvbf_read_mem_QI (current_cpu, pc, tmp_address);
3931 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3932 written |= (1 << 7);
3933 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3935 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
3938 SI opval = tmp_address;
3939 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
3940 written |= (1 << 6);
3941 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3943 frvbf_force_update (current_cpu);
3950 abuf->written = written;
3955 /* nldubu: nldubu$pack @($GRi,$GRj),$GRk */
3958 SEM_FN_NAME (frvbf,nldubu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3960 #define FLD(f) abuf->fields.sfmt_cldsbu.f
3961 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3962 int UNUSED written = 0;
3963 IADDR UNUSED pc = abuf->addr;
3964 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3968 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 0, 0);
3972 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3974 SI opval = frvbf_read_mem_UQI (current_cpu, pc, tmp_address);
3975 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3976 written |= (1 << 7);
3977 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3979 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
3982 SI opval = tmp_address;
3983 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
3984 written |= (1 << 6);
3985 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3987 frvbf_force_update (current_cpu);
3994 abuf->written = written;
3999 /* nldshu: nldshu$pack @($GRi,$GRj),$GRk */
4002 SEM_FN_NAME (frvbf,nldshu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4004 #define FLD(f) abuf->fields.sfmt_cldsbu.f
4005 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4006 int UNUSED written = 0;
4007 IADDR UNUSED pc = abuf->addr;
4008 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4012 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 3, 0);
4016 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4018 SI opval = frvbf_read_mem_HI (current_cpu, pc, tmp_address);
4019 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4020 written |= (1 << 7);
4021 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4023 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4026 SI opval = tmp_address;
4027 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4028 written |= (1 << 6);
4029 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4031 frvbf_force_update (current_cpu);
4038 abuf->written = written;
4043 /* nlduhu: nlduhu$pack @($GRi,$GRj),$GRk */
4046 SEM_FN_NAME (frvbf,nlduhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4048 #define FLD(f) abuf->fields.sfmt_cldsbu.f
4049 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4050 int UNUSED written = 0;
4051 IADDR UNUSED pc = abuf->addr;
4052 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4056 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 2, 0);
4060 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4062 SI opval = frvbf_read_mem_UHI (current_cpu, pc, tmp_address);
4063 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4064 written |= (1 << 7);
4065 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4067 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4070 SI opval = tmp_address;
4071 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4072 written |= (1 << 6);
4073 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4075 frvbf_force_update (current_cpu);
4082 abuf->written = written;
4087 /* nldu: nldu$pack @($GRi,$GRj),$GRk */
4090 SEM_FN_NAME (frvbf,nldu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4092 #define FLD(f) abuf->fields.sfmt_cldsbu.f
4093 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4094 int UNUSED written = 0;
4095 IADDR UNUSED pc = abuf->addr;
4096 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4100 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 4, 0);
4104 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4106 SI opval = frvbf_read_mem_SI (current_cpu, pc, tmp_address);
4107 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4108 written |= (1 << 7);
4109 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4111 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4114 SI opval = tmp_address;
4115 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4116 written |= (1 << 6);
4117 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4119 frvbf_force_update (current_cpu);
4126 abuf->written = written;
4131 /* ldbfu: ldbfu$pack @($GRi,$GRj),$FRintk */
4134 SEM_FN_NAME (frvbf,ldbfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4136 #define FLD(f) abuf->fields.sfmt_cldbfu.f
4137 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4138 int UNUSED written = 0;
4139 IADDR UNUSED pc = abuf->addr;
4140 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4144 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4146 SI opval = frvbf_read_mem_UQI (current_cpu, pc, tmp_address);
4147 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
4148 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
4151 SI opval = tmp_address;
4152 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4153 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4155 frvbf_force_update (current_cpu);
4162 /* ldhfu: ldhfu$pack @($GRi,$GRj),$FRintk */
4165 SEM_FN_NAME (frvbf,ldhfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4167 #define FLD(f) abuf->fields.sfmt_cldbfu.f
4168 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4169 int UNUSED written = 0;
4170 IADDR UNUSED pc = abuf->addr;
4171 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4175 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4177 SI opval = frvbf_read_mem_UHI (current_cpu, pc, tmp_address);
4178 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
4179 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
4182 SI opval = tmp_address;
4183 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4184 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4186 frvbf_force_update (current_cpu);
4193 /* ldfu: ldfu$pack @($GRi,$GRj),$FRintk */
4196 SEM_FN_NAME (frvbf,ldfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4198 #define FLD(f) abuf->fields.sfmt_cldbfu.f
4199 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4200 int UNUSED written = 0;
4201 IADDR UNUSED pc = abuf->addr;
4202 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4206 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4208 SI opval = frvbf_read_mem_SI (current_cpu, pc, tmp_address);
4209 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
4210 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
4213 SI opval = tmp_address;
4214 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4215 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4217 frvbf_force_update (current_cpu);
4224 /* ldcu: ldcu$pack @($GRi,$GRj),$CPRk */
4227 SEM_FN_NAME (frvbf,ldcu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4229 #define FLD(f) abuf->fields.sfmt_ldcu.f
4230 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4231 int UNUSED written = 0;
4232 IADDR UNUSED pc = abuf->addr;
4233 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4237 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4239 SI opval = frvbf_read_mem_SI (current_cpu, pc, tmp_address);
4240 sim_queue_si_write (current_cpu, & CPU (h_cpr[FLD (f_CPRk)]), opval);
4241 TRACE_RESULT (current_cpu, abuf, "cpr", 'x', opval);
4244 SI opval = tmp_address;
4245 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4246 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4248 frvbf_force_update (current_cpu);
4255 /* nldbfu: nldbfu$pack @($GRi,$GRj),$FRintk */
4258 SEM_FN_NAME (frvbf,nldbfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4260 #define FLD(f) abuf->fields.sfmt_cldbfu.f
4261 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4262 int UNUSED written = 0;
4263 IADDR UNUSED pc = abuf->addr;
4264 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4268 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 0, 1);
4272 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4274 SI opval = frvbf_read_mem_UQI (current_cpu, pc, tmp_address);
4275 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
4276 written |= (1 << 6);
4277 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
4280 SI opval = tmp_address;
4281 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4282 written |= (1 << 7);
4283 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4285 frvbf_force_update (current_cpu);
4290 abuf->written = written;
4295 /* nldhfu: nldhfu$pack @($GRi,$GRj),$FRintk */
4298 SEM_FN_NAME (frvbf,nldhfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4300 #define FLD(f) abuf->fields.sfmt_cldbfu.f
4301 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4302 int UNUSED written = 0;
4303 IADDR UNUSED pc = abuf->addr;
4304 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4308 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 2, 1);
4312 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4314 SI opval = frvbf_read_mem_UHI (current_cpu, pc, tmp_address);
4315 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
4316 written |= (1 << 6);
4317 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
4320 SI opval = tmp_address;
4321 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4322 written |= (1 << 7);
4323 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4325 frvbf_force_update (current_cpu);
4330 abuf->written = written;
4335 /* nldfu: nldfu$pack @($GRi,$GRj),$FRintk */
4338 SEM_FN_NAME (frvbf,nldfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4340 #define FLD(f) abuf->fields.sfmt_cldbfu.f
4341 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4342 int UNUSED written = 0;
4343 IADDR UNUSED pc = abuf->addr;
4344 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4348 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 4, 1);
4352 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4354 SI opval = frvbf_read_mem_SI (current_cpu, pc, tmp_address);
4355 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
4356 written |= (1 << 6);
4357 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
4360 SI opval = tmp_address;
4361 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4362 written |= (1 << 7);
4363 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4365 frvbf_force_update (current_cpu);
4370 abuf->written = written;
4375 /* lddu: lddu$pack @($GRi,$GRj),$GRdoublek */
4378 SEM_FN_NAME (frvbf,lddu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4380 #define FLD(f) abuf->fields.sfmt_clddu.f
4381 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4382 int UNUSED written = 0;
4383 IADDR UNUSED pc = abuf->addr;
4384 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4388 if (NESI (FLD (f_GRk), 0)) {
4390 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4392 DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
4393 sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
4394 written |= (1 << 5);
4395 TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
4399 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4402 SI opval = tmp_address;
4403 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4404 written |= (1 << 6);
4405 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4407 frvbf_force_update (current_cpu);
4412 abuf->written = written;
4417 /* nlddu: nlddu$pack @($GRi,$GRj),$GRdoublek */
4420 SEM_FN_NAME (frvbf,nlddu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4422 #define FLD(f) abuf->fields.sfmt_clddu.f
4423 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4424 int UNUSED written = 0;
4425 IADDR UNUSED pc = abuf->addr;
4426 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4430 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 5, 0);
4434 if (NESI (FLD (f_GRk), 0)) {
4436 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4438 DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
4439 sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
4440 written |= (1 << 6);
4441 TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
4445 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4448 SI opval = tmp_address;
4449 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4450 written |= (1 << 7);
4451 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4453 frvbf_force_update (current_cpu);
4460 abuf->written = written;
4465 /* lddfu: lddfu$pack @($GRi,$GRj),$FRdoublek */
4468 SEM_FN_NAME (frvbf,lddfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4470 #define FLD(f) abuf->fields.sfmt_clddfu.f
4471 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4472 int UNUSED written = 0;
4473 IADDR UNUSED pc = abuf->addr;
4474 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4479 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4481 DF opval = frvbf_read_mem_DF (current_cpu, pc, tmp_address);
4482 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
4483 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
4487 SI opval = tmp_address;
4488 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4489 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4491 frvbf_force_update (current_cpu);
4498 /* lddcu: lddcu$pack @($GRi,$GRj),$CPRdoublek */
4501 SEM_FN_NAME (frvbf,lddcu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4503 #define FLD(f) abuf->fields.sfmt_lddcu.f
4504 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4505 int UNUSED written = 0;
4506 IADDR UNUSED pc = abuf->addr;
4507 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4512 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4514 DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
4515 sim_queue_fn_di_write (current_cpu, frvbf_h_cpr_double_set, FLD (f_CPRk), opval);
4516 TRACE_RESULT (current_cpu, abuf, "cpr_double", 'D', opval);
4520 SI opval = tmp_address;
4521 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4522 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4524 frvbf_force_update (current_cpu);
4531 /* nlddfu: nlddfu$pack @($GRi,$GRj),$FRdoublek */
4534 SEM_FN_NAME (frvbf,nlddfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4536 #define FLD(f) abuf->fields.sfmt_clddfu.f
4537 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4538 int UNUSED written = 0;
4539 IADDR UNUSED pc = abuf->addr;
4540 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4544 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 5, 1);
4549 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4551 DF opval = frvbf_read_mem_DF (current_cpu, pc, tmp_address);
4552 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
4553 written |= (1 << 6);
4554 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
4558 SI opval = tmp_address;
4559 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4560 written |= (1 << 7);
4561 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4563 frvbf_force_update (current_cpu);
4568 abuf->written = written;
4573 /* ldqu: ldqu$pack @($GRi,$GRj),$GRk */
4576 SEM_FN_NAME (frvbf,ldqu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4578 #define FLD(f) abuf->fields.sfmt_cstdu.f
4579 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4580 int UNUSED written = 0;
4581 IADDR UNUSED pc = abuf->addr;
4582 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4587 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4588 frvbf_load_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
4590 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4593 SI opval = tmp_address;
4594 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4595 written |= (1 << 5);
4596 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4598 frvbf_force_update (current_cpu);
4603 abuf->written = written;
4608 /* nldqu: nldqu$pack @($GRi,$GRj),$GRk */
4611 SEM_FN_NAME (frvbf,nldqu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4613 #define FLD(f) abuf->fields.sfmt_cstdu.f
4614 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4615 int UNUSED written = 0;
4616 IADDR UNUSED pc = abuf->addr;
4617 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4621 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 6, 0);
4626 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4627 frvbf_load_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
4629 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4632 SI opval = tmp_address;
4633 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4634 written |= (1 << 6);
4635 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4637 frvbf_force_update (current_cpu);
4644 abuf->written = written;
4649 /* ldqfu: ldqfu$pack @($GRi,$GRj),$FRintk */
4652 SEM_FN_NAME (frvbf,ldqfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4654 #define FLD(f) abuf->fields.sfmt_cstdfu.f
4655 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4656 int UNUSED written = 0;
4657 IADDR UNUSED pc = abuf->addr;
4658 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4663 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4664 frvbf_load_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
4667 SI opval = tmp_address;
4668 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4669 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4671 frvbf_force_update (current_cpu);
4678 /* ldqcu: ldqcu$pack @($GRi,$GRj),$CPRk */
4681 SEM_FN_NAME (frvbf,ldqcu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4683 #define FLD(f) abuf->fields.sfmt_stdcu.f
4684 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4685 int UNUSED written = 0;
4686 IADDR UNUSED pc = abuf->addr;
4687 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4692 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4693 frvbf_load_quad_CPR (current_cpu, pc, tmp_address, FLD (f_CPRk));
4696 SI opval = tmp_address;
4697 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4698 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4700 frvbf_force_update (current_cpu);
4707 /* nldqfu: nldqfu$pack @($GRi,$GRj),$FRintk */
4710 SEM_FN_NAME (frvbf,nldqfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4712 #define FLD(f) abuf->fields.sfmt_cstdfu.f
4713 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4714 int UNUSED written = 0;
4715 IADDR UNUSED pc = abuf->addr;
4716 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4720 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 6, 1);
4725 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4726 frvbf_load_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
4729 SI opval = tmp_address;
4730 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4731 written |= (1 << 6);
4732 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4734 frvbf_force_update (current_cpu);
4739 abuf->written = written;
4744 /* ldsbi: ldsbi$pack @($GRi,$d12),$GRk */
4747 SEM_FN_NAME (frvbf,ldsbi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4749 #define FLD(f) abuf->fields.sfmt_swapi.f
4750 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4751 int UNUSED written = 0;
4752 IADDR UNUSED pc = abuf->addr;
4753 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4756 SI opval = frvbf_read_mem_QI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
4757 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4758 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4765 /* ldshi: ldshi$pack @($GRi,$d12),$GRk */
4768 SEM_FN_NAME (frvbf,ldshi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4770 #define FLD(f) abuf->fields.sfmt_swapi.f
4771 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4772 int UNUSED written = 0;
4773 IADDR UNUSED pc = abuf->addr;
4774 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4777 SI opval = frvbf_read_mem_HI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
4778 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4779 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4786 /* ldi: ldi$pack @($GRi,$d12),$GRk */
4789 SEM_FN_NAME (frvbf,ldi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4791 #define FLD(f) abuf->fields.sfmt_swapi.f
4792 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4793 int UNUSED written = 0;
4794 IADDR UNUSED pc = abuf->addr;
4795 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4798 SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
4799 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4800 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4807 /* ldubi: ldubi$pack @($GRi,$d12),$GRk */
4810 SEM_FN_NAME (frvbf,ldubi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4812 #define FLD(f) abuf->fields.sfmt_swapi.f
4813 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4814 int UNUSED written = 0;
4815 IADDR UNUSED pc = abuf->addr;
4816 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4819 SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
4820 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4821 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4828 /* lduhi: lduhi$pack @($GRi,$d12),$GRk */
4831 SEM_FN_NAME (frvbf,lduhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4833 #define FLD(f) abuf->fields.sfmt_swapi.f
4834 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4835 int UNUSED written = 0;
4836 IADDR UNUSED pc = abuf->addr;
4837 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4840 SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
4841 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4842 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4849 /* ldbfi: ldbfi$pack @($GRi,$d12),$FRintk */
4852 SEM_FN_NAME (frvbf,ldbfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4854 #define FLD(f) abuf->fields.sfmt_ldbfi.f
4855 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4856 int UNUSED written = 0;
4857 IADDR UNUSED pc = abuf->addr;
4858 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4861 SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
4862 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
4863 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
4870 /* ldhfi: ldhfi$pack @($GRi,$d12),$FRintk */
4873 SEM_FN_NAME (frvbf,ldhfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4875 #define FLD(f) abuf->fields.sfmt_ldbfi.f
4876 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4877 int UNUSED written = 0;
4878 IADDR UNUSED pc = abuf->addr;
4879 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4882 SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
4883 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
4884 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
4891 /* ldfi: ldfi$pack @($GRi,$d12),$FRintk */
4894 SEM_FN_NAME (frvbf,ldfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4896 #define FLD(f) abuf->fields.sfmt_ldbfi.f
4897 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4898 int UNUSED written = 0;
4899 IADDR UNUSED pc = abuf->addr;
4900 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4903 SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
4904 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
4905 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
4912 /* nldsbi: nldsbi$pack @($GRi,$d12),$GRk */
4915 SEM_FN_NAME (frvbf,nldsbi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4917 #define FLD(f) abuf->fields.sfmt_swapi.f
4918 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4919 int UNUSED written = 0;
4920 IADDR UNUSED pc = abuf->addr;
4921 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4925 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_GRk), FLD (f_d12), 1, 0);
4928 SI opval = frvbf_read_mem_QI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
4929 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4930 written |= (1 << 5);
4931 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4936 abuf->written = written;
4941 /* nldubi: nldubi$pack @($GRi,$d12),$GRk */
4944 SEM_FN_NAME (frvbf,nldubi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4946 #define FLD(f) abuf->fields.sfmt_swapi.f
4947 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4948 int UNUSED written = 0;
4949 IADDR UNUSED pc = abuf->addr;
4950 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4954 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_GRk), FLD (f_d12), 0, 0);
4957 SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
4958 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4959 written |= (1 << 5);
4960 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4965 abuf->written = written;
4970 /* nldshi: nldshi$pack @($GRi,$d12),$GRk */
4973 SEM_FN_NAME (frvbf,nldshi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4975 #define FLD(f) abuf->fields.sfmt_swapi.f
4976 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4977 int UNUSED written = 0;
4978 IADDR UNUSED pc = abuf->addr;
4979 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4983 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_GRk), FLD (f_d12), 3, 0);
4986 SI opval = frvbf_read_mem_HI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
4987 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4988 written |= (1 << 5);
4989 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4994 abuf->written = written;
4999 /* nlduhi: nlduhi$pack @($GRi,$d12),$GRk */
5002 SEM_FN_NAME (frvbf,nlduhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5004 #define FLD(f) abuf->fields.sfmt_swapi.f
5005 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5006 int UNUSED written = 0;
5007 IADDR UNUSED pc = abuf->addr;
5008 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5012 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_GRk), FLD (f_d12), 2, 0);
5015 SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5016 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
5017 written |= (1 << 5);
5018 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5023 abuf->written = written;
5028 /* nldi: nldi$pack @($GRi,$d12),$GRk */
5031 SEM_FN_NAME (frvbf,nldi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5033 #define FLD(f) abuf->fields.sfmt_swapi.f
5034 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5035 int UNUSED written = 0;
5036 IADDR UNUSED pc = abuf->addr;
5037 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5041 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_GRk), FLD (f_d12), 4, 0);
5044 SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5045 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
5046 written |= (1 << 5);
5047 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5052 abuf->written = written;
5057 /* nldbfi: nldbfi$pack @($GRi,$d12),$FRintk */
5060 SEM_FN_NAME (frvbf,nldbfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5062 #define FLD(f) abuf->fields.sfmt_ldbfi.f
5063 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5064 int UNUSED written = 0;
5065 IADDR UNUSED pc = abuf->addr;
5066 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5070 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_FRk), FLD (f_d12), 0, 1);
5073 SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5074 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
5075 written |= (1 << 5);
5076 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
5081 abuf->written = written;
5086 /* nldhfi: nldhfi$pack @($GRi,$d12),$FRintk */
5089 SEM_FN_NAME (frvbf,nldhfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5091 #define FLD(f) abuf->fields.sfmt_ldbfi.f
5092 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5093 int UNUSED written = 0;
5094 IADDR UNUSED pc = abuf->addr;
5095 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5099 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_FRk), FLD (f_d12), 2, 1);
5102 SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5103 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
5104 written |= (1 << 5);
5105 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
5110 abuf->written = written;
5115 /* nldfi: nldfi$pack @($GRi,$d12),$FRintk */
5118 SEM_FN_NAME (frvbf,nldfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5120 #define FLD(f) abuf->fields.sfmt_ldbfi.f
5121 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5122 int UNUSED written = 0;
5123 IADDR UNUSED pc = abuf->addr;
5124 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5128 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_FRk), FLD (f_d12), 4, 1);
5131 SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5132 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
5133 written |= (1 << 5);
5134 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
5139 abuf->written = written;
5144 /* lddi: lddi$pack @($GRi,$d12),$GRdoublek */
5147 SEM_FN_NAME (frvbf,lddi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5149 #define FLD(f) abuf->fields.sfmt_smuli.f
5150 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5151 int UNUSED written = 0;
5152 IADDR UNUSED pc = abuf->addr;
5153 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5157 if (NESI (FLD (f_GRk), 0)) {
5159 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
5161 DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
5162 sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
5163 written |= (1 << 4);
5164 TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
5170 abuf->written = written;
5175 /* lddfi: lddfi$pack @($GRi,$d12),$FRdoublek */
5178 SEM_FN_NAME (frvbf,lddfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5180 #define FLD(f) abuf->fields.sfmt_lddfi.f
5181 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5182 int UNUSED written = 0;
5183 IADDR UNUSED pc = abuf->addr;
5184 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5189 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
5191 DF opval = frvbf_read_mem_DF (current_cpu, pc, tmp_address);
5192 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
5193 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
5202 /* nlddi: nlddi$pack @($GRi,$d12),$GRdoublek */
5205 SEM_FN_NAME (frvbf,nlddi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5207 #define FLD(f) abuf->fields.sfmt_smuli.f
5208 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5209 int UNUSED written = 0;
5210 IADDR UNUSED pc = abuf->addr;
5211 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5217 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_GRk), FLD (f_d12), 5, 0);
5219 if (NESI (FLD (f_GRk), 0)) {
5221 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
5223 DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
5224 sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
5225 written |= (1 << 5);
5226 TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
5234 abuf->written = written;
5239 /* nlddfi: nlddfi$pack @($GRi,$d12),$FRdoublek */
5242 SEM_FN_NAME (frvbf,nlddfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5244 #define FLD(f) abuf->fields.sfmt_lddfi.f
5245 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5246 int UNUSED written = 0;
5247 IADDR UNUSED pc = abuf->addr;
5248 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5254 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_FRk), FLD (f_d12), 5, 1);
5257 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
5259 DF opval = frvbf_read_mem_DF (current_cpu, pc, tmp_address);
5260 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
5261 written |= (1 << 5);
5262 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
5269 abuf->written = written;
5274 /* ldqi: ldqi$pack @($GRi,$d12),$GRk */
5277 SEM_FN_NAME (frvbf,ldqi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5279 #define FLD(f) abuf->fields.sfmt_stdi.f
5280 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5281 int UNUSED written = 0;
5282 IADDR UNUSED pc = abuf->addr;
5283 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5288 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
5289 frvbf_load_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
5297 /* ldqfi: ldqfi$pack @($GRi,$d12),$FRintk */
5300 SEM_FN_NAME (frvbf,ldqfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5302 #define FLD(f) abuf->fields.sfmt_stdfi.f
5303 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5304 int UNUSED written = 0;
5305 IADDR UNUSED pc = abuf->addr;
5306 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5311 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
5312 frvbf_load_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
5320 /* nldqi: nldqi$pack @($GRi,$d12),$GRk */
5323 SEM_FN_NAME (frvbf,nldqi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5325 #define FLD(f) abuf->fields.sfmt_stdi.f
5326 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5327 int UNUSED written = 0;
5328 IADDR UNUSED pc = abuf->addr;
5329 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5335 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_GRk), FLD (f_d12), 6, 0);
5338 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
5339 frvbf_load_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
5349 /* nldqfi: nldqfi$pack @($GRi,$d12),$FRintk */
5352 SEM_FN_NAME (frvbf,nldqfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5354 #define FLD(f) abuf->fields.sfmt_stdfi.f
5355 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5356 int UNUSED written = 0;
5357 IADDR UNUSED pc = abuf->addr;
5358 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5364 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_FRk), FLD (f_d12), 6, 1);
5367 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
5368 frvbf_load_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
5378 /* stb: stb$pack $GRk,@($GRi,$GRj) */
5381 SEM_FN_NAME (frvbf,stb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5383 #define FLD(f) abuf->fields.sfmt_cswap.f
5384 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5385 int UNUSED written = 0;
5386 IADDR UNUSED pc = abuf->addr;
5387 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5389 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)));
5395 /* sth: sth$pack $GRk,@($GRi,$GRj) */
5398 SEM_FN_NAME (frvbf,sth) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5400 #define FLD(f) abuf->fields.sfmt_cswap.f
5401 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5402 int UNUSED written = 0;
5403 IADDR UNUSED pc = abuf->addr;
5404 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5406 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)));
5412 /* st: st$pack $GRk,@($GRi,$GRj) */
5415 SEM_FN_NAME (frvbf,st) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5417 #define FLD(f) abuf->fields.sfmt_cswap.f
5418 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5419 int UNUSED written = 0;
5420 IADDR UNUSED pc = abuf->addr;
5421 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5423 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)));
5429 /* stbf: stbf$pack $FRintk,@($GRi,$GRj) */
5432 SEM_FN_NAME (frvbf,stbf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5434 #define FLD(f) abuf->fields.sfmt_cstbfu.f
5435 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5436 int UNUSED written = 0;
5437 IADDR UNUSED pc = abuf->addr;
5438 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5440 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)));
5446 /* sthf: sthf$pack $FRintk,@($GRi,$GRj) */
5449 SEM_FN_NAME (frvbf,sthf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5451 #define FLD(f) abuf->fields.sfmt_cstbfu.f
5452 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5453 int UNUSED written = 0;
5454 IADDR UNUSED pc = abuf->addr;
5455 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5457 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)));
5463 /* stf: stf$pack $FRintk,@($GRi,$GRj) */
5466 SEM_FN_NAME (frvbf,stf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5468 #define FLD(f) abuf->fields.sfmt_cstbfu.f
5469 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5470 int UNUSED written = 0;
5471 IADDR UNUSED pc = abuf->addr;
5472 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5474 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)));
5480 /* stc: stc$pack $CPRk,@($GRi,$GRj) */
5483 SEM_FN_NAME (frvbf,stc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5485 #define FLD(f) abuf->fields.sfmt_stcu.f
5486 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5487 int UNUSED written = 0;
5488 IADDR UNUSED pc = abuf->addr;
5489 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5491 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)]));
5497 /* rstb: rstb$pack $GRk,@($GRi,$GRj) */
5500 SEM_FN_NAME (frvbf,rstb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5502 #define FLD(f) abuf->fields.sfmt_cswap.f
5503 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5504 int UNUSED written = 0;
5505 IADDR UNUSED pc = abuf->addr;
5506 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5510 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5511 frvbf_write_mem_QI (current_cpu, pc, tmp_address, GET_H_GR (FLD (f_GRk)));
5512 frvbf_check_recovering_store (current_cpu, tmp_address, FLD (f_GRk), 1, 0);
5519 /* rsth: rsth$pack $GRk,@($GRi,$GRj) */
5522 SEM_FN_NAME (frvbf,rsth) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5524 #define FLD(f) abuf->fields.sfmt_cswap.f
5525 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5526 int UNUSED written = 0;
5527 IADDR UNUSED pc = abuf->addr;
5528 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5532 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5533 frvbf_write_mem_HI (current_cpu, pc, tmp_address, GET_H_GR (FLD (f_GRk)));
5534 frvbf_check_recovering_store (current_cpu, tmp_address, FLD (f_GRk), 2, 0);
5541 /* rst: rst$pack $GRk,@($GRi,$GRj) */
5544 SEM_FN_NAME (frvbf,rst) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5546 #define FLD(f) abuf->fields.sfmt_cswap.f
5547 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5548 int UNUSED written = 0;
5549 IADDR UNUSED pc = abuf->addr;
5550 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5554 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5555 frvbf_write_mem_SI (current_cpu, pc, tmp_address, GET_H_GR (FLD (f_GRk)));
5556 frvbf_check_recovering_store (current_cpu, tmp_address, FLD (f_GRk), 4, 0);
5563 /* rstbf: rstbf$pack $FRintk,@($GRi,$GRj) */
5566 SEM_FN_NAME (frvbf,rstbf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5568 #define FLD(f) abuf->fields.sfmt_cstbfu.f
5569 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5570 int UNUSED written = 0;
5571 IADDR UNUSED pc = abuf->addr;
5572 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5576 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5577 frvbf_write_mem_QI (current_cpu, pc, tmp_address, GET_H_FR_INT (FLD (f_FRk)));
5578 frvbf_check_recovering_store (current_cpu, tmp_address, FLD (f_FRk), 1, 1);
5585 /* rsthf: rsthf$pack $FRintk,@($GRi,$GRj) */
5588 SEM_FN_NAME (frvbf,rsthf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5590 #define FLD(f) abuf->fields.sfmt_cstbfu.f
5591 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5592 int UNUSED written = 0;
5593 IADDR UNUSED pc = abuf->addr;
5594 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5598 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5599 frvbf_write_mem_HI (current_cpu, pc, tmp_address, GET_H_FR_INT (FLD (f_FRk)));
5600 frvbf_check_recovering_store (current_cpu, tmp_address, FLD (f_FRk), 2, 1);
5607 /* rstf: rstf$pack $FRintk,@($GRi,$GRj) */
5610 SEM_FN_NAME (frvbf,rstf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5612 #define FLD(f) abuf->fields.sfmt_cstbfu.f
5613 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5614 int UNUSED written = 0;
5615 IADDR UNUSED pc = abuf->addr;
5616 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5620 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5621 frvbf_write_mem_SI (current_cpu, pc, tmp_address, GET_H_FR_INT (FLD (f_FRk)));
5622 frvbf_check_recovering_store (current_cpu, tmp_address, FLD (f_FRk), 4, 1);
5629 /* std: std$pack $GRk,@($GRi,$GRj) */
5632 SEM_FN_NAME (frvbf,std) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5634 #define FLD(f) abuf->fields.sfmt_cstdu.f
5635 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5636 int UNUSED written = 0;
5637 IADDR UNUSED pc = abuf->addr;
5638 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5643 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5644 frvbf_write_mem_DI (current_cpu, pc, tmp_address, GET_H_GR_DOUBLE (FLD (f_GRk)));
5652 /* stdf: stdf$pack $FRk,@($GRi,$GRj) */
5655 SEM_FN_NAME (frvbf,stdf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5657 #define FLD(f) abuf->fields.sfmt_cstdfu.f
5658 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5659 int UNUSED written = 0;
5660 IADDR UNUSED pc = abuf->addr;
5661 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5666 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5667 frvbf_write_mem_DF (current_cpu, pc, tmp_address, GET_H_FR_DOUBLE (FLD (f_FRk)));
5675 /* stdc: stdc$pack $CPRk,@($GRi,$GRj) */
5678 SEM_FN_NAME (frvbf,stdc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5680 #define FLD(f) abuf->fields.sfmt_stdcu.f
5681 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5682 int UNUSED written = 0;
5683 IADDR UNUSED pc = abuf->addr;
5684 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5689 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5690 frvbf_write_mem_DI (current_cpu, pc, tmp_address, GET_H_CPR_DOUBLE (FLD (f_CPRk)));
5698 /* rstd: rstd$pack $GRk,@($GRi,$GRj) */
5701 SEM_FN_NAME (frvbf,rstd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5703 #define FLD(f) abuf->fields.sfmt_cstdu.f
5704 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5705 int UNUSED written = 0;
5706 IADDR UNUSED pc = abuf->addr;
5707 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5712 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5713 frvbf_write_mem_DI (current_cpu, pc, tmp_address, GET_H_GR_DOUBLE (FLD (f_GRk)));
5715 frvbf_check_recovering_store (current_cpu, tmp_address, FLD (f_GRk), 8, 0);
5722 /* rstdf: rstdf$pack $FRk,@($GRi,$GRj) */
5725 SEM_FN_NAME (frvbf,rstdf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5727 #define FLD(f) abuf->fields.sfmt_cstdfu.f
5728 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5729 int UNUSED written = 0;
5730 IADDR UNUSED pc = abuf->addr;
5731 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5736 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5737 frvbf_write_mem_DF (current_cpu, pc, tmp_address, GET_H_FR_DOUBLE (FLD (f_FRk)));
5739 frvbf_check_recovering_store (current_cpu, tmp_address, FLD (f_FRk), 8, 1);
5746 /* stq: stq$pack $GRk,@($GRi,$GRj) */
5749 SEM_FN_NAME (frvbf,stq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5751 #define FLD(f) abuf->fields.sfmt_smulcc.f
5752 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5753 int UNUSED written = 0;
5754 IADDR UNUSED pc = abuf->addr;
5755 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5760 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5761 frvbf_store_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
5769 /* stqf: stqf$pack $FRintk,@($GRi,$GRj) */
5772 SEM_FN_NAME (frvbf,stqf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5774 #define FLD(f) abuf->fields.sfmt_cstdfu.f
5775 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5776 int UNUSED written = 0;
5777 IADDR UNUSED pc = abuf->addr;
5778 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5783 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5784 frvbf_store_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
5792 /* stqc: stqc$pack $CPRk,@($GRi,$GRj) */
5795 SEM_FN_NAME (frvbf,stqc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5797 #define FLD(f) abuf->fields.sfmt_stdcu.f
5798 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5799 int UNUSED written = 0;
5800 IADDR UNUSED pc = abuf->addr;
5801 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5806 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5807 frvbf_store_quad_CPR (current_cpu, pc, tmp_address, FLD (f_CPRk));
5815 /* rstq: rstq$pack $GRk,@($GRi,$GRj) */
5818 SEM_FN_NAME (frvbf,rstq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5820 #define FLD(f) abuf->fields.sfmt_smulcc.f
5821 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5822 int UNUSED written = 0;
5823 IADDR UNUSED pc = abuf->addr;
5824 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5829 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5830 frvbf_store_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
5832 frvbf_check_recovering_store (current_cpu, tmp_address, FLD (f_GRk), 16, 0);
5839 /* rstqf: rstqf$pack $FRintk,@($GRi,$GRj) */
5842 SEM_FN_NAME (frvbf,rstqf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5844 #define FLD(f) abuf->fields.sfmt_cstdfu.f
5845 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5846 int UNUSED written = 0;
5847 IADDR UNUSED pc = abuf->addr;
5848 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5853 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5854 frvbf_store_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
5856 frvbf_check_recovering_store (current_cpu, tmp_address, FLD (f_FRk), 16, 1);
5863 /* stbu: stbu$pack $GRk,@($GRi,$GRj) */
5866 SEM_FN_NAME (frvbf,stbu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5868 #define FLD(f) abuf->fields.sfmt_cstbu.f
5869 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5870 int UNUSED written = 0;
5871 IADDR UNUSED pc = abuf->addr;
5872 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5876 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5877 frvbf_write_mem_QI (current_cpu, pc, tmp_address, GET_H_GR (FLD (f_GRk)));
5879 SI opval = tmp_address;
5880 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
5881 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5889 /* sthu: sthu$pack $GRk,@($GRi,$GRj) */
5892 SEM_FN_NAME (frvbf,sthu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5894 #define FLD(f) abuf->fields.sfmt_cstbu.f
5895 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5896 int UNUSED written = 0;
5897 IADDR UNUSED pc = abuf->addr;
5898 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5902 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5903 frvbf_write_mem_HI (current_cpu, pc, tmp_address, GET_H_GR (FLD (f_GRk)));
5905 SI opval = tmp_address;
5906 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
5907 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5915 /* stu: stu$pack $GRk,@($GRi,$GRj) */
5918 SEM_FN_NAME (frvbf,stu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5920 #define FLD(f) abuf->fields.sfmt_cstbu.f
5921 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5922 int UNUSED written = 0;
5923 IADDR UNUSED pc = abuf->addr;
5924 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5928 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5929 frvbf_write_mem_WI (current_cpu, pc, tmp_address, GET_H_GR (FLD (f_GRk)));
5931 SI opval = tmp_address;
5932 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
5933 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5941 /* stbfu: stbfu$pack $FRintk,@($GRi,$GRj) */
5944 SEM_FN_NAME (frvbf,stbfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5946 #define FLD(f) abuf->fields.sfmt_cstbfu.f
5947 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5948 int UNUSED written = 0;
5949 IADDR UNUSED pc = abuf->addr;
5950 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5954 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5955 frvbf_write_mem_QI (current_cpu, pc, tmp_address, GET_H_FR_INT (FLD (f_FRk)));
5957 SI opval = tmp_address;
5958 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
5959 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5967 /* sthfu: sthfu$pack $FRintk,@($GRi,$GRj) */
5970 SEM_FN_NAME (frvbf,sthfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5972 #define FLD(f) abuf->fields.sfmt_cstbfu.f
5973 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5974 int UNUSED written = 0;
5975 IADDR UNUSED pc = abuf->addr;
5976 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5980 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5981 frvbf_write_mem_HI (current_cpu, pc, tmp_address, GET_H_FR_INT (FLD (f_FRk)));
5983 SI opval = tmp_address;
5984 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
5985 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5993 /* stfu: stfu$pack $FRintk,@($GRi,$GRj) */
5996 SEM_FN_NAME (frvbf,stfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5998 #define FLD(f) abuf->fields.sfmt_cstbfu.f
5999 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6000 int UNUSED written = 0;
6001 IADDR UNUSED pc = abuf->addr;
6002 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6006 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6007 frvbf_write_mem_SI (current_cpu, pc, tmp_address, GET_H_FR_INT (FLD (f_FRk)));
6009 SI opval = tmp_address;
6010 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6011 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6019 /* stcu: stcu$pack $CPRk,@($GRi,$GRj) */
6022 SEM_FN_NAME (frvbf,stcu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6024 #define FLD(f) abuf->fields.sfmt_stcu.f
6025 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6026 int UNUSED written = 0;
6027 IADDR UNUSED pc = abuf->addr;
6028 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6032 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6033 frvbf_write_mem_SI (current_cpu, pc, tmp_address, CPU (h_cpr[FLD (f_CPRk)]));
6035 SI opval = tmp_address;
6036 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6037 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6045 /* stdu: stdu$pack $GRk,@($GRi,$GRj) */
6048 SEM_FN_NAME (frvbf,stdu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6050 #define FLD(f) abuf->fields.sfmt_cstdu.f
6051 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6052 int UNUSED written = 0;
6053 IADDR UNUSED pc = abuf->addr;
6054 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6059 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6060 frvbf_write_mem_DI (current_cpu, pc, tmp_address, GET_H_GR_DOUBLE (FLD (f_GRk)));
6063 SI opval = tmp_address;
6064 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6065 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6073 /* stdfu: stdfu$pack $FRk,@($GRi,$GRj) */
6076 SEM_FN_NAME (frvbf,stdfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6078 #define FLD(f) abuf->fields.sfmt_cstdfu.f
6079 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6080 int UNUSED written = 0;
6081 IADDR UNUSED pc = abuf->addr;
6082 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6087 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6088 frvbf_write_mem_DF (current_cpu, pc, tmp_address, GET_H_FR_DOUBLE (FLD (f_FRk)));
6091 SI opval = tmp_address;
6092 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6093 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6101 /* stdcu: stdcu$pack $CPRk,@($GRi,$GRj) */
6104 SEM_FN_NAME (frvbf,stdcu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6106 #define FLD(f) abuf->fields.sfmt_stdcu.f
6107 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6108 int UNUSED written = 0;
6109 IADDR UNUSED pc = abuf->addr;
6110 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6115 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6116 frvbf_write_mem_DI (current_cpu, pc, tmp_address, GET_H_CPR_DOUBLE (FLD (f_CPRk)));
6119 SI opval = tmp_address;
6120 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6121 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6129 /* stqu: stqu$pack $GRk,@($GRi,$GRj) */
6132 SEM_FN_NAME (frvbf,stqu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6134 #define FLD(f) abuf->fields.sfmt_cstdu.f
6135 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6136 int UNUSED written = 0;
6137 IADDR UNUSED pc = abuf->addr;
6138 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6143 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6144 frvbf_store_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
6147 SI opval = tmp_address;
6148 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6149 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6157 /* stqfu: stqfu$pack $FRintk,@($GRi,$GRj) */
6160 SEM_FN_NAME (frvbf,stqfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6162 #define FLD(f) abuf->fields.sfmt_cstdfu.f
6163 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6164 int UNUSED written = 0;
6165 IADDR UNUSED pc = abuf->addr;
6166 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6171 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6172 frvbf_store_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
6175 SI opval = tmp_address;
6176 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6177 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6185 /* stqcu: stqcu$pack $CPRk,@($GRi,$GRj) */
6188 SEM_FN_NAME (frvbf,stqcu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6190 #define FLD(f) abuf->fields.sfmt_stdcu.f
6191 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6192 int UNUSED written = 0;
6193 IADDR UNUSED pc = abuf->addr;
6194 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6199 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6200 frvbf_store_quad_CPR (current_cpu, pc, tmp_address, FLD (f_CPRk));
6203 SI opval = tmp_address;
6204 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6205 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6213 /* cldsb: cldsb$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6216 SEM_FN_NAME (frvbf,cldsb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6218 #define FLD(f) abuf->fields.sfmt_cswap.f
6219 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6220 int UNUSED written = 0;
6221 IADDR UNUSED pc = abuf->addr;
6222 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6224 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6226 SI opval = frvbf_read_mem_QI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
6227 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6228 written |= (1 << 5);
6229 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6233 abuf->written = written;
6238 /* cldub: cldub$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6241 SEM_FN_NAME (frvbf,cldub) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6243 #define FLD(f) abuf->fields.sfmt_cswap.f
6244 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6245 int UNUSED written = 0;
6246 IADDR UNUSED pc = abuf->addr;
6247 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6249 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6251 SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
6252 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6253 written |= (1 << 5);
6254 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6258 abuf->written = written;
6263 /* cldsh: cldsh$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6266 SEM_FN_NAME (frvbf,cldsh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6268 #define FLD(f) abuf->fields.sfmt_cswap.f
6269 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6270 int UNUSED written = 0;
6271 IADDR UNUSED pc = abuf->addr;
6272 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6274 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6276 SI opval = frvbf_read_mem_HI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
6277 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6278 written |= (1 << 5);
6279 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6283 abuf->written = written;
6288 /* clduh: clduh$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6291 SEM_FN_NAME (frvbf,clduh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6293 #define FLD(f) abuf->fields.sfmt_cswap.f
6294 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6295 int UNUSED written = 0;
6296 IADDR UNUSED pc = abuf->addr;
6297 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6299 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6301 SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
6302 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6303 written |= (1 << 5);
6304 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6308 abuf->written = written;
6313 /* cld: cld$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6316 SEM_FN_NAME (frvbf,cld) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6318 #define FLD(f) abuf->fields.sfmt_cswap.f
6319 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6320 int UNUSED written = 0;
6321 IADDR UNUSED pc = abuf->addr;
6322 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6324 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6326 SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
6327 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6328 written |= (1 << 5);
6329 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6333 abuf->written = written;
6338 /* cldbf: cldbf$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6341 SEM_FN_NAME (frvbf,cldbf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6343 #define FLD(f) abuf->fields.sfmt_cldbfu.f
6344 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6345 int UNUSED written = 0;
6346 IADDR UNUSED pc = abuf->addr;
6347 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6349 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6351 SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
6352 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
6353 written |= (1 << 5);
6354 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
6358 abuf->written = written;
6363 /* cldhf: cldhf$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6366 SEM_FN_NAME (frvbf,cldhf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6368 #define FLD(f) abuf->fields.sfmt_cldbfu.f
6369 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6370 int UNUSED written = 0;
6371 IADDR UNUSED pc = abuf->addr;
6372 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6374 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6376 SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
6377 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
6378 written |= (1 << 5);
6379 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
6383 abuf->written = written;
6388 /* cldf: cldf$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6391 SEM_FN_NAME (frvbf,cldf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6393 #define FLD(f) abuf->fields.sfmt_cldbfu.f
6394 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6395 int UNUSED written = 0;
6396 IADDR UNUSED pc = abuf->addr;
6397 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6399 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6401 SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
6402 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
6403 written |= (1 << 5);
6404 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
6408 abuf->written = written;
6413 /* cldd: cldd$pack @($GRi,$GRj),$GRdoublek,$CCi,$cond */
6416 SEM_FN_NAME (frvbf,cldd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6418 #define FLD(f) abuf->fields.sfmt_clddu.f
6419 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6420 int UNUSED written = 0;
6421 IADDR UNUSED pc = abuf->addr;
6422 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6424 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6427 if (NESI (FLD (f_GRk), 0)) {
6429 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6431 DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
6432 sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
6433 written |= (1 << 6);
6434 TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
6441 abuf->written = written;
6446 /* clddf: clddf$pack @($GRi,$GRj),$FRdoublek,$CCi,$cond */
6449 SEM_FN_NAME (frvbf,clddf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6451 #define FLD(f) abuf->fields.sfmt_clddfu.f
6452 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6453 int UNUSED written = 0;
6454 IADDR UNUSED pc = abuf->addr;
6455 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6457 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 DF opval = frvbf_read_mem_DF (current_cpu, pc, tmp_address);
6464 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
6465 written |= (1 << 5);
6466 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
6472 abuf->written = written;
6477 /* cldq: cldq$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6480 SEM_FN_NAME (frvbf,cldq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6482 #define FLD(f) abuf->fields.sfmt_cswap.f
6483 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6484 int UNUSED written = 0;
6485 IADDR UNUSED pc = abuf->addr;
6486 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6488 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6492 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6493 frvbf_load_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
6502 /* cldsbu: cldsbu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6505 SEM_FN_NAME (frvbf,cldsbu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6507 #define FLD(f) abuf->fields.sfmt_cldsbu.f
6508 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6509 int UNUSED written = 0;
6510 IADDR UNUSED pc = abuf->addr;
6511 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6513 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6516 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6518 SI opval = frvbf_read_mem_QI (current_cpu, pc, tmp_address);
6519 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6520 written |= (1 << 8);
6521 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6523 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
6525 SI opval = tmp_address;
6526 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6527 written |= (1 << 7);
6528 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6534 abuf->written = written;
6539 /* cldubu: cldubu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6542 SEM_FN_NAME (frvbf,cldubu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6544 #define FLD(f) abuf->fields.sfmt_cldsbu.f
6545 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6546 int UNUSED written = 0;
6547 IADDR UNUSED pc = abuf->addr;
6548 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6550 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6553 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6555 SI opval = frvbf_read_mem_UQI (current_cpu, pc, tmp_address);
6556 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6557 written |= (1 << 8);
6558 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6560 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
6562 SI opval = tmp_address;
6563 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6564 written |= (1 << 7);
6565 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6571 abuf->written = written;
6576 /* cldshu: cldshu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6579 SEM_FN_NAME (frvbf,cldshu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6581 #define FLD(f) abuf->fields.sfmt_cldsbu.f
6582 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6583 int UNUSED written = 0;
6584 IADDR UNUSED pc = abuf->addr;
6585 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6587 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6590 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6592 SI opval = frvbf_read_mem_HI (current_cpu, pc, tmp_address);
6593 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6594 written |= (1 << 8);
6595 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6597 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
6599 SI opval = tmp_address;
6600 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6601 written |= (1 << 7);
6602 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6608 abuf->written = written;
6613 /* clduhu: clduhu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6616 SEM_FN_NAME (frvbf,clduhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6618 #define FLD(f) abuf->fields.sfmt_cldsbu.f
6619 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6620 int UNUSED written = 0;
6621 IADDR UNUSED pc = abuf->addr;
6622 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6624 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6627 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6629 SI opval = frvbf_read_mem_UHI (current_cpu, pc, tmp_address);
6630 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6631 written |= (1 << 8);
6632 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6634 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
6636 SI opval = tmp_address;
6637 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6638 written |= (1 << 7);
6639 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6645 abuf->written = written;
6650 /* cldu: cldu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6653 SEM_FN_NAME (frvbf,cldu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6655 #define FLD(f) abuf->fields.sfmt_cldsbu.f
6656 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6657 int UNUSED written = 0;
6658 IADDR UNUSED pc = abuf->addr;
6659 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6661 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6664 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6666 SI opval = frvbf_read_mem_SI (current_cpu, pc, tmp_address);
6667 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6668 written |= (1 << 8);
6669 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6671 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
6673 SI opval = tmp_address;
6674 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6675 written |= (1 << 7);
6676 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6682 abuf->written = written;
6687 /* cldbfu: cldbfu$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6690 SEM_FN_NAME (frvbf,cldbfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6692 #define FLD(f) abuf->fields.sfmt_cldbfu.f
6693 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6694 int UNUSED written = 0;
6695 IADDR UNUSED pc = abuf->addr;
6696 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6698 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6701 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6703 SI opval = frvbf_read_mem_UQI (current_cpu, pc, tmp_address);
6704 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
6705 written |= (1 << 5);
6706 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
6709 SI opval = tmp_address;
6710 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6711 written |= (1 << 6);
6712 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6717 abuf->written = written;
6722 /* cldhfu: cldhfu$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6725 SEM_FN_NAME (frvbf,cldhfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6727 #define FLD(f) abuf->fields.sfmt_cldbfu.f
6728 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6729 int UNUSED written = 0;
6730 IADDR UNUSED pc = abuf->addr;
6731 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6733 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6736 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6738 SI opval = frvbf_read_mem_UHI (current_cpu, pc, tmp_address);
6739 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
6740 written |= (1 << 5);
6741 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
6744 SI opval = tmp_address;
6745 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6746 written |= (1 << 6);
6747 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6752 abuf->written = written;
6757 /* cldfu: cldfu$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6760 SEM_FN_NAME (frvbf,cldfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6762 #define FLD(f) abuf->fields.sfmt_cldbfu.f
6763 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6764 int UNUSED written = 0;
6765 IADDR UNUSED pc = abuf->addr;
6766 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6768 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6771 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6773 SI opval = frvbf_read_mem_SI (current_cpu, pc, tmp_address);
6774 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
6775 written |= (1 << 5);
6776 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
6779 SI opval = tmp_address;
6780 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6781 written |= (1 << 6);
6782 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6787 abuf->written = written;
6792 /* clddu: clddu$pack @($GRi,$GRj),$GRdoublek,$CCi,$cond */
6795 SEM_FN_NAME (frvbf,clddu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6797 #define FLD(f) abuf->fields.sfmt_clddu.f
6798 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6799 int UNUSED written = 0;
6800 IADDR UNUSED pc = abuf->addr;
6801 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6803 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6806 if (NESI (FLD (f_GRk), 0)) {
6808 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6810 DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
6811 sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
6812 written |= (1 << 7);
6813 TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
6817 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
6819 SI opval = tmp_address;
6820 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6821 written |= (1 << 8);
6822 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6828 abuf->written = written;
6833 /* clddfu: clddfu$pack @($GRi,$GRj),$FRdoublek,$CCi,$cond */
6836 SEM_FN_NAME (frvbf,clddfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6838 #define FLD(f) abuf->fields.sfmt_clddfu.f
6839 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6840 int UNUSED written = 0;
6841 IADDR UNUSED pc = abuf->addr;
6842 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6844 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6848 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6850 DF opval = frvbf_read_mem_DF (current_cpu, pc, tmp_address);
6851 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
6852 written |= (1 << 5);
6853 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
6857 SI opval = tmp_address;
6858 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6859 written |= (1 << 6);
6860 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6865 abuf->written = written;
6870 /* cldqu: cldqu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6873 SEM_FN_NAME (frvbf,cldqu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6875 #define FLD(f) abuf->fields.sfmt_cstdu.f
6876 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6877 int UNUSED written = 0;
6878 IADDR UNUSED pc = abuf->addr;
6879 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6881 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6885 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6886 frvbf_load_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
6888 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
6890 SI opval = tmp_address;
6891 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6892 written |= (1 << 7);
6893 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6899 abuf->written = written;
6904 /* cstb: cstb$pack $GRk,@($GRi,$GRj),$CCi,$cond */
6907 SEM_FN_NAME (frvbf,cstb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6909 #define FLD(f) abuf->fields.sfmt_cswap.f
6910 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6911 int UNUSED written = 0;
6912 IADDR UNUSED pc = abuf->addr;
6913 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6915 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6916 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)));
6923 /* csth: csth$pack $GRk,@($GRi,$GRj),$CCi,$cond */
6926 SEM_FN_NAME (frvbf,csth) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6928 #define FLD(f) abuf->fields.sfmt_cswap.f
6929 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6930 int UNUSED written = 0;
6931 IADDR UNUSED pc = abuf->addr;
6932 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6934 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6935 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)));
6942 /* cst: cst$pack $GRk,@($GRi,$GRj),$CCi,$cond */
6945 SEM_FN_NAME (frvbf,cst) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6947 #define FLD(f) abuf->fields.sfmt_cswap.f
6948 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6949 int UNUSED written = 0;
6950 IADDR UNUSED pc = abuf->addr;
6951 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6953 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6954 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)));
6961 /* cstbf: cstbf$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
6964 SEM_FN_NAME (frvbf,cstbf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6966 #define FLD(f) abuf->fields.sfmt_cstbfu.f
6967 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6968 int UNUSED written = 0;
6969 IADDR UNUSED pc = abuf->addr;
6970 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6972 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6973 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)));
6980 /* csthf: csthf$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
6983 SEM_FN_NAME (frvbf,csthf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6985 #define FLD(f) abuf->fields.sfmt_cstbfu.f
6986 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6987 int UNUSED written = 0;
6988 IADDR UNUSED pc = abuf->addr;
6989 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6991 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6992 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)));
6999 /* cstf: cstf$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
7002 SEM_FN_NAME (frvbf,cstf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7004 #define FLD(f) abuf->fields.sfmt_cstbfu.f
7005 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7006 int UNUSED written = 0;
7007 IADDR UNUSED pc = abuf->addr;
7008 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7010 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7011 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)));
7018 /* cstd: cstd$pack $GRk,@($GRi,$GRj),$CCi,$cond */
7021 SEM_FN_NAME (frvbf,cstd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7023 #define FLD(f) abuf->fields.sfmt_cstdu.f
7024 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7025 int UNUSED written = 0;
7026 IADDR UNUSED pc = abuf->addr;
7027 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7029 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7033 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7034 frvbf_write_mem_DI (current_cpu, pc, tmp_address, GET_H_GR_DOUBLE (FLD (f_GRk)));
7043 /* cstdf: cstdf$pack $FRk,@($GRi,$GRj),$CCi,$cond */
7046 SEM_FN_NAME (frvbf,cstdf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7048 #define FLD(f) abuf->fields.sfmt_cstdfu.f
7049 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7050 int UNUSED written = 0;
7051 IADDR UNUSED pc = abuf->addr;
7052 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7054 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7058 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7059 frvbf_write_mem_DF (current_cpu, pc, tmp_address, GET_H_FR_DOUBLE (FLD (f_FRk)));
7068 /* cstq: cstq$pack $GRk,@($GRi,$GRj),$CCi,$cond */
7071 SEM_FN_NAME (frvbf,cstq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7073 #define FLD(f) abuf->fields.sfmt_cswap.f
7074 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7075 int UNUSED written = 0;
7076 IADDR UNUSED pc = abuf->addr;
7077 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7079 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7083 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7084 frvbf_store_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
7093 /* cstbu: cstbu$pack $GRk,@($GRi,$GRj),$CCi,$cond */
7096 SEM_FN_NAME (frvbf,cstbu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7098 #define FLD(f) abuf->fields.sfmt_cstbu.f
7099 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7100 int UNUSED written = 0;
7101 IADDR UNUSED pc = abuf->addr;
7102 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7104 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7107 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7108 frvbf_write_mem_QI (current_cpu, pc, tmp_address, GET_H_GR (FLD (f_GRk)));
7110 SI opval = tmp_address;
7111 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
7112 written |= (1 << 6);
7113 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7118 abuf->written = written;
7123 /* csthu: csthu$pack $GRk,@($GRi,$GRj),$CCi,$cond */
7126 SEM_FN_NAME (frvbf,csthu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7128 #define FLD(f) abuf->fields.sfmt_cstbu.f
7129 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7130 int UNUSED written = 0;
7131 IADDR UNUSED pc = abuf->addr;
7132 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7134 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7137 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7138 frvbf_write_mem_HI (current_cpu, pc, tmp_address, GET_H_GR (FLD (f_GRk)));
7140 SI opval = tmp_address;
7141 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
7142 written |= (1 << 6);
7143 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7148 abuf->written = written;
7153 /* cstu: cstu$pack $GRk,@($GRi,$GRj),$CCi,$cond */
7156 SEM_FN_NAME (frvbf,cstu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7158 #define FLD(f) abuf->fields.sfmt_cstbu.f
7159 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7160 int UNUSED written = 0;
7161 IADDR UNUSED pc = abuf->addr;
7162 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7164 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7167 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7168 frvbf_write_mem_SI (current_cpu, pc, tmp_address, GET_H_GR (FLD (f_GRk)));
7170 SI opval = tmp_address;
7171 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
7172 written |= (1 << 6);
7173 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7178 abuf->written = written;
7183 /* cstbfu: cstbfu$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
7186 SEM_FN_NAME (frvbf,cstbfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7188 #define FLD(f) abuf->fields.sfmt_cstbfu.f
7189 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7190 int UNUSED written = 0;
7191 IADDR UNUSED pc = abuf->addr;
7192 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7194 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7197 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7198 frvbf_write_mem_QI (current_cpu, pc, tmp_address, GET_H_FR_INT (FLD (f_FRk)));
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 /* csthfu: csthfu$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
7216 SEM_FN_NAME (frvbf,csthfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7218 #define FLD(f) abuf->fields.sfmt_cstbfu.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))) {
7227 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7228 frvbf_write_mem_HI (current_cpu, pc, tmp_address, GET_H_FR_INT (FLD (f_FRk)));
7230 SI opval = tmp_address;
7231 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
7232 written |= (1 << 6);
7233 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7238 abuf->written = written;
7243 /* cstfu: cstfu$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
7246 SEM_FN_NAME (frvbf,cstfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7248 #define FLD(f) abuf->fields.sfmt_cstbfu.f
7249 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7250 int UNUSED written = 0;
7251 IADDR UNUSED pc = abuf->addr;
7252 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7254 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7257 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7258 frvbf_write_mem_SI (current_cpu, pc, tmp_address, GET_H_FR_INT (FLD (f_FRk)));
7260 SI opval = tmp_address;
7261 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
7262 written |= (1 << 6);
7263 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7268 abuf->written = written;
7273 /* cstdu: cstdu$pack $GRk,@($GRi,$GRj),$CCi,$cond */
7276 SEM_FN_NAME (frvbf,cstdu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7278 #define FLD(f) abuf->fields.sfmt_cstdu.f
7279 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7280 int UNUSED written = 0;
7281 IADDR UNUSED pc = abuf->addr;
7282 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7284 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7288 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7289 frvbf_write_mem_DI (current_cpu, pc, tmp_address, GET_H_GR_DOUBLE (FLD (f_GRk)));
7292 SI opval = tmp_address;
7293 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
7294 written |= (1 << 6);
7295 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7300 abuf->written = written;
7305 /* cstdfu: cstdfu$pack $FRk,@($GRi,$GRj),$CCi,$cond */
7308 SEM_FN_NAME (frvbf,cstdfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7310 #define FLD(f) abuf->fields.sfmt_cstdfu.f
7311 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7312 int UNUSED written = 0;
7313 IADDR UNUSED pc = abuf->addr;
7314 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7316 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7320 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7321 frvbf_write_mem_DF (current_cpu, pc, tmp_address, GET_H_FR_DOUBLE (FLD (f_FRk)));
7324 SI opval = tmp_address;
7325 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
7326 written |= (1 << 6);
7327 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7332 abuf->written = written;
7337 /* stbi: stbi$pack $GRk,@($GRi,$d12) */
7340 SEM_FN_NAME (frvbf,stbi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7342 #define FLD(f) abuf->fields.sfmt_swapi.f
7343 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7344 int UNUSED written = 0;
7345 IADDR UNUSED pc = abuf->addr;
7346 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7348 frvbf_write_mem_QI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), GET_H_GR (FLD (f_GRk)));
7354 /* sthi: sthi$pack $GRk,@($GRi,$d12) */
7357 SEM_FN_NAME (frvbf,sthi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7359 #define FLD(f) abuf->fields.sfmt_swapi.f
7360 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7361 int UNUSED written = 0;
7362 IADDR UNUSED pc = abuf->addr;
7363 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7365 frvbf_write_mem_HI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), GET_H_GR (FLD (f_GRk)));
7371 /* sti: sti$pack $GRk,@($GRi,$d12) */
7374 SEM_FN_NAME (frvbf,sti) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7376 #define FLD(f) abuf->fields.sfmt_swapi.f
7377 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7378 int UNUSED written = 0;
7379 IADDR UNUSED pc = abuf->addr;
7380 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7382 frvbf_write_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), GET_H_GR (FLD (f_GRk)));
7388 /* stbfi: stbfi$pack $FRintk,@($GRi,$d12) */
7391 SEM_FN_NAME (frvbf,stbfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7393 #define FLD(f) abuf->fields.sfmt_stbfi.f
7394 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7395 int UNUSED written = 0;
7396 IADDR UNUSED pc = abuf->addr;
7397 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7399 frvbf_write_mem_QI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), GET_H_FR_INT (FLD (f_FRk)));
7405 /* sthfi: sthfi$pack $FRintk,@($GRi,$d12) */
7408 SEM_FN_NAME (frvbf,sthfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7410 #define FLD(f) abuf->fields.sfmt_stbfi.f
7411 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7412 int UNUSED written = 0;
7413 IADDR UNUSED pc = abuf->addr;
7414 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7416 frvbf_write_mem_HI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), GET_H_FR_INT (FLD (f_FRk)));
7422 /* stfi: stfi$pack $FRintk,@($GRi,$d12) */
7425 SEM_FN_NAME (frvbf,stfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7427 #define FLD(f) abuf->fields.sfmt_stbfi.f
7428 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7429 int UNUSED written = 0;
7430 IADDR UNUSED pc = abuf->addr;
7431 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7433 frvbf_write_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), GET_H_FR_INT (FLD (f_FRk)));
7439 /* stdi: stdi$pack $GRk,@($GRi,$d12) */
7442 SEM_FN_NAME (frvbf,stdi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7444 #define FLD(f) abuf->fields.sfmt_stdi.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_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
7454 frvbf_write_mem_DI (current_cpu, pc, tmp_address, GET_H_GR_DOUBLE (FLD (f_GRk)));
7462 /* stdfi: stdfi$pack $FRk,@($GRi,$d12) */
7465 SEM_FN_NAME (frvbf,stdfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7467 #define FLD(f) abuf->fields.sfmt_stdfi.f
7468 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7469 int UNUSED written = 0;
7470 IADDR UNUSED pc = abuf->addr;
7471 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7476 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
7477 frvbf_write_mem_DF (current_cpu, pc, tmp_address, GET_H_FR_DOUBLE (FLD (f_FRk)));
7485 /* stqi: stqi$pack $GRk,@($GRi,$d12) */
7488 SEM_FN_NAME (frvbf,stqi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7490 #define FLD(f) abuf->fields.sfmt_stdi.f
7491 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7492 int UNUSED written = 0;
7493 IADDR UNUSED pc = abuf->addr;
7494 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7499 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
7500 frvbf_store_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
7508 /* stqfi: stqfi$pack $FRintk,@($GRi,$d12) */
7511 SEM_FN_NAME (frvbf,stqfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7513 #define FLD(f) abuf->fields.sfmt_stdfi.f
7514 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7515 int UNUSED written = 0;
7516 IADDR UNUSED pc = abuf->addr;
7517 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7522 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
7523 frvbf_store_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
7531 /* swap: swap$pack @($GRi,$GRj),$GRk */
7534 SEM_FN_NAME (frvbf,swap) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7536 #define FLD(f) abuf->fields.sfmt_cswap.f
7537 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7538 int UNUSED written = 0;
7539 IADDR UNUSED pc = abuf->addr;
7540 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7545 tmp_tmp = GET_H_GR (FLD (f_GRk));
7546 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7548 SI opval = frvbf_read_mem_WI (current_cpu, pc, tmp_address);
7549 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
7550 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7552 frvbf_write_mem_WI (current_cpu, pc, tmp_address, tmp_tmp);
7559 /* swapi: swapi$pack @($GRi,$d12),$GRk */
7562 SEM_FN_NAME (frvbf,swapi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7564 #define FLD(f) abuf->fields.sfmt_swapi.f
7565 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7566 int UNUSED written = 0;
7567 IADDR UNUSED pc = abuf->addr;
7568 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7573 tmp_tmp = GET_H_GR (FLD (f_GRk));
7574 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
7576 SI opval = frvbf_read_mem_WI (current_cpu, pc, tmp_address);
7577 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
7578 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7580 frvbf_write_mem_WI (current_cpu, pc, tmp_address, tmp_tmp);
7587 /* cswap: cswap$pack @($GRi,$GRj),$GRk,$CCi,$cond */
7590 SEM_FN_NAME (frvbf,cswap) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7592 #define FLD(f) abuf->fields.sfmt_cswap.f
7593 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7594 int UNUSED written = 0;
7595 IADDR UNUSED pc = abuf->addr;
7596 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7598 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7602 tmp_tmp = GET_H_GR (FLD (f_GRk));
7603 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7605 SI opval = frvbf_read_mem_WI (current_cpu, pc, tmp_address);
7606 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
7607 written |= (1 << 6);
7608 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7610 frvbf_write_mem_WI (current_cpu, pc, tmp_address, tmp_tmp);
7614 abuf->written = written;
7619 /* movgf: movgf$pack $GRj,$FRintk */
7622 SEM_FN_NAME (frvbf,movgf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7624 #define FLD(f) abuf->fields.sfmt_cmovgfd.f
7625 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7626 int UNUSED written = 0;
7627 IADDR UNUSED pc = abuf->addr;
7628 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7631 SI opval = GET_H_GR (FLD (f_GRj));
7632 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
7633 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7640 /* movfg: movfg$pack $FRintk,$GRj */
7643 SEM_FN_NAME (frvbf,movfg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7645 #define FLD(f) abuf->fields.sfmt_cmovfgd.f
7646 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7647 int UNUSED written = 0;
7648 IADDR UNUSED pc = abuf->addr;
7649 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7652 SI opval = GET_H_FR_INT (FLD (f_FRk));
7653 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRj), opval);
7654 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7661 /* movgfd: movgfd$pack $GRj,$FRintk */
7664 SEM_FN_NAME (frvbf,movgfd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7666 #define FLD(f) abuf->fields.sfmt_cmovgfd.f
7667 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7668 int UNUSED written = 0;
7669 IADDR UNUSED pc = abuf->addr;
7670 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7672 if (EQSI (FLD (f_GRj), 0)) {
7676 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
7677 written |= (1 << 4);
7678 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7682 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
7683 written |= (1 << 5);
7684 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7690 SI opval = GET_H_GR (FLD (f_GRj));
7691 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
7692 written |= (1 << 4);
7693 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7696 USI opval = GET_H_GR (((FLD (f_GRj)) + (1)));
7697 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
7698 written |= (1 << 5);
7699 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7704 abuf->written = written;
7709 /* movfgd: movfgd$pack $FRintk,$GRj */
7712 SEM_FN_NAME (frvbf,movfgd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7714 #define FLD(f) abuf->fields.sfmt_cmovfgd.f
7715 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7716 int UNUSED written = 0;
7717 IADDR UNUSED pc = abuf->addr;
7718 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7720 if (NESI (FLD (f_GRj), 0)) {
7723 SI opval = GET_H_FR_INT (FLD (f_FRk));
7724 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRj), opval);
7725 written |= (1 << 4);
7726 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7729 USI opval = GET_H_FR_INT (((FLD (f_FRk)) + (1)));
7730 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, ((FLD (f_GRj)) + (1)), opval);
7731 written |= (1 << 5);
7732 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7737 abuf->written = written;
7742 /* movgfq: movgfq$pack $GRj,$FRintk */
7745 SEM_FN_NAME (frvbf,movgfq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7747 #define FLD(f) abuf->fields.sfmt_movgfq.f
7748 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7749 int UNUSED written = 0;
7750 IADDR UNUSED pc = abuf->addr;
7751 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7753 if (EQSI (FLD (f_GRj), 0)) {
7757 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
7758 written |= (1 << 6);
7759 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7763 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
7764 written |= (1 << 7);
7765 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7769 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (2)), opval);
7770 written |= (1 << 8);
7771 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7775 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (3)), opval);
7776 written |= (1 << 9);
7777 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
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 << 6);
7786 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7789 USI opval = GET_H_GR (((FLD (f_GRj)) + (1)));
7790 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
7791 written |= (1 << 7);
7792 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7795 USI opval = GET_H_GR (((FLD (f_GRj)) + (2)));
7796 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (2)), opval);
7797 written |= (1 << 8);
7798 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7801 USI opval = GET_H_GR (((FLD (f_GRj)) + (3)));
7802 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (3)), opval);
7803 written |= (1 << 9);
7804 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7809 abuf->written = written;
7814 /* movfgq: movfgq$pack $FRintk,$GRj */
7817 SEM_FN_NAME (frvbf,movfgq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7819 #define FLD(f) abuf->fields.sfmt_movfgq.f
7820 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7821 int UNUSED written = 0;
7822 IADDR UNUSED pc = abuf->addr;
7823 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7825 if (NESI (FLD (f_GRj), 0)) {
7828 SI opval = GET_H_FR_INT (FLD (f_FRk));
7829 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRj), opval);
7830 written |= (1 << 6);
7831 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7834 USI opval = GET_H_FR_INT (((FLD (f_FRk)) + (1)));
7835 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, ((FLD (f_GRj)) + (1)), opval);
7836 written |= (1 << 7);
7837 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7840 USI opval = GET_H_FR_INT (((FLD (f_FRk)) + (2)));
7841 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, ((FLD (f_GRj)) + (2)), opval);
7842 written |= (1 << 8);
7843 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7846 USI opval = GET_H_FR_INT (((FLD (f_FRk)) + (3)));
7847 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, ((FLD (f_GRj)) + (3)), opval);
7848 written |= (1 << 9);
7849 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7854 abuf->written = written;
7859 /* cmovgf: cmovgf$pack $GRj,$FRintk,$CCi,$cond */
7862 SEM_FN_NAME (frvbf,cmovgf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7864 #define FLD(f) abuf->fields.sfmt_cmovgfd.f
7865 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7866 int UNUSED written = 0;
7867 IADDR UNUSED pc = abuf->addr;
7868 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7870 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7872 SI opval = GET_H_GR (FLD (f_GRj));
7873 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
7874 written |= (1 << 3);
7875 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7879 abuf->written = written;
7884 /* cmovfg: cmovfg$pack $FRintk,$GRj,$CCi,$cond */
7887 SEM_FN_NAME (frvbf,cmovfg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7889 #define FLD(f) abuf->fields.sfmt_cmovfgd.f
7890 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7891 int UNUSED written = 0;
7892 IADDR UNUSED pc = abuf->addr;
7893 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7895 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7897 SI opval = GET_H_FR_INT (FLD (f_FRk));
7898 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRj), opval);
7899 written |= (1 << 3);
7900 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7904 abuf->written = written;
7909 /* cmovgfd: cmovgfd$pack $GRj,$FRintk,$CCi,$cond */
7912 SEM_FN_NAME (frvbf,cmovgfd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7914 #define FLD(f) abuf->fields.sfmt_cmovgfd.f
7915 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7916 int UNUSED written = 0;
7917 IADDR UNUSED pc = abuf->addr;
7918 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7920 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7921 if (EQSI (FLD (f_GRj), 0)) {
7925 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
7926 written |= (1 << 6);
7927 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7931 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
7932 written |= (1 << 7);
7933 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7939 SI opval = GET_H_GR (FLD (f_GRj));
7940 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
7941 written |= (1 << 6);
7942 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7945 USI opval = GET_H_GR (((FLD (f_GRj)) + (1)));
7946 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
7947 written |= (1 << 7);
7948 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7954 abuf->written = written;
7959 /* cmovfgd: cmovfgd$pack $FRintk,$GRj,$CCi,$cond */
7962 SEM_FN_NAME (frvbf,cmovfgd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7964 #define FLD(f) abuf->fields.sfmt_cmovfgd.f
7965 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7966 int UNUSED written = 0;
7967 IADDR UNUSED pc = abuf->addr;
7968 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7970 if (ANDIF (NESI (FLD (f_GRj), 0), EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2)))) {
7973 SI opval = GET_H_FR_INT (FLD (f_FRk));
7974 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRj), opval);
7975 written |= (1 << 6);
7976 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7979 USI opval = GET_H_FR_INT (((FLD (f_FRk)) + (1)));
7980 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, ((FLD (f_GRj)) + (1)), opval);
7981 written |= (1 << 7);
7982 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7987 abuf->written = written;
7992 /* movgs: movgs$pack $GRj,$spr */
7995 SEM_FN_NAME (frvbf,movgs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7997 #define FLD(f) abuf->fields.sfmt_movgs.f
7998 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7999 int UNUSED written = 0;
8000 IADDR UNUSED pc = abuf->addr;
8001 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8004 USI opval = GET_H_GR (FLD (f_GRj));
8005 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, FLD (f_spr), opval);
8006 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
8013 /* movsg: movsg$pack $spr,$GRj */
8016 SEM_FN_NAME (frvbf,movsg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8018 #define FLD(f) abuf->fields.sfmt_movsg.f
8019 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8020 int UNUSED written = 0;
8021 IADDR UNUSED pc = abuf->addr;
8022 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8025 SI opval = GET_H_SPR (FLD (f_spr));
8026 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRj), opval);
8027 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
8034 /* bra: bra$pack $hint_taken$label16 */
8037 SEM_FN_NAME (frvbf,bra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8039 #define FLD(f) abuf->fields.sfmt_fbne.f
8040 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8041 int UNUSED written = 0;
8042 IADDR UNUSED pc = abuf->addr;
8043 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8046 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8048 USI opval = FLD (i_label16);
8049 sim_queue_pc_write (current_cpu, opval);
8050 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8058 /* bno: bno$pack$hint_not_taken */
8061 SEM_FN_NAME (frvbf,bno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8063 #define FLD(f) abuf->fields.sfmt_fbne.f
8064 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8065 int UNUSED written = 0;
8066 IADDR UNUSED pc = abuf->addr;
8067 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8069 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8075 /* beq: beq$pack $ICCi_2,$hint,$label16 */
8078 SEM_FN_NAME (frvbf,beq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8080 #define FLD(f) abuf->fields.sfmt_beq.f
8081 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8082 int UNUSED written = 0;
8083 IADDR UNUSED pc = abuf->addr;
8084 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8087 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8088 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2))) {
8090 USI opval = FLD (i_label16);
8091 sim_queue_pc_write (current_cpu, opval);
8092 written |= (1 << 3);
8093 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8098 abuf->written = written;
8103 /* bne: bne$pack $ICCi_2,$hint,$label16 */
8106 SEM_FN_NAME (frvbf,bne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8108 #define FLD(f) abuf->fields.sfmt_beq.f
8109 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8110 int UNUSED written = 0;
8111 IADDR UNUSED pc = abuf->addr;
8112 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8115 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8116 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
8118 USI opval = FLD (i_label16);
8119 sim_queue_pc_write (current_cpu, opval);
8120 written |= (1 << 3);
8121 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8126 abuf->written = written;
8131 /* ble: ble$pack $ICCi_2,$hint,$label16 */
8134 SEM_FN_NAME (frvbf,ble) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8136 #define FLD(f) abuf->fields.sfmt_beq.f
8137 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8138 int UNUSED written = 0;
8139 IADDR UNUSED pc = abuf->addr;
8140 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8143 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8144 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))))) {
8146 USI opval = FLD (i_label16);
8147 sim_queue_pc_write (current_cpu, opval);
8148 written |= (1 << 3);
8149 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8154 abuf->written = written;
8159 /* bgt: bgt$pack $ICCi_2,$hint,$label16 */
8162 SEM_FN_NAME (frvbf,bgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8164 #define FLD(f) abuf->fields.sfmt_beq.f
8165 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8166 int UNUSED written = 0;
8167 IADDR UNUSED pc = abuf->addr;
8168 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8171 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8172 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)))))) {
8174 USI opval = FLD (i_label16);
8175 sim_queue_pc_write (current_cpu, opval);
8176 written |= (1 << 3);
8177 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8182 abuf->written = written;
8187 /* blt: blt$pack $ICCi_2,$hint,$label16 */
8190 SEM_FN_NAME (frvbf,blt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8192 #define FLD(f) abuf->fields.sfmt_beq.f
8193 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8194 int UNUSED written = 0;
8195 IADDR UNUSED pc = abuf->addr;
8196 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8199 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8200 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)))) {
8202 USI opval = FLD (i_label16);
8203 sim_queue_pc_write (current_cpu, opval);
8204 written |= (1 << 3);
8205 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8210 abuf->written = written;
8215 /* bge: bge$pack $ICCi_2,$hint,$label16 */
8218 SEM_FN_NAME (frvbf,bge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8220 #define FLD(f) abuf->fields.sfmt_beq.f
8221 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8222 int UNUSED written = 0;
8223 IADDR UNUSED pc = abuf->addr;
8224 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8227 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8228 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))))) {
8230 USI opval = FLD (i_label16);
8231 sim_queue_pc_write (current_cpu, opval);
8232 written |= (1 << 3);
8233 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8238 abuf->written = written;
8243 /* bls: bls$pack $ICCi_2,$hint,$label16 */
8246 SEM_FN_NAME (frvbf,bls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8248 #define FLD(f) abuf->fields.sfmt_beq.f
8249 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8250 int UNUSED written = 0;
8251 IADDR UNUSED pc = abuf->addr;
8252 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8255 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8256 if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
8258 USI opval = FLD (i_label16);
8259 sim_queue_pc_write (current_cpu, opval);
8260 written |= (1 << 3);
8261 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8266 abuf->written = written;
8271 /* bhi: bhi$pack $ICCi_2,$hint,$label16 */
8274 SEM_FN_NAME (frvbf,bhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8276 #define FLD(f) abuf->fields.sfmt_beq.f
8277 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8278 int UNUSED written = 0;
8279 IADDR UNUSED pc = abuf->addr;
8280 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8283 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8284 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))))) {
8286 USI opval = FLD (i_label16);
8287 sim_queue_pc_write (current_cpu, opval);
8288 written |= (1 << 3);
8289 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8294 abuf->written = written;
8299 /* bc: bc$pack $ICCi_2,$hint,$label16 */
8302 SEM_FN_NAME (frvbf,bc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8304 #define FLD(f) abuf->fields.sfmt_beq.f
8305 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8306 int UNUSED written = 0;
8307 IADDR UNUSED pc = abuf->addr;
8308 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8311 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8312 if (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1))) {
8314 USI opval = FLD (i_label16);
8315 sim_queue_pc_write (current_cpu, opval);
8316 written |= (1 << 3);
8317 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8322 abuf->written = written;
8327 /* bnc: bnc$pack $ICCi_2,$hint,$label16 */
8330 SEM_FN_NAME (frvbf,bnc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8332 #define FLD(f) abuf->fields.sfmt_beq.f
8333 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8334 int UNUSED written = 0;
8335 IADDR UNUSED pc = abuf->addr;
8336 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8339 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8340 if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)))) {
8342 USI opval = FLD (i_label16);
8343 sim_queue_pc_write (current_cpu, opval);
8344 written |= (1 << 3);
8345 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8350 abuf->written = written;
8355 /* bn: bn$pack $ICCi_2,$hint,$label16 */
8358 SEM_FN_NAME (frvbf,bn) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8360 #define FLD(f) abuf->fields.sfmt_beq.f
8361 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8362 int UNUSED written = 0;
8363 IADDR UNUSED pc = abuf->addr;
8364 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8367 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8368 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3))) {
8370 USI opval = FLD (i_label16);
8371 sim_queue_pc_write (current_cpu, opval);
8372 written |= (1 << 3);
8373 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8378 abuf->written = written;
8383 /* bp: bp$pack $ICCi_2,$hint,$label16 */
8386 SEM_FN_NAME (frvbf,bp) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8388 #define FLD(f) abuf->fields.sfmt_beq.f
8389 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8390 int UNUSED written = 0;
8391 IADDR UNUSED pc = abuf->addr;
8392 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8395 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8396 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3)))) {
8398 USI opval = FLD (i_label16);
8399 sim_queue_pc_write (current_cpu, opval);
8400 written |= (1 << 3);
8401 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8406 abuf->written = written;
8411 /* bv: bv$pack $ICCi_2,$hint,$label16 */
8414 SEM_FN_NAME (frvbf,bv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8416 #define FLD(f) abuf->fields.sfmt_beq.f
8417 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8418 int UNUSED written = 0;
8419 IADDR UNUSED pc = abuf->addr;
8420 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8423 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8424 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1))) {
8426 USI opval = FLD (i_label16);
8427 sim_queue_pc_write (current_cpu, opval);
8428 written |= (1 << 3);
8429 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8434 abuf->written = written;
8439 /* bnv: bnv$pack $ICCi_2,$hint,$label16 */
8442 SEM_FN_NAME (frvbf,bnv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8444 #define FLD(f) abuf->fields.sfmt_beq.f
8445 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8446 int UNUSED written = 0;
8447 IADDR UNUSED pc = abuf->addr;
8448 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8451 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8452 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1)))) {
8454 USI opval = FLD (i_label16);
8455 sim_queue_pc_write (current_cpu, opval);
8456 written |= (1 << 3);
8457 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8462 abuf->written = written;
8467 /* fbra: fbra$pack $hint_taken$label16 */
8470 SEM_FN_NAME (frvbf,fbra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8472 #define FLD(f) abuf->fields.sfmt_fbne.f
8473 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8474 int UNUSED written = 0;
8475 IADDR UNUSED pc = abuf->addr;
8476 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8479 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8481 USI opval = FLD (i_label16);
8482 sim_queue_pc_write (current_cpu, opval);
8483 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8491 /* fbno: fbno$pack$hint_not_taken */
8494 SEM_FN_NAME (frvbf,fbno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8496 #define FLD(f) abuf->fields.sfmt_fbne.f
8497 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8498 int UNUSED written = 0;
8499 IADDR UNUSED pc = abuf->addr;
8500 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8502 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8508 /* fbne: fbne$pack $FCCi_2,$hint,$label16 */
8511 SEM_FN_NAME (frvbf,fbne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8513 #define FLD(f) abuf->fields.sfmt_fbne.f
8514 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8515 int UNUSED written = 0;
8516 IADDR UNUSED pc = abuf->addr;
8517 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8520 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8521 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))))) {
8523 USI opval = FLD (i_label16);
8524 sim_queue_pc_write (current_cpu, opval);
8525 written |= (1 << 3);
8526 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8531 abuf->written = written;
8536 /* fbeq: fbeq$pack $FCCi_2,$hint,$label16 */
8539 SEM_FN_NAME (frvbf,fbeq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8541 #define FLD(f) abuf->fields.sfmt_fbne.f
8542 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8543 int UNUSED written = 0;
8544 IADDR UNUSED pc = abuf->addr;
8545 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8548 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8549 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3))) {
8551 USI opval = FLD (i_label16);
8552 sim_queue_pc_write (current_cpu, opval);
8553 written |= (1 << 3);
8554 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8559 abuf->written = written;
8564 /* fblg: fblg$pack $FCCi_2,$hint,$label16 */
8567 SEM_FN_NAME (frvbf,fblg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8569 #define FLD(f) abuf->fields.sfmt_fbne.f
8570 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8571 int UNUSED written = 0;
8572 IADDR UNUSED pc = abuf->addr;
8573 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8576 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8577 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)))) {
8579 USI opval = FLD (i_label16);
8580 sim_queue_pc_write (current_cpu, opval);
8581 written |= (1 << 3);
8582 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8587 abuf->written = written;
8592 /* fbue: fbue$pack $FCCi_2,$hint,$label16 */
8595 SEM_FN_NAME (frvbf,fbue) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8597 #define FLD(f) abuf->fields.sfmt_fbne.f
8598 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8599 int UNUSED written = 0;
8600 IADDR UNUSED pc = abuf->addr;
8601 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8604 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8605 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
8607 USI opval = FLD (i_label16);
8608 sim_queue_pc_write (current_cpu, opval);
8609 written |= (1 << 3);
8610 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8615 abuf->written = written;
8620 /* fbul: fbul$pack $FCCi_2,$hint,$label16 */
8623 SEM_FN_NAME (frvbf,fbul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8625 #define FLD(f) abuf->fields.sfmt_fbne.f
8626 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8627 int UNUSED written = 0;
8628 IADDR UNUSED pc = abuf->addr;
8629 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8632 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8633 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
8635 USI opval = FLD (i_label16);
8636 sim_queue_pc_write (current_cpu, opval);
8637 written |= (1 << 3);
8638 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8643 abuf->written = written;
8648 /* fbge: fbge$pack $FCCi_2,$hint,$label16 */
8651 SEM_FN_NAME (frvbf,fbge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8653 #define FLD(f) abuf->fields.sfmt_fbne.f
8654 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8655 int UNUSED written = 0;
8656 IADDR UNUSED pc = abuf->addr;
8657 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8660 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8661 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)))) {
8663 USI opval = FLD (i_label16);
8664 sim_queue_pc_write (current_cpu, opval);
8665 written |= (1 << 3);
8666 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8671 abuf->written = written;
8676 /* fblt: fblt$pack $FCCi_2,$hint,$label16 */
8679 SEM_FN_NAME (frvbf,fblt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8681 #define FLD(f) abuf->fields.sfmt_fbne.f
8682 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8683 int UNUSED written = 0;
8684 IADDR UNUSED pc = abuf->addr;
8685 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8688 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8689 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2))) {
8691 USI opval = FLD (i_label16);
8692 sim_queue_pc_write (current_cpu, opval);
8693 written |= (1 << 3);
8694 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8699 abuf->written = written;
8704 /* fbuge: fbuge$pack $FCCi_2,$hint,$label16 */
8707 SEM_FN_NAME (frvbf,fbuge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8709 #define FLD(f) abuf->fields.sfmt_fbne.f
8710 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8711 int UNUSED written = 0;
8712 IADDR UNUSED pc = abuf->addr;
8713 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8716 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8717 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))))) {
8719 USI opval = FLD (i_label16);
8720 sim_queue_pc_write (current_cpu, opval);
8721 written |= (1 << 3);
8722 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8727 abuf->written = written;
8732 /* fbug: fbug$pack $FCCi_2,$hint,$label16 */
8735 SEM_FN_NAME (frvbf,fbug) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8737 #define FLD(f) abuf->fields.sfmt_fbne.f
8738 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8739 int UNUSED written = 0;
8740 IADDR UNUSED pc = abuf->addr;
8741 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8744 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8745 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
8747 USI opval = FLD (i_label16);
8748 sim_queue_pc_write (current_cpu, opval);
8749 written |= (1 << 3);
8750 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8755 abuf->written = written;
8760 /* fble: fble$pack $FCCi_2,$hint,$label16 */
8763 SEM_FN_NAME (frvbf,fble) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8765 #define FLD(f) abuf->fields.sfmt_fbne.f
8766 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8767 int UNUSED written = 0;
8768 IADDR UNUSED pc = abuf->addr;
8769 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8772 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8773 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)))) {
8775 USI opval = FLD (i_label16);
8776 sim_queue_pc_write (current_cpu, opval);
8777 written |= (1 << 3);
8778 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8783 abuf->written = written;
8788 /* fbgt: fbgt$pack $FCCi_2,$hint,$label16 */
8791 SEM_FN_NAME (frvbf,fbgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8793 #define FLD(f) abuf->fields.sfmt_fbne.f
8794 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8795 int UNUSED written = 0;
8796 IADDR UNUSED pc = abuf->addr;
8797 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8800 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8801 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1))) {
8803 USI opval = FLD (i_label16);
8804 sim_queue_pc_write (current_cpu, opval);
8805 written |= (1 << 3);
8806 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8811 abuf->written = written;
8816 /* fbule: fbule$pack $FCCi_2,$hint,$label16 */
8819 SEM_FN_NAME (frvbf,fbule) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8821 #define FLD(f) abuf->fields.sfmt_fbne.f
8822 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8823 int UNUSED written = 0;
8824 IADDR UNUSED pc = abuf->addr;
8825 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8828 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8829 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))))) {
8831 USI opval = FLD (i_label16);
8832 sim_queue_pc_write (current_cpu, opval);
8833 written |= (1 << 3);
8834 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8839 abuf->written = written;
8844 /* fbu: fbu$pack $FCCi_2,$hint,$label16 */
8847 SEM_FN_NAME (frvbf,fbu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8849 #define FLD(f) abuf->fields.sfmt_fbne.f
8850 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8851 int UNUSED written = 0;
8852 IADDR UNUSED pc = abuf->addr;
8853 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8856 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8857 if (TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1))) {
8859 USI opval = FLD (i_label16);
8860 sim_queue_pc_write (current_cpu, opval);
8861 written |= (1 << 3);
8862 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8867 abuf->written = written;
8872 /* fbo: fbo$pack $FCCi_2,$hint,$label16 */
8875 SEM_FN_NAME (frvbf,fbo) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8877 #define FLD(f) abuf->fields.sfmt_fbne.f
8878 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8879 int UNUSED written = 0;
8880 IADDR UNUSED pc = abuf->addr;
8881 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8884 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8885 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))))) {
8887 USI opval = FLD (i_label16);
8888 sim_queue_pc_write (current_cpu, opval);
8889 written |= (1 << 3);
8890 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8895 abuf->written = written;
8900 /* bctrlr: bctrlr$pack $ccond,$hint */
8903 SEM_FN_NAME (frvbf,bctrlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8905 #define FLD(f) abuf->fields.sfmt_fcbeqlr.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));
8915 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
8917 USI opval = tmp_tmp;
8918 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
8919 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
8921 if (EQSI (FLD (f_ccond), 0)) {
8922 if (NESI (tmp_tmp, 0)) {
8924 USI opval = GET_H_SPR (((UINT) 272));
8925 sim_queue_pc_write (current_cpu, opval);
8926 written |= (1 << 5);
8927 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8931 if (EQSI (tmp_tmp, 0)) {
8933 USI opval = GET_H_SPR (((UINT) 272));
8934 sim_queue_pc_write (current_cpu, opval);
8935 written |= (1 << 5);
8936 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8943 abuf->written = written;
8948 /* bralr: bralr$pack$hint_taken */
8951 SEM_FN_NAME (frvbf,bralr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8953 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
8954 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8955 int UNUSED written = 0;
8956 IADDR UNUSED pc = abuf->addr;
8957 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8960 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
8962 USI opval = GET_H_SPR (((UINT) 272));
8963 sim_queue_pc_write (current_cpu, opval);
8964 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8972 /* bnolr: bnolr$pack$hint_not_taken */
8975 SEM_FN_NAME (frvbf,bnolr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8977 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
8978 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8979 int UNUSED written = 0;
8980 IADDR UNUSED pc = abuf->addr;
8981 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8983 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
8989 /* beqlr: beqlr$pack $ICCi_2,$hint */
8992 SEM_FN_NAME (frvbf,beqlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8994 #define FLD(f) abuf->fields.sfmt_bceqlr.f
8995 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8996 int UNUSED written = 0;
8997 IADDR UNUSED pc = abuf->addr;
8998 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9001 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9002 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2))) {
9004 USI opval = GET_H_SPR (((UINT) 272));
9005 sim_queue_pc_write (current_cpu, opval);
9006 written |= (1 << 3);
9007 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9012 abuf->written = written;
9017 /* bnelr: bnelr$pack $ICCi_2,$hint */
9020 SEM_FN_NAME (frvbf,bnelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9022 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9023 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9024 int UNUSED written = 0;
9025 IADDR UNUSED pc = abuf->addr;
9026 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9029 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9030 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
9032 USI opval = GET_H_SPR (((UINT) 272));
9033 sim_queue_pc_write (current_cpu, opval);
9034 written |= (1 << 3);
9035 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9040 abuf->written = written;
9045 /* blelr: blelr$pack $ICCi_2,$hint */
9048 SEM_FN_NAME (frvbf,blelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9050 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9051 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9052 int UNUSED written = 0;
9053 IADDR UNUSED pc = abuf->addr;
9054 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9057 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9058 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))))) {
9060 USI opval = GET_H_SPR (((UINT) 272));
9061 sim_queue_pc_write (current_cpu, opval);
9062 written |= (1 << 3);
9063 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9068 abuf->written = written;
9073 /* bgtlr: bgtlr$pack $ICCi_2,$hint */
9076 SEM_FN_NAME (frvbf,bgtlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9078 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9079 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9080 int UNUSED written = 0;
9081 IADDR UNUSED pc = abuf->addr;
9082 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9085 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9086 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)))))) {
9088 USI opval = GET_H_SPR (((UINT) 272));
9089 sim_queue_pc_write (current_cpu, opval);
9090 written |= (1 << 3);
9091 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9096 abuf->written = written;
9101 /* bltlr: bltlr$pack $ICCi_2,$hint */
9104 SEM_FN_NAME (frvbf,bltlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9106 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9107 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9108 int UNUSED written = 0;
9109 IADDR UNUSED pc = abuf->addr;
9110 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9113 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9114 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)))) {
9116 USI opval = GET_H_SPR (((UINT) 272));
9117 sim_queue_pc_write (current_cpu, opval);
9118 written |= (1 << 3);
9119 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9124 abuf->written = written;
9129 /* bgelr: bgelr$pack $ICCi_2,$hint */
9132 SEM_FN_NAME (frvbf,bgelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9134 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9135 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9136 int UNUSED written = 0;
9137 IADDR UNUSED pc = abuf->addr;
9138 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9141 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9142 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))))) {
9144 USI opval = GET_H_SPR (((UINT) 272));
9145 sim_queue_pc_write (current_cpu, opval);
9146 written |= (1 << 3);
9147 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9152 abuf->written = written;
9157 /* blslr: blslr$pack $ICCi_2,$hint */
9160 SEM_FN_NAME (frvbf,blslr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9162 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9163 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9164 int UNUSED written = 0;
9165 IADDR UNUSED pc = abuf->addr;
9166 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9169 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9170 if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
9172 USI opval = GET_H_SPR (((UINT) 272));
9173 sim_queue_pc_write (current_cpu, opval);
9174 written |= (1 << 3);
9175 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9180 abuf->written = written;
9185 /* bhilr: bhilr$pack $ICCi_2,$hint */
9188 SEM_FN_NAME (frvbf,bhilr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9190 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9191 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9192 int UNUSED written = 0;
9193 IADDR UNUSED pc = abuf->addr;
9194 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9197 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9198 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))))) {
9200 USI opval = GET_H_SPR (((UINT) 272));
9201 sim_queue_pc_write (current_cpu, opval);
9202 written |= (1 << 3);
9203 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9208 abuf->written = written;
9213 /* bclr: bclr$pack $ICCi_2,$hint */
9216 SEM_FN_NAME (frvbf,bclr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9218 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9219 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9220 int UNUSED written = 0;
9221 IADDR UNUSED pc = abuf->addr;
9222 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9225 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9226 if (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1))) {
9228 USI opval = GET_H_SPR (((UINT) 272));
9229 sim_queue_pc_write (current_cpu, opval);
9230 written |= (1 << 3);
9231 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9236 abuf->written = written;
9241 /* bnclr: bnclr$pack $ICCi_2,$hint */
9244 SEM_FN_NAME (frvbf,bnclr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9246 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9247 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9248 int UNUSED written = 0;
9249 IADDR UNUSED pc = abuf->addr;
9250 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9253 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9254 if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)))) {
9256 USI opval = GET_H_SPR (((UINT) 272));
9257 sim_queue_pc_write (current_cpu, opval);
9258 written |= (1 << 3);
9259 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9264 abuf->written = written;
9269 /* bnlr: bnlr$pack $ICCi_2,$hint */
9272 SEM_FN_NAME (frvbf,bnlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9274 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9275 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9276 int UNUSED written = 0;
9277 IADDR UNUSED pc = abuf->addr;
9278 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9281 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9282 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3))) {
9284 USI opval = GET_H_SPR (((UINT) 272));
9285 sim_queue_pc_write (current_cpu, opval);
9286 written |= (1 << 3);
9287 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9292 abuf->written = written;
9297 /* bplr: bplr$pack $ICCi_2,$hint */
9300 SEM_FN_NAME (frvbf,bplr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9302 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9303 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9304 int UNUSED written = 0;
9305 IADDR UNUSED pc = abuf->addr;
9306 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9309 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9310 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3)))) {
9312 USI opval = GET_H_SPR (((UINT) 272));
9313 sim_queue_pc_write (current_cpu, opval);
9314 written |= (1 << 3);
9315 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9320 abuf->written = written;
9325 /* bvlr: bvlr$pack $ICCi_2,$hint */
9328 SEM_FN_NAME (frvbf,bvlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9330 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9331 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9332 int UNUSED written = 0;
9333 IADDR UNUSED pc = abuf->addr;
9334 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9337 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9338 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1))) {
9340 USI opval = GET_H_SPR (((UINT) 272));
9341 sim_queue_pc_write (current_cpu, opval);
9342 written |= (1 << 3);
9343 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9348 abuf->written = written;
9353 /* bnvlr: bnvlr$pack $ICCi_2,$hint */
9356 SEM_FN_NAME (frvbf,bnvlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9358 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9359 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9360 int UNUSED written = 0;
9361 IADDR UNUSED pc = abuf->addr;
9362 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9365 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9366 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1)))) {
9368 USI opval = GET_H_SPR (((UINT) 272));
9369 sim_queue_pc_write (current_cpu, opval);
9370 written |= (1 << 3);
9371 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9376 abuf->written = written;
9381 /* fbralr: fbralr$pack$hint_taken */
9384 SEM_FN_NAME (frvbf,fbralr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9386 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9387 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9388 int UNUSED written = 0;
9389 IADDR UNUSED pc = abuf->addr;
9390 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9393 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9395 USI opval = GET_H_SPR (((UINT) 272));
9396 sim_queue_pc_write (current_cpu, opval);
9397 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9405 /* fbnolr: fbnolr$pack$hint_not_taken */
9408 SEM_FN_NAME (frvbf,fbnolr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9410 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9411 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9412 int UNUSED written = 0;
9413 IADDR UNUSED pc = abuf->addr;
9414 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9416 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9422 /* fbeqlr: fbeqlr$pack $FCCi_2,$hint */
9425 SEM_FN_NAME (frvbf,fbeqlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9427 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9428 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9429 int UNUSED written = 0;
9430 IADDR UNUSED pc = abuf->addr;
9431 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9434 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9435 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3))) {
9437 USI opval = GET_H_SPR (((UINT) 272));
9438 sim_queue_pc_write (current_cpu, opval);
9439 written |= (1 << 3);
9440 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9445 abuf->written = written;
9450 /* fbnelr: fbnelr$pack $FCCi_2,$hint */
9453 SEM_FN_NAME (frvbf,fbnelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9455 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9456 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9457 int UNUSED written = 0;
9458 IADDR UNUSED pc = abuf->addr;
9459 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9462 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9463 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))))) {
9465 USI opval = GET_H_SPR (((UINT) 272));
9466 sim_queue_pc_write (current_cpu, opval);
9467 written |= (1 << 3);
9468 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9473 abuf->written = written;
9478 /* fblglr: fblglr$pack $FCCi_2,$hint */
9481 SEM_FN_NAME (frvbf,fblglr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9483 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9484 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9485 int UNUSED written = 0;
9486 IADDR UNUSED pc = abuf->addr;
9487 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9490 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9491 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)))) {
9493 USI opval = GET_H_SPR (((UINT) 272));
9494 sim_queue_pc_write (current_cpu, opval);
9495 written |= (1 << 3);
9496 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9501 abuf->written = written;
9506 /* fbuelr: fbuelr$pack $FCCi_2,$hint */
9509 SEM_FN_NAME (frvbf,fbuelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9511 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9512 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9513 int UNUSED written = 0;
9514 IADDR UNUSED pc = abuf->addr;
9515 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9518 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9519 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
9521 USI opval = GET_H_SPR (((UINT) 272));
9522 sim_queue_pc_write (current_cpu, opval);
9523 written |= (1 << 3);
9524 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9529 abuf->written = written;
9534 /* fbullr: fbullr$pack $FCCi_2,$hint */
9537 SEM_FN_NAME (frvbf,fbullr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9539 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9540 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9541 int UNUSED written = 0;
9542 IADDR UNUSED pc = abuf->addr;
9543 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9546 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9547 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
9549 USI opval = GET_H_SPR (((UINT) 272));
9550 sim_queue_pc_write (current_cpu, opval);
9551 written |= (1 << 3);
9552 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9557 abuf->written = written;
9562 /* fbgelr: fbgelr$pack $FCCi_2,$hint */
9565 SEM_FN_NAME (frvbf,fbgelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9567 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9568 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9569 int UNUSED written = 0;
9570 IADDR UNUSED pc = abuf->addr;
9571 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9574 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9575 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)))) {
9577 USI opval = GET_H_SPR (((UINT) 272));
9578 sim_queue_pc_write (current_cpu, opval);
9579 written |= (1 << 3);
9580 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9585 abuf->written = written;
9590 /* fbltlr: fbltlr$pack $FCCi_2,$hint */
9593 SEM_FN_NAME (frvbf,fbltlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9595 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9596 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9597 int UNUSED written = 0;
9598 IADDR UNUSED pc = abuf->addr;
9599 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9602 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9603 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2))) {
9605 USI opval = GET_H_SPR (((UINT) 272));
9606 sim_queue_pc_write (current_cpu, opval);
9607 written |= (1 << 3);
9608 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9613 abuf->written = written;
9618 /* fbugelr: fbugelr$pack $FCCi_2,$hint */
9621 SEM_FN_NAME (frvbf,fbugelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9623 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9624 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9625 int UNUSED written = 0;
9626 IADDR UNUSED pc = abuf->addr;
9627 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9630 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9631 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))))) {
9633 USI opval = GET_H_SPR (((UINT) 272));
9634 sim_queue_pc_write (current_cpu, opval);
9635 written |= (1 << 3);
9636 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9641 abuf->written = written;
9646 /* fbuglr: fbuglr$pack $FCCi_2,$hint */
9649 SEM_FN_NAME (frvbf,fbuglr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9651 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9652 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9653 int UNUSED written = 0;
9654 IADDR UNUSED pc = abuf->addr;
9655 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9658 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9659 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
9661 USI opval = GET_H_SPR (((UINT) 272));
9662 sim_queue_pc_write (current_cpu, opval);
9663 written |= (1 << 3);
9664 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9669 abuf->written = written;
9674 /* fblelr: fblelr$pack $FCCi_2,$hint */
9677 SEM_FN_NAME (frvbf,fblelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9679 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9680 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9681 int UNUSED written = 0;
9682 IADDR UNUSED pc = abuf->addr;
9683 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9686 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9687 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)))) {
9689 USI opval = GET_H_SPR (((UINT) 272));
9690 sim_queue_pc_write (current_cpu, opval);
9691 written |= (1 << 3);
9692 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9697 abuf->written = written;
9702 /* fbgtlr: fbgtlr$pack $FCCi_2,$hint */
9705 SEM_FN_NAME (frvbf,fbgtlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9707 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9708 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9709 int UNUSED written = 0;
9710 IADDR UNUSED pc = abuf->addr;
9711 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9714 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9715 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1))) {
9717 USI opval = GET_H_SPR (((UINT) 272));
9718 sim_queue_pc_write (current_cpu, opval);
9719 written |= (1 << 3);
9720 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9725 abuf->written = written;
9730 /* fbulelr: fbulelr$pack $FCCi_2,$hint */
9733 SEM_FN_NAME (frvbf,fbulelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9735 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9736 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9737 int UNUSED written = 0;
9738 IADDR UNUSED pc = abuf->addr;
9739 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9742 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9743 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))))) {
9745 USI opval = GET_H_SPR (((UINT) 272));
9746 sim_queue_pc_write (current_cpu, opval);
9747 written |= (1 << 3);
9748 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9753 abuf->written = written;
9758 /* fbulr: fbulr$pack $FCCi_2,$hint */
9761 SEM_FN_NAME (frvbf,fbulr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9763 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9764 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9765 int UNUSED written = 0;
9766 IADDR UNUSED pc = abuf->addr;
9767 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9770 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9771 if (TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1))) {
9773 USI opval = GET_H_SPR (((UINT) 272));
9774 sim_queue_pc_write (current_cpu, opval);
9775 written |= (1 << 3);
9776 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9781 abuf->written = written;
9786 /* fbolr: fbolr$pack $FCCi_2,$hint */
9789 SEM_FN_NAME (frvbf,fbolr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9791 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9792 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9793 int UNUSED written = 0;
9794 IADDR UNUSED pc = abuf->addr;
9795 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9798 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9799 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))))) {
9801 USI opval = GET_H_SPR (((UINT) 272));
9802 sim_queue_pc_write (current_cpu, opval);
9803 written |= (1 << 3);
9804 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9809 abuf->written = written;
9814 /* bcralr: bcralr$pack $ccond$hint_taken */
9817 SEM_FN_NAME (frvbf,bcralr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9819 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9820 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9821 int UNUSED written = 0;
9822 IADDR UNUSED pc = abuf->addr;
9823 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9826 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9829 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
9831 USI opval = tmp_tmp;
9832 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
9833 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
9835 if (EQSI (FLD (f_ccond), 0)) {
9836 if (NESI (tmp_tmp, 0)) {
9838 USI opval = GET_H_SPR (((UINT) 272));
9839 sim_queue_pc_write (current_cpu, opval);
9840 written |= (1 << 5);
9841 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9845 if (EQSI (tmp_tmp, 0)) {
9847 USI opval = GET_H_SPR (((UINT) 272));
9848 sim_queue_pc_write (current_cpu, opval);
9849 written |= (1 << 5);
9850 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9857 abuf->written = written;
9862 /* bcnolr: bcnolr$pack$hint_not_taken */
9865 SEM_FN_NAME (frvbf,bcnolr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9867 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9868 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9869 int UNUSED written = 0;
9870 IADDR UNUSED pc = abuf->addr;
9871 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9874 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9877 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
9879 USI opval = tmp_tmp;
9880 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
9881 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
9891 /* bceqlr: bceqlr$pack $ICCi_2,$ccond,$hint */
9894 SEM_FN_NAME (frvbf,bceqlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9896 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9897 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9898 int UNUSED written = 0;
9899 IADDR UNUSED pc = abuf->addr;
9900 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9903 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9906 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
9908 USI opval = tmp_tmp;
9909 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
9910 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
9912 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2))) {
9913 if (EQSI (FLD (f_ccond), 0)) {
9914 if (NESI (tmp_tmp, 0)) {
9916 USI opval = GET_H_SPR (((UINT) 272));
9917 sim_queue_pc_write (current_cpu, opval);
9918 written |= (1 << 6);
9919 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9923 if (EQSI (tmp_tmp, 0)) {
9925 USI opval = GET_H_SPR (((UINT) 272));
9926 sim_queue_pc_write (current_cpu, opval);
9927 written |= (1 << 6);
9928 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9936 abuf->written = written;
9941 /* bcnelr: bcnelr$pack $ICCi_2,$ccond,$hint */
9944 SEM_FN_NAME (frvbf,bcnelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9946 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9947 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9948 int UNUSED written = 0;
9949 IADDR UNUSED pc = abuf->addr;
9950 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9953 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9956 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
9958 USI opval = tmp_tmp;
9959 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
9960 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
9962 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
9963 if (EQSI (FLD (f_ccond), 0)) {
9964 if (NESI (tmp_tmp, 0)) {
9966 USI opval = GET_H_SPR (((UINT) 272));
9967 sim_queue_pc_write (current_cpu, opval);
9968 written |= (1 << 6);
9969 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9973 if (EQSI (tmp_tmp, 0)) {
9975 USI opval = GET_H_SPR (((UINT) 272));
9976 sim_queue_pc_write (current_cpu, opval);
9977 written |= (1 << 6);
9978 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9986 abuf->written = written;
9991 /* bclelr: bclelr$pack $ICCi_2,$ccond,$hint */
9994 SEM_FN_NAME (frvbf,bclelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9996 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9997 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9998 int UNUSED written = 0;
9999 IADDR UNUSED pc = abuf->addr;
10000 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10003 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10006 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10008 USI opval = tmp_tmp;
10009 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10010 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10012 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))))) {
10013 if (EQSI (FLD (f_ccond), 0)) {
10014 if (NESI (tmp_tmp, 0)) {
10016 USI opval = GET_H_SPR (((UINT) 272));
10017 sim_queue_pc_write (current_cpu, opval);
10018 written |= (1 << 6);
10019 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10023 if (EQSI (tmp_tmp, 0)) {
10025 USI opval = GET_H_SPR (((UINT) 272));
10026 sim_queue_pc_write (current_cpu, opval);
10027 written |= (1 << 6);
10028 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10036 abuf->written = written;
10041 /* bcgtlr: bcgtlr$pack $ICCi_2,$ccond,$hint */
10044 SEM_FN_NAME (frvbf,bcgtlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10046 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10047 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10048 int UNUSED written = 0;
10049 IADDR UNUSED pc = abuf->addr;
10050 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10053 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10056 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10058 USI opval = tmp_tmp;
10059 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10060 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10062 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)))))) {
10063 if (EQSI (FLD (f_ccond), 0)) {
10064 if (NESI (tmp_tmp, 0)) {
10066 USI opval = GET_H_SPR (((UINT) 272));
10067 sim_queue_pc_write (current_cpu, opval);
10068 written |= (1 << 6);
10069 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10073 if (EQSI (tmp_tmp, 0)) {
10075 USI opval = GET_H_SPR (((UINT) 272));
10076 sim_queue_pc_write (current_cpu, opval);
10077 written |= (1 << 6);
10078 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10086 abuf->written = written;
10091 /* bcltlr: bcltlr$pack $ICCi_2,$ccond,$hint */
10094 SEM_FN_NAME (frvbf,bcltlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10096 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10097 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10098 int UNUSED written = 0;
10099 IADDR UNUSED pc = abuf->addr;
10100 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10103 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10106 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10108 USI opval = tmp_tmp;
10109 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10110 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10112 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)))) {
10113 if (EQSI (FLD (f_ccond), 0)) {
10114 if (NESI (tmp_tmp, 0)) {
10116 USI opval = GET_H_SPR (((UINT) 272));
10117 sim_queue_pc_write (current_cpu, opval);
10118 written |= (1 << 6);
10119 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10123 if (EQSI (tmp_tmp, 0)) {
10125 USI opval = GET_H_SPR (((UINT) 272));
10126 sim_queue_pc_write (current_cpu, opval);
10127 written |= (1 << 6);
10128 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10136 abuf->written = written;
10141 /* bcgelr: bcgelr$pack $ICCi_2,$ccond,$hint */
10144 SEM_FN_NAME (frvbf,bcgelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10146 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10147 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10148 int UNUSED written = 0;
10149 IADDR UNUSED pc = abuf->addr;
10150 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10153 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10156 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10158 USI opval = tmp_tmp;
10159 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10160 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10162 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))))) {
10163 if (EQSI (FLD (f_ccond), 0)) {
10164 if (NESI (tmp_tmp, 0)) {
10166 USI opval = GET_H_SPR (((UINT) 272));
10167 sim_queue_pc_write (current_cpu, opval);
10168 written |= (1 << 6);
10169 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10173 if (EQSI (tmp_tmp, 0)) {
10175 USI opval = GET_H_SPR (((UINT) 272));
10176 sim_queue_pc_write (current_cpu, opval);
10177 written |= (1 << 6);
10178 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10186 abuf->written = written;
10191 /* bclslr: bclslr$pack $ICCi_2,$ccond,$hint */
10194 SEM_FN_NAME (frvbf,bclslr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10196 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10197 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10198 int UNUSED written = 0;
10199 IADDR UNUSED pc = abuf->addr;
10200 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10203 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10206 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10208 USI opval = tmp_tmp;
10209 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10210 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10212 if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
10213 if (EQSI (FLD (f_ccond), 0)) {
10214 if (NESI (tmp_tmp, 0)) {
10216 USI opval = GET_H_SPR (((UINT) 272));
10217 sim_queue_pc_write (current_cpu, opval);
10218 written |= (1 << 6);
10219 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10223 if (EQSI (tmp_tmp, 0)) {
10225 USI opval = GET_H_SPR (((UINT) 272));
10226 sim_queue_pc_write (current_cpu, opval);
10227 written |= (1 << 6);
10228 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10236 abuf->written = written;
10241 /* bchilr: bchilr$pack $ICCi_2,$ccond,$hint */
10244 SEM_FN_NAME (frvbf,bchilr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10246 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10247 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10248 int UNUSED written = 0;
10249 IADDR UNUSED pc = abuf->addr;
10250 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10253 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10256 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10258 USI opval = tmp_tmp;
10259 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10260 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10262 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))))) {
10263 if (EQSI (FLD (f_ccond), 0)) {
10264 if (NESI (tmp_tmp, 0)) {
10266 USI opval = GET_H_SPR (((UINT) 272));
10267 sim_queue_pc_write (current_cpu, opval);
10268 written |= (1 << 6);
10269 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10273 if (EQSI (tmp_tmp, 0)) {
10275 USI opval = GET_H_SPR (((UINT) 272));
10276 sim_queue_pc_write (current_cpu, opval);
10277 written |= (1 << 6);
10278 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10286 abuf->written = written;
10291 /* bcclr: bcclr$pack $ICCi_2,$ccond,$hint */
10294 SEM_FN_NAME (frvbf,bcclr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10296 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10297 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10298 int UNUSED written = 0;
10299 IADDR UNUSED pc = abuf->addr;
10300 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10303 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10306 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10308 USI opval = tmp_tmp;
10309 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10310 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10312 if (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1))) {
10313 if (EQSI (FLD (f_ccond), 0)) {
10314 if (NESI (tmp_tmp, 0)) {
10316 USI opval = GET_H_SPR (((UINT) 272));
10317 sim_queue_pc_write (current_cpu, opval);
10318 written |= (1 << 6);
10319 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10323 if (EQSI (tmp_tmp, 0)) {
10325 USI opval = GET_H_SPR (((UINT) 272));
10326 sim_queue_pc_write (current_cpu, opval);
10327 written |= (1 << 6);
10328 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10336 abuf->written = written;
10341 /* bcnclr: bcnclr$pack $ICCi_2,$ccond,$hint */
10344 SEM_FN_NAME (frvbf,bcnclr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10346 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10347 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10348 int UNUSED written = 0;
10349 IADDR UNUSED pc = abuf->addr;
10350 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10353 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10356 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10358 USI opval = tmp_tmp;
10359 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10360 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10362 if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)))) {
10363 if (EQSI (FLD (f_ccond), 0)) {
10364 if (NESI (tmp_tmp, 0)) {
10366 USI opval = GET_H_SPR (((UINT) 272));
10367 sim_queue_pc_write (current_cpu, opval);
10368 written |= (1 << 6);
10369 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10373 if (EQSI (tmp_tmp, 0)) {
10375 USI opval = GET_H_SPR (((UINT) 272));
10376 sim_queue_pc_write (current_cpu, opval);
10377 written |= (1 << 6);
10378 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10386 abuf->written = written;
10391 /* bcnlr: bcnlr$pack $ICCi_2,$ccond,$hint */
10394 SEM_FN_NAME (frvbf,bcnlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10396 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10397 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10398 int UNUSED written = 0;
10399 IADDR UNUSED pc = abuf->addr;
10400 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10403 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10406 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10408 USI opval = tmp_tmp;
10409 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10410 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10412 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3))) {
10413 if (EQSI (FLD (f_ccond), 0)) {
10414 if (NESI (tmp_tmp, 0)) {
10416 USI opval = GET_H_SPR (((UINT) 272));
10417 sim_queue_pc_write (current_cpu, opval);
10418 written |= (1 << 6);
10419 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10423 if (EQSI (tmp_tmp, 0)) {
10425 USI opval = GET_H_SPR (((UINT) 272));
10426 sim_queue_pc_write (current_cpu, opval);
10427 written |= (1 << 6);
10428 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10436 abuf->written = written;
10441 /* bcplr: bcplr$pack $ICCi_2,$ccond,$hint */
10444 SEM_FN_NAME (frvbf,bcplr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10446 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10447 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10448 int UNUSED written = 0;
10449 IADDR UNUSED pc = abuf->addr;
10450 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10453 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10456 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10458 USI opval = tmp_tmp;
10459 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10460 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10462 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3)))) {
10463 if (EQSI (FLD (f_ccond), 0)) {
10464 if (NESI (tmp_tmp, 0)) {
10466 USI opval = GET_H_SPR (((UINT) 272));
10467 sim_queue_pc_write (current_cpu, opval);
10468 written |= (1 << 6);
10469 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10473 if (EQSI (tmp_tmp, 0)) {
10475 USI opval = GET_H_SPR (((UINT) 272));
10476 sim_queue_pc_write (current_cpu, opval);
10477 written |= (1 << 6);
10478 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10486 abuf->written = written;
10491 /* bcvlr: bcvlr$pack $ICCi_2,$ccond,$hint */
10494 SEM_FN_NAME (frvbf,bcvlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10496 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10497 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10498 int UNUSED written = 0;
10499 IADDR UNUSED pc = abuf->addr;
10500 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10503 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10506 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10508 USI opval = tmp_tmp;
10509 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10510 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10512 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1))) {
10513 if (EQSI (FLD (f_ccond), 0)) {
10514 if (NESI (tmp_tmp, 0)) {
10516 USI opval = GET_H_SPR (((UINT) 272));
10517 sim_queue_pc_write (current_cpu, opval);
10518 written |= (1 << 6);
10519 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10523 if (EQSI (tmp_tmp, 0)) {
10525 USI opval = GET_H_SPR (((UINT) 272));
10526 sim_queue_pc_write (current_cpu, opval);
10527 written |= (1 << 6);
10528 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10536 abuf->written = written;
10541 /* bcnvlr: bcnvlr$pack $ICCi_2,$ccond,$hint */
10544 SEM_FN_NAME (frvbf,bcnvlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10546 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10547 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10548 int UNUSED written = 0;
10549 IADDR UNUSED pc = abuf->addr;
10550 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10553 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10556 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10558 USI opval = tmp_tmp;
10559 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10560 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10562 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1)))) {
10563 if (EQSI (FLD (f_ccond), 0)) {
10564 if (NESI (tmp_tmp, 0)) {
10566 USI opval = GET_H_SPR (((UINT) 272));
10567 sim_queue_pc_write (current_cpu, opval);
10568 written |= (1 << 6);
10569 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10573 if (EQSI (tmp_tmp, 0)) {
10575 USI opval = GET_H_SPR (((UINT) 272));
10576 sim_queue_pc_write (current_cpu, opval);
10577 written |= (1 << 6);
10578 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10586 abuf->written = written;
10591 /* fcbralr: fcbralr$pack $ccond$hint_taken */
10594 SEM_FN_NAME (frvbf,fcbralr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10596 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10597 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10598 int UNUSED written = 0;
10599 IADDR UNUSED pc = abuf->addr;
10600 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10603 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10606 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10608 USI opval = tmp_tmp;
10609 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10610 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10612 if (EQSI (FLD (f_ccond), 0)) {
10613 if (NESI (tmp_tmp, 0)) {
10615 USI opval = GET_H_SPR (((UINT) 272));
10616 sim_queue_pc_write (current_cpu, opval);
10617 written |= (1 << 5);
10618 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10622 if (EQSI (tmp_tmp, 0)) {
10624 USI opval = GET_H_SPR (((UINT) 272));
10625 sim_queue_pc_write (current_cpu, opval);
10626 written |= (1 << 5);
10627 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10634 abuf->written = written;
10639 /* fcbnolr: fcbnolr$pack$hint_not_taken */
10642 SEM_FN_NAME (frvbf,fcbnolr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10644 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10645 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10646 int UNUSED written = 0;
10647 IADDR UNUSED pc = abuf->addr;
10648 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10651 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10654 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10656 USI opval = tmp_tmp;
10657 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10658 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10660 ((void) 0); /*nop*/
10668 /* fcbeqlr: fcbeqlr$pack $FCCi_2,$ccond,$hint */
10671 SEM_FN_NAME (frvbf,fcbeqlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10673 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10674 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10675 int UNUSED written = 0;
10676 IADDR UNUSED pc = abuf->addr;
10677 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10680 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10683 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10685 USI opval = tmp_tmp;
10686 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10687 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10689 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3))) {
10690 if (EQSI (FLD (f_ccond), 0)) {
10691 if (NESI (tmp_tmp, 0)) {
10693 USI opval = GET_H_SPR (((UINT) 272));
10694 sim_queue_pc_write (current_cpu, opval);
10695 written |= (1 << 6);
10696 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10700 if (EQSI (tmp_tmp, 0)) {
10702 USI opval = GET_H_SPR (((UINT) 272));
10703 sim_queue_pc_write (current_cpu, opval);
10704 written |= (1 << 6);
10705 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10713 abuf->written = written;
10718 /* fcbnelr: fcbnelr$pack $FCCi_2,$ccond,$hint */
10721 SEM_FN_NAME (frvbf,fcbnelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10723 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10724 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10725 int UNUSED written = 0;
10726 IADDR UNUSED pc = abuf->addr;
10727 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10730 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10733 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10735 USI opval = tmp_tmp;
10736 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10737 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10739 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))))) {
10740 if (EQSI (FLD (f_ccond), 0)) {
10741 if (NESI (tmp_tmp, 0)) {
10743 USI opval = GET_H_SPR (((UINT) 272));
10744 sim_queue_pc_write (current_cpu, opval);
10745 written |= (1 << 6);
10746 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10750 if (EQSI (tmp_tmp, 0)) {
10752 USI opval = GET_H_SPR (((UINT) 272));
10753 sim_queue_pc_write (current_cpu, opval);
10754 written |= (1 << 6);
10755 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10763 abuf->written = written;
10768 /* fcblglr: fcblglr$pack $FCCi_2,$ccond,$hint */
10771 SEM_FN_NAME (frvbf,fcblglr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10773 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10774 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10775 int UNUSED written = 0;
10776 IADDR UNUSED pc = abuf->addr;
10777 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10780 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10783 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10785 USI opval = tmp_tmp;
10786 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10787 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10789 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)))) {
10790 if (EQSI (FLD (f_ccond), 0)) {
10791 if (NESI (tmp_tmp, 0)) {
10793 USI opval = GET_H_SPR (((UINT) 272));
10794 sim_queue_pc_write (current_cpu, opval);
10795 written |= (1 << 6);
10796 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10800 if (EQSI (tmp_tmp, 0)) {
10802 USI opval = GET_H_SPR (((UINT) 272));
10803 sim_queue_pc_write (current_cpu, opval);
10804 written |= (1 << 6);
10805 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10813 abuf->written = written;
10818 /* fcbuelr: fcbuelr$pack $FCCi_2,$ccond,$hint */
10821 SEM_FN_NAME (frvbf,fcbuelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10823 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10824 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10825 int UNUSED written = 0;
10826 IADDR UNUSED pc = abuf->addr;
10827 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10830 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10833 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10835 USI opval = tmp_tmp;
10836 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10837 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10839 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
10840 if (EQSI (FLD (f_ccond), 0)) {
10841 if (NESI (tmp_tmp, 0)) {
10843 USI opval = GET_H_SPR (((UINT) 272));
10844 sim_queue_pc_write (current_cpu, opval);
10845 written |= (1 << 6);
10846 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10850 if (EQSI (tmp_tmp, 0)) {
10852 USI opval = GET_H_SPR (((UINT) 272));
10853 sim_queue_pc_write (current_cpu, opval);
10854 written |= (1 << 6);
10855 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10863 abuf->written = written;
10868 /* fcbullr: fcbullr$pack $FCCi_2,$ccond,$hint */
10871 SEM_FN_NAME (frvbf,fcbullr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10873 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10874 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10875 int UNUSED written = 0;
10876 IADDR UNUSED pc = abuf->addr;
10877 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10880 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10883 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10885 USI opval = tmp_tmp;
10886 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10887 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10889 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
10890 if (EQSI (FLD (f_ccond), 0)) {
10891 if (NESI (tmp_tmp, 0)) {
10893 USI opval = GET_H_SPR (((UINT) 272));
10894 sim_queue_pc_write (current_cpu, opval);
10895 written |= (1 << 6);
10896 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10900 if (EQSI (tmp_tmp, 0)) {
10902 USI opval = GET_H_SPR (((UINT) 272));
10903 sim_queue_pc_write (current_cpu, opval);
10904 written |= (1 << 6);
10905 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10913 abuf->written = written;
10918 /* fcbgelr: fcbgelr$pack $FCCi_2,$ccond,$hint */
10921 SEM_FN_NAME (frvbf,fcbgelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10923 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10924 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10925 int UNUSED written = 0;
10926 IADDR UNUSED pc = abuf->addr;
10927 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10930 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10933 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10935 USI opval = tmp_tmp;
10936 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10937 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10939 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)))) {
10940 if (EQSI (FLD (f_ccond), 0)) {
10941 if (NESI (tmp_tmp, 0)) {
10943 USI opval = GET_H_SPR (((UINT) 272));
10944 sim_queue_pc_write (current_cpu, opval);
10945 written |= (1 << 6);
10946 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10950 if (EQSI (tmp_tmp, 0)) {
10952 USI opval = GET_H_SPR (((UINT) 272));
10953 sim_queue_pc_write (current_cpu, opval);
10954 written |= (1 << 6);
10955 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10963 abuf->written = written;
10968 /* fcbltlr: fcbltlr$pack $FCCi_2,$ccond,$hint */
10971 SEM_FN_NAME (frvbf,fcbltlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10973 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10974 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10975 int UNUSED written = 0;
10976 IADDR UNUSED pc = abuf->addr;
10977 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10980 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10983 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10985 USI opval = tmp_tmp;
10986 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10987 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10989 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2))) {
10990 if (EQSI (FLD (f_ccond), 0)) {
10991 if (NESI (tmp_tmp, 0)) {
10993 USI opval = GET_H_SPR (((UINT) 272));
10994 sim_queue_pc_write (current_cpu, opval);
10995 written |= (1 << 6);
10996 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11000 if (EQSI (tmp_tmp, 0)) {
11002 USI opval = GET_H_SPR (((UINT) 272));
11003 sim_queue_pc_write (current_cpu, opval);
11004 written |= (1 << 6);
11005 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11013 abuf->written = written;
11018 /* fcbugelr: fcbugelr$pack $FCCi_2,$ccond,$hint */
11021 SEM_FN_NAME (frvbf,fcbugelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11023 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11024 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11025 int UNUSED written = 0;
11026 IADDR UNUSED pc = abuf->addr;
11027 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11030 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
11033 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
11035 USI opval = tmp_tmp;
11036 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
11037 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
11039 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))))) {
11040 if (EQSI (FLD (f_ccond), 0)) {
11041 if (NESI (tmp_tmp, 0)) {
11043 USI opval = GET_H_SPR (((UINT) 272));
11044 sim_queue_pc_write (current_cpu, opval);
11045 written |= (1 << 6);
11046 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11050 if (EQSI (tmp_tmp, 0)) {
11052 USI opval = GET_H_SPR (((UINT) 272));
11053 sim_queue_pc_write (current_cpu, opval);
11054 written |= (1 << 6);
11055 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11063 abuf->written = written;
11068 /* fcbuglr: fcbuglr$pack $FCCi_2,$ccond,$hint */
11071 SEM_FN_NAME (frvbf,fcbuglr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11073 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11074 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11075 int UNUSED written = 0;
11076 IADDR UNUSED pc = abuf->addr;
11077 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11080 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
11083 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
11085 USI opval = tmp_tmp;
11086 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
11087 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
11089 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
11090 if (EQSI (FLD (f_ccond), 0)) {
11091 if (NESI (tmp_tmp, 0)) {
11093 USI opval = GET_H_SPR (((UINT) 272));
11094 sim_queue_pc_write (current_cpu, opval);
11095 written |= (1 << 6);
11096 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11100 if (EQSI (tmp_tmp, 0)) {
11102 USI opval = GET_H_SPR (((UINT) 272));
11103 sim_queue_pc_write (current_cpu, opval);
11104 written |= (1 << 6);
11105 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11113 abuf->written = written;
11118 /* fcblelr: fcblelr$pack $FCCi_2,$ccond,$hint */
11121 SEM_FN_NAME (frvbf,fcblelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11123 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11124 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11125 int UNUSED written = 0;
11126 IADDR UNUSED pc = abuf->addr;
11127 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11130 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
11133 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
11135 USI opval = tmp_tmp;
11136 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
11137 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
11139 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)))) {
11140 if (EQSI (FLD (f_ccond), 0)) {
11141 if (NESI (tmp_tmp, 0)) {
11143 USI opval = GET_H_SPR (((UINT) 272));
11144 sim_queue_pc_write (current_cpu, opval);
11145 written |= (1 << 6);
11146 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11150 if (EQSI (tmp_tmp, 0)) {
11152 USI opval = GET_H_SPR (((UINT) 272));
11153 sim_queue_pc_write (current_cpu, opval);
11154 written |= (1 << 6);
11155 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11163 abuf->written = written;
11168 /* fcbgtlr: fcbgtlr$pack $FCCi_2,$ccond,$hint */
11171 SEM_FN_NAME (frvbf,fcbgtlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11173 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11174 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11175 int UNUSED written = 0;
11176 IADDR UNUSED pc = abuf->addr;
11177 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11180 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
11183 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
11185 USI opval = tmp_tmp;
11186 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
11187 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
11189 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1))) {
11190 if (EQSI (FLD (f_ccond), 0)) {
11191 if (NESI (tmp_tmp, 0)) {
11193 USI opval = GET_H_SPR (((UINT) 272));
11194 sim_queue_pc_write (current_cpu, opval);
11195 written |= (1 << 6);
11196 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11200 if (EQSI (tmp_tmp, 0)) {
11202 USI opval = GET_H_SPR (((UINT) 272));
11203 sim_queue_pc_write (current_cpu, opval);
11204 written |= (1 << 6);
11205 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11213 abuf->written = written;
11218 /* fcbulelr: fcbulelr$pack $FCCi_2,$ccond,$hint */
11221 SEM_FN_NAME (frvbf,fcbulelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11223 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11224 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11225 int UNUSED written = 0;
11226 IADDR UNUSED pc = abuf->addr;
11227 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11230 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
11233 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
11235 USI opval = tmp_tmp;
11236 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
11237 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
11239 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))))) {
11240 if (EQSI (FLD (f_ccond), 0)) {
11241 if (NESI (tmp_tmp, 0)) {
11243 USI opval = GET_H_SPR (((UINT) 272));
11244 sim_queue_pc_write (current_cpu, opval);
11245 written |= (1 << 6);
11246 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11250 if (EQSI (tmp_tmp, 0)) {
11252 USI opval = GET_H_SPR (((UINT) 272));
11253 sim_queue_pc_write (current_cpu, opval);
11254 written |= (1 << 6);
11255 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11263 abuf->written = written;
11268 /* fcbulr: fcbulr$pack $FCCi_2,$ccond,$hint */
11271 SEM_FN_NAME (frvbf,fcbulr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11273 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11274 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11275 int UNUSED written = 0;
11276 IADDR UNUSED pc = abuf->addr;
11277 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11280 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
11283 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
11285 USI opval = tmp_tmp;
11286 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
11287 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
11289 if (TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1))) {
11290 if (EQSI (FLD (f_ccond), 0)) {
11291 if (NESI (tmp_tmp, 0)) {
11293 USI opval = GET_H_SPR (((UINT) 272));
11294 sim_queue_pc_write (current_cpu, opval);
11295 written |= (1 << 6);
11296 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11300 if (EQSI (tmp_tmp, 0)) {
11302 USI opval = GET_H_SPR (((UINT) 272));
11303 sim_queue_pc_write (current_cpu, opval);
11304 written |= (1 << 6);
11305 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11313 abuf->written = written;
11318 /* fcbolr: fcbolr$pack $FCCi_2,$ccond,$hint */
11321 SEM_FN_NAME (frvbf,fcbolr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11323 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11324 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11325 int UNUSED written = 0;
11326 IADDR UNUSED pc = abuf->addr;
11327 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11330 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
11333 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
11335 USI opval = tmp_tmp;
11336 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
11337 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
11339 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))))) {
11340 if (EQSI (FLD (f_ccond), 0)) {
11341 if (NESI (tmp_tmp, 0)) {
11343 USI opval = GET_H_SPR (((UINT) 272));
11344 sim_queue_pc_write (current_cpu, opval);
11345 written |= (1 << 6);
11346 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11350 if (EQSI (tmp_tmp, 0)) {
11352 USI opval = GET_H_SPR (((UINT) 272));
11353 sim_queue_pc_write (current_cpu, opval);
11354 written |= (1 << 6);
11355 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11363 abuf->written = written;
11368 /* jmpl: jmpl$pack @($GRi,$GRj) */
11371 SEM_FN_NAME (frvbf,jmpl) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11373 #define FLD(f) abuf->fields.sfmt_cjmpl.f
11374 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11375 int UNUSED written = 0;
11376 IADDR UNUSED pc = abuf->addr;
11377 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11380 if (EQSI (FLD (f_LI), 1)) {
11381 frvbf_set_write_next_vliw_addr_to_LR (current_cpu, 1);
11384 USI opval = ANDSI (ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), 0xfffffffc);
11385 sim_queue_pc_write (current_cpu, opval);
11386 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11388 frvbf_model_branch (current_cpu, pc, 2);
11395 /* calll: calll$pack @($GRi,$GRj) */
11398 SEM_FN_NAME (frvbf,calll) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11400 #define FLD(f) abuf->fields.sfmt_cjmpl.f
11401 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11402 int UNUSED written = 0;
11403 IADDR UNUSED pc = abuf->addr;
11404 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11407 if (EQSI (FLD (f_LI), 1)) {
11408 frvbf_set_write_next_vliw_addr_to_LR (current_cpu, 1);
11411 USI opval = ANDSI (ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), 0xfffffffc);
11412 sim_queue_pc_write (current_cpu, opval);
11413 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11415 frvbf_model_branch (current_cpu, pc, 2);
11422 /* jmpil: jmpil$pack @($GRi,$s12) */
11425 SEM_FN_NAME (frvbf,jmpil) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11427 #define FLD(f) abuf->fields.sfmt_jmpil.f
11428 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11429 int UNUSED written = 0;
11430 IADDR UNUSED pc = abuf->addr;
11431 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11434 if (EQSI (FLD (f_LI), 1)) {
11435 frvbf_set_write_next_vliw_addr_to_LR (current_cpu, 1);
11438 USI opval = ANDSI (ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), 0xfffffffc);
11439 sim_queue_pc_write (current_cpu, opval);
11440 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11442 frvbf_model_branch (current_cpu, pc, 2);
11449 /* callil: callil$pack @($GRi,$s12) */
11452 SEM_FN_NAME (frvbf,callil) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11454 #define FLD(f) abuf->fields.sfmt_jmpil.f
11455 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11456 int UNUSED written = 0;
11457 IADDR UNUSED pc = abuf->addr;
11458 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11461 if (EQSI (FLD (f_LI), 1)) {
11462 frvbf_set_write_next_vliw_addr_to_LR (current_cpu, 1);
11465 USI opval = ANDSI (ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), 0xfffffffc);
11466 sim_queue_pc_write (current_cpu, opval);
11467 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11469 frvbf_model_branch (current_cpu, pc, 2);
11476 /* call: call$pack $label24 */
11479 SEM_FN_NAME (frvbf,call) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11481 #define FLD(f) abuf->fields.sfmt_call.f
11482 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11483 int UNUSED written = 0;
11484 IADDR UNUSED pc = abuf->addr;
11485 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11488 frvbf_set_write_next_vliw_addr_to_LR (current_cpu, 1);
11490 USI opval = FLD (i_label24);
11491 sim_queue_pc_write (current_cpu, opval);
11492 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11494 frvbf_model_branch (current_cpu, pc, 2);
11501 /* rett: rett$pack $debug */
11504 SEM_FN_NAME (frvbf,rett) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11506 #define FLD(f) abuf->fields.sfmt_rett.f
11507 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11508 int UNUSED written = 0;
11509 IADDR UNUSED pc = abuf->addr;
11510 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11514 USI opval = frv_rett (current_cpu, pc, FLD (f_debug));
11515 sim_queue_pc_write (current_cpu, opval);
11516 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11518 frvbf_model_branch (current_cpu, pc, 2);
11525 /* rei: rei$pack $eir */
11528 SEM_FN_NAME (frvbf,rei) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11530 #define FLD(f) abuf->fields.fmt_empty.f
11531 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11532 int UNUSED written = 0;
11533 IADDR UNUSED pc = abuf->addr;
11534 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11536 ((void) 0); /*nop*/
11542 /* tra: tra$pack $GRi,$GRj */
11545 SEM_FN_NAME (frvbf,tra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11547 #define FLD(f) abuf->fields.sfmt_ftne.f
11548 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11549 int UNUSED written = 0;
11550 IADDR UNUSED pc = abuf->addr;
11551 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11558 if (NEBI (CPU (h_psr_esr), 0)) {
11566 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11569 abuf->written = written;
11574 /* tno: tno$pack */
11577 SEM_FN_NAME (frvbf,tno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11579 #define FLD(f) abuf->fields.fmt_empty.f
11580 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11581 int UNUSED written = 0;
11582 IADDR UNUSED pc = abuf->addr;
11583 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11585 ((void) 0); /*nop*/
11591 /* teq: teq$pack $ICCi_2,$GRi,$GRj */
11594 SEM_FN_NAME (frvbf,teq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11596 #define FLD(f) abuf->fields.sfmt_teq.f
11597 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11598 int UNUSED written = 0;
11599 IADDR UNUSED pc = abuf->addr;
11600 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11602 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2))) {
11608 if (NEBI (CPU (h_psr_esr), 0)) {
11616 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11620 abuf->written = written;
11625 /* tne: tne$pack $ICCi_2,$GRi,$GRj */
11628 SEM_FN_NAME (frvbf,tne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11630 #define FLD(f) abuf->fields.sfmt_teq.f
11631 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11632 int UNUSED written = 0;
11633 IADDR UNUSED pc = abuf->addr;
11634 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11636 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
11642 if (NEBI (CPU (h_psr_esr), 0)) {
11650 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11654 abuf->written = written;
11659 /* tle: tle$pack $ICCi_2,$GRi,$GRj */
11662 SEM_FN_NAME (frvbf,tle) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11664 #define FLD(f) abuf->fields.sfmt_teq.f
11665 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11666 int UNUSED written = 0;
11667 IADDR UNUSED pc = abuf->addr;
11668 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11670 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))))) {
11676 if (NEBI (CPU (h_psr_esr), 0)) {
11684 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11688 abuf->written = written;
11693 /* tgt: tgt$pack $ICCi_2,$GRi,$GRj */
11696 SEM_FN_NAME (frvbf,tgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11698 #define FLD(f) abuf->fields.sfmt_teq.f
11699 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11700 int UNUSED written = 0;
11701 IADDR UNUSED pc = abuf->addr;
11702 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11704 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)))))) {
11710 if (NEBI (CPU (h_psr_esr), 0)) {
11718 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11722 abuf->written = written;
11727 /* tlt: tlt$pack $ICCi_2,$GRi,$GRj */
11730 SEM_FN_NAME (frvbf,tlt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11732 #define FLD(f) abuf->fields.sfmt_teq.f
11733 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11734 int UNUSED written = 0;
11735 IADDR UNUSED pc = abuf->addr;
11736 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11738 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)))) {
11744 if (NEBI (CPU (h_psr_esr), 0)) {
11752 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11756 abuf->written = written;
11761 /* tge: tge$pack $ICCi_2,$GRi,$GRj */
11764 SEM_FN_NAME (frvbf,tge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11766 #define FLD(f) abuf->fields.sfmt_teq.f
11767 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11768 int UNUSED written = 0;
11769 IADDR UNUSED pc = abuf->addr;
11770 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11772 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))))) {
11778 if (NEBI (CPU (h_psr_esr), 0)) {
11786 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11790 abuf->written = written;
11795 /* tls: tls$pack $ICCi_2,$GRi,$GRj */
11798 SEM_FN_NAME (frvbf,tls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11800 #define FLD(f) abuf->fields.sfmt_teq.f
11801 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11802 int UNUSED written = 0;
11803 IADDR UNUSED pc = abuf->addr;
11804 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11806 if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
11812 if (NEBI (CPU (h_psr_esr), 0)) {
11820 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11824 abuf->written = written;
11829 /* thi: thi$pack $ICCi_2,$GRi,$GRj */
11832 SEM_FN_NAME (frvbf,thi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11834 #define FLD(f) abuf->fields.sfmt_teq.f
11835 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11836 int UNUSED written = 0;
11837 IADDR UNUSED pc = abuf->addr;
11838 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11840 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))))) {
11846 if (NEBI (CPU (h_psr_esr), 0)) {
11854 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11858 abuf->written = written;
11863 /* tc: tc$pack $ICCi_2,$GRi,$GRj */
11866 SEM_FN_NAME (frvbf,tc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11868 #define FLD(f) abuf->fields.sfmt_teq.f
11869 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11870 int UNUSED written = 0;
11871 IADDR UNUSED pc = abuf->addr;
11872 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11874 if (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1))) {
11880 if (NEBI (CPU (h_psr_esr), 0)) {
11888 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11892 abuf->written = written;
11897 /* tnc: tnc$pack $ICCi_2,$GRi,$GRj */
11900 SEM_FN_NAME (frvbf,tnc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11902 #define FLD(f) abuf->fields.sfmt_teq.f
11903 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11904 int UNUSED written = 0;
11905 IADDR UNUSED pc = abuf->addr;
11906 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11908 if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)))) {
11914 if (NEBI (CPU (h_psr_esr), 0)) {
11922 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11926 abuf->written = written;
11931 /* tn: tn$pack $ICCi_2,$GRi,$GRj */
11934 SEM_FN_NAME (frvbf,tn) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11936 #define FLD(f) abuf->fields.sfmt_teq.f
11937 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11938 int UNUSED written = 0;
11939 IADDR UNUSED pc = abuf->addr;
11940 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11942 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3))) {
11948 if (NEBI (CPU (h_psr_esr), 0)) {
11956 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11960 abuf->written = written;
11965 /* tp: tp$pack $ICCi_2,$GRi,$GRj */
11968 SEM_FN_NAME (frvbf,tp) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11970 #define FLD(f) abuf->fields.sfmt_teq.f
11971 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11972 int UNUSED written = 0;
11973 IADDR UNUSED pc = abuf->addr;
11974 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11976 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3)))) {
11982 if (NEBI (CPU (h_psr_esr), 0)) {
11990 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11994 abuf->written = written;
11999 /* tv: tv$pack $ICCi_2,$GRi,$GRj */
12002 SEM_FN_NAME (frvbf,tv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12004 #define FLD(f) abuf->fields.sfmt_teq.f
12005 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12006 int UNUSED written = 0;
12007 IADDR UNUSED pc = abuf->addr;
12008 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12010 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1))) {
12016 if (NEBI (CPU (h_psr_esr), 0)) {
12024 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12028 abuf->written = written;
12033 /* tnv: tnv$pack $ICCi_2,$GRi,$GRj */
12036 SEM_FN_NAME (frvbf,tnv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12038 #define FLD(f) abuf->fields.sfmt_teq.f
12039 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12040 int UNUSED written = 0;
12041 IADDR UNUSED pc = abuf->addr;
12042 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12044 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1)))) {
12050 if (NEBI (CPU (h_psr_esr), 0)) {
12058 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12062 abuf->written = written;
12067 /* ftra: ftra$pack $GRi,$GRj */
12070 SEM_FN_NAME (frvbf,ftra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12072 #define FLD(f) abuf->fields.sfmt_ftne.f
12073 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12074 int UNUSED written = 0;
12075 IADDR UNUSED pc = abuf->addr;
12076 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12083 if (NEBI (CPU (h_psr_esr), 0)) {
12091 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12094 abuf->written = written;
12099 /* ftno: ftno$pack */
12102 SEM_FN_NAME (frvbf,ftno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12104 #define FLD(f) abuf->fields.fmt_empty.f
12105 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12106 int UNUSED written = 0;
12107 IADDR UNUSED pc = abuf->addr;
12108 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12110 ((void) 0); /*nop*/
12116 /* ftne: ftne$pack $FCCi_2,$GRi,$GRj */
12119 SEM_FN_NAME (frvbf,ftne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12121 #define FLD(f) abuf->fields.sfmt_ftne.f
12122 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12123 int UNUSED written = 0;
12124 IADDR UNUSED pc = abuf->addr;
12125 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12127 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))))) {
12133 if (NEBI (CPU (h_psr_esr), 0)) {
12141 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12145 abuf->written = written;
12150 /* fteq: fteq$pack $FCCi_2,$GRi,$GRj */
12153 SEM_FN_NAME (frvbf,fteq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12155 #define FLD(f) abuf->fields.sfmt_ftne.f
12156 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12157 int UNUSED written = 0;
12158 IADDR UNUSED pc = abuf->addr;
12159 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12161 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3))) {
12167 if (NEBI (CPU (h_psr_esr), 0)) {
12175 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12179 abuf->written = written;
12184 /* ftlg: ftlg$pack $FCCi_2,$GRi,$GRj */
12187 SEM_FN_NAME (frvbf,ftlg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12189 #define FLD(f) abuf->fields.sfmt_ftne.f
12190 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12191 int UNUSED written = 0;
12192 IADDR UNUSED pc = abuf->addr;
12193 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12195 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)))) {
12201 if (NEBI (CPU (h_psr_esr), 0)) {
12209 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12213 abuf->written = written;
12218 /* ftue: ftue$pack $FCCi_2,$GRi,$GRj */
12221 SEM_FN_NAME (frvbf,ftue) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12223 #define FLD(f) abuf->fields.sfmt_ftne.f
12224 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12225 int UNUSED written = 0;
12226 IADDR UNUSED pc = abuf->addr;
12227 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12229 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
12235 if (NEBI (CPU (h_psr_esr), 0)) {
12243 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12247 abuf->written = written;
12252 /* ftul: ftul$pack $FCCi_2,$GRi,$GRj */
12255 SEM_FN_NAME (frvbf,ftul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12257 #define FLD(f) abuf->fields.sfmt_ftne.f
12258 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12259 int UNUSED written = 0;
12260 IADDR UNUSED pc = abuf->addr;
12261 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12263 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
12269 if (NEBI (CPU (h_psr_esr), 0)) {
12277 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12281 abuf->written = written;
12286 /* ftge: ftge$pack $FCCi_2,$GRi,$GRj */
12289 SEM_FN_NAME (frvbf,ftge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12291 #define FLD(f) abuf->fields.sfmt_ftne.f
12292 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12293 int UNUSED written = 0;
12294 IADDR UNUSED pc = abuf->addr;
12295 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12297 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)))) {
12303 if (NEBI (CPU (h_psr_esr), 0)) {
12311 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12315 abuf->written = written;
12320 /* ftlt: ftlt$pack $FCCi_2,$GRi,$GRj */
12323 SEM_FN_NAME (frvbf,ftlt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12325 #define FLD(f) abuf->fields.sfmt_ftne.f
12326 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12327 int UNUSED written = 0;
12328 IADDR UNUSED pc = abuf->addr;
12329 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12331 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2))) {
12337 if (NEBI (CPU (h_psr_esr), 0)) {
12345 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12349 abuf->written = written;
12354 /* ftuge: ftuge$pack $FCCi_2,$GRi,$GRj */
12357 SEM_FN_NAME (frvbf,ftuge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12359 #define FLD(f) abuf->fields.sfmt_ftne.f
12360 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12361 int UNUSED written = 0;
12362 IADDR UNUSED pc = abuf->addr;
12363 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12365 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))))) {
12371 if (NEBI (CPU (h_psr_esr), 0)) {
12379 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12383 abuf->written = written;
12388 /* ftug: ftug$pack $FCCi_2,$GRi,$GRj */
12391 SEM_FN_NAME (frvbf,ftug) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12393 #define FLD(f) abuf->fields.sfmt_ftne.f
12394 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12395 int UNUSED written = 0;
12396 IADDR UNUSED pc = abuf->addr;
12397 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12399 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
12405 if (NEBI (CPU (h_psr_esr), 0)) {
12413 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12417 abuf->written = written;
12422 /* ftle: ftle$pack $FCCi_2,$GRi,$GRj */
12425 SEM_FN_NAME (frvbf,ftle) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12427 #define FLD(f) abuf->fields.sfmt_ftne.f
12428 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12429 int UNUSED written = 0;
12430 IADDR UNUSED pc = abuf->addr;
12431 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12433 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)))) {
12439 if (NEBI (CPU (h_psr_esr), 0)) {
12447 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12451 abuf->written = written;
12456 /* ftgt: ftgt$pack $FCCi_2,$GRi,$GRj */
12459 SEM_FN_NAME (frvbf,ftgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12461 #define FLD(f) abuf->fields.sfmt_ftne.f
12462 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12463 int UNUSED written = 0;
12464 IADDR UNUSED pc = abuf->addr;
12465 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12467 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1))) {
12473 if (NEBI (CPU (h_psr_esr), 0)) {
12481 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12485 abuf->written = written;
12490 /* ftule: ftule$pack $FCCi_2,$GRi,$GRj */
12493 SEM_FN_NAME (frvbf,ftule) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12495 #define FLD(f) abuf->fields.sfmt_ftne.f
12496 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12497 int UNUSED written = 0;
12498 IADDR UNUSED pc = abuf->addr;
12499 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12501 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))))) {
12507 if (NEBI (CPU (h_psr_esr), 0)) {
12515 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12519 abuf->written = written;
12524 /* ftu: ftu$pack $FCCi_2,$GRi,$GRj */
12527 SEM_FN_NAME (frvbf,ftu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12529 #define FLD(f) abuf->fields.sfmt_ftne.f
12530 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12531 int UNUSED written = 0;
12532 IADDR UNUSED pc = abuf->addr;
12533 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12535 if (TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1))) {
12541 if (NEBI (CPU (h_psr_esr), 0)) {
12549 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12553 abuf->written = written;
12558 /* fto: fto$pack $FCCi_2,$GRi,$GRj */
12561 SEM_FN_NAME (frvbf,fto) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12563 #define FLD(f) abuf->fields.sfmt_ftne.f
12564 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12565 int UNUSED written = 0;
12566 IADDR UNUSED pc = abuf->addr;
12567 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12569 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))))) {
12575 if (NEBI (CPU (h_psr_esr), 0)) {
12583 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12587 abuf->written = written;
12592 /* tira: tira$pack $GRi,$s12 */
12595 SEM_FN_NAME (frvbf,tira) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12597 #define FLD(f) abuf->fields.sfmt_ftine.f
12598 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12599 int UNUSED written = 0;
12600 IADDR UNUSED pc = abuf->addr;
12601 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12608 if (NEBI (CPU (h_psr_esr), 0)) {
12616 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12619 abuf->written = written;
12624 /* tino: tino$pack */
12627 SEM_FN_NAME (frvbf,tino) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12629 #define FLD(f) abuf->fields.fmt_empty.f
12630 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12631 int UNUSED written = 0;
12632 IADDR UNUSED pc = abuf->addr;
12633 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12635 ((void) 0); /*nop*/
12641 /* tieq: tieq$pack $ICCi_2,$GRi,$s12 */
12644 SEM_FN_NAME (frvbf,tieq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12646 #define FLD(f) abuf->fields.sfmt_tieq.f
12647 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12648 int UNUSED written = 0;
12649 IADDR UNUSED pc = abuf->addr;
12650 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12652 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2))) {
12658 if (NEBI (CPU (h_psr_esr), 0)) {
12666 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12670 abuf->written = written;
12675 /* tine: tine$pack $ICCi_2,$GRi,$s12 */
12678 SEM_FN_NAME (frvbf,tine) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12680 #define FLD(f) abuf->fields.sfmt_tieq.f
12681 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12682 int UNUSED written = 0;
12683 IADDR UNUSED pc = abuf->addr;
12684 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12686 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
12692 if (NEBI (CPU (h_psr_esr), 0)) {
12700 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12704 abuf->written = written;
12709 /* tile: tile$pack $ICCi_2,$GRi,$s12 */
12712 SEM_FN_NAME (frvbf,tile) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12714 #define FLD(f) abuf->fields.sfmt_tieq.f
12715 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12716 int UNUSED written = 0;
12717 IADDR UNUSED pc = abuf->addr;
12718 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12720 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))))) {
12726 if (NEBI (CPU (h_psr_esr), 0)) {
12734 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12738 abuf->written = written;
12743 /* tigt: tigt$pack $ICCi_2,$GRi,$s12 */
12746 SEM_FN_NAME (frvbf,tigt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12748 #define FLD(f) abuf->fields.sfmt_tieq.f
12749 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12750 int UNUSED written = 0;
12751 IADDR UNUSED pc = abuf->addr;
12752 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12754 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)))))) {
12760 if (NEBI (CPU (h_psr_esr), 0)) {
12768 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12772 abuf->written = written;
12777 /* tilt: tilt$pack $ICCi_2,$GRi,$s12 */
12780 SEM_FN_NAME (frvbf,tilt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12782 #define FLD(f) abuf->fields.sfmt_tieq.f
12783 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12784 int UNUSED written = 0;
12785 IADDR UNUSED pc = abuf->addr;
12786 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12788 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)))) {
12794 if (NEBI (CPU (h_psr_esr), 0)) {
12802 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12806 abuf->written = written;
12811 /* tige: tige$pack $ICCi_2,$GRi,$s12 */
12814 SEM_FN_NAME (frvbf,tige) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12816 #define FLD(f) abuf->fields.sfmt_tieq.f
12817 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12818 int UNUSED written = 0;
12819 IADDR UNUSED pc = abuf->addr;
12820 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12822 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))))) {
12828 if (NEBI (CPU (h_psr_esr), 0)) {
12836 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12840 abuf->written = written;
12845 /* tils: tils$pack $ICCi_2,$GRi,$s12 */
12848 SEM_FN_NAME (frvbf,tils) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12850 #define FLD(f) abuf->fields.sfmt_tieq.f
12851 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12852 int UNUSED written = 0;
12853 IADDR UNUSED pc = abuf->addr;
12854 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12856 if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
12862 if (NEBI (CPU (h_psr_esr), 0)) {
12870 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12874 abuf->written = written;
12879 /* tihi: tihi$pack $ICCi_2,$GRi,$s12 */
12882 SEM_FN_NAME (frvbf,tihi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12884 #define FLD(f) abuf->fields.sfmt_tieq.f
12885 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12886 int UNUSED written = 0;
12887 IADDR UNUSED pc = abuf->addr;
12888 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12890 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))))) {
12896 if (NEBI (CPU (h_psr_esr), 0)) {
12904 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12908 abuf->written = written;
12913 /* tic: tic$pack $ICCi_2,$GRi,$s12 */
12916 SEM_FN_NAME (frvbf,tic) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12918 #define FLD(f) abuf->fields.sfmt_tieq.f
12919 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12920 int UNUSED written = 0;
12921 IADDR UNUSED pc = abuf->addr;
12922 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12924 if (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1))) {
12930 if (NEBI (CPU (h_psr_esr), 0)) {
12938 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12942 abuf->written = written;
12947 /* tinc: tinc$pack $ICCi_2,$GRi,$s12 */
12950 SEM_FN_NAME (frvbf,tinc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12952 #define FLD(f) abuf->fields.sfmt_tieq.f
12953 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12954 int UNUSED written = 0;
12955 IADDR UNUSED pc = abuf->addr;
12956 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12958 if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)))) {
12964 if (NEBI (CPU (h_psr_esr), 0)) {
12972 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12976 abuf->written = written;
12981 /* tin: tin$pack $ICCi_2,$GRi,$s12 */
12984 SEM_FN_NAME (frvbf,tin) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12986 #define FLD(f) abuf->fields.sfmt_tieq.f
12987 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12988 int UNUSED written = 0;
12989 IADDR UNUSED pc = abuf->addr;
12990 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12992 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3))) {
12998 if (NEBI (CPU (h_psr_esr), 0)) {
13006 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13010 abuf->written = written;
13015 /* tip: tip$pack $ICCi_2,$GRi,$s12 */
13018 SEM_FN_NAME (frvbf,tip) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13020 #define FLD(f) abuf->fields.sfmt_tieq.f
13021 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13022 int UNUSED written = 0;
13023 IADDR UNUSED pc = abuf->addr;
13024 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13026 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3)))) {
13032 if (NEBI (CPU (h_psr_esr), 0)) {
13040 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13044 abuf->written = written;
13049 /* tiv: tiv$pack $ICCi_2,$GRi,$s12 */
13052 SEM_FN_NAME (frvbf,tiv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13054 #define FLD(f) abuf->fields.sfmt_tieq.f
13055 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13056 int UNUSED written = 0;
13057 IADDR UNUSED pc = abuf->addr;
13058 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13060 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1))) {
13066 if (NEBI (CPU (h_psr_esr), 0)) {
13074 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13078 abuf->written = written;
13083 /* tinv: tinv$pack $ICCi_2,$GRi,$s12 */
13086 SEM_FN_NAME (frvbf,tinv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13088 #define FLD(f) abuf->fields.sfmt_tieq.f
13089 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13090 int UNUSED written = 0;
13091 IADDR UNUSED pc = abuf->addr;
13092 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13094 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1)))) {
13100 if (NEBI (CPU (h_psr_esr), 0)) {
13108 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13112 abuf->written = written;
13117 /* ftira: ftira$pack $GRi,$s12 */
13120 SEM_FN_NAME (frvbf,ftira) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13122 #define FLD(f) abuf->fields.sfmt_ftine.f
13123 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13124 int UNUSED written = 0;
13125 IADDR UNUSED pc = abuf->addr;
13126 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13133 if (NEBI (CPU (h_psr_esr), 0)) {
13141 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13144 abuf->written = written;
13149 /* ftino: ftino$pack */
13152 SEM_FN_NAME (frvbf,ftino) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13154 #define FLD(f) abuf->fields.fmt_empty.f
13155 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13156 int UNUSED written = 0;
13157 IADDR UNUSED pc = abuf->addr;
13158 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13160 ((void) 0); /*nop*/
13166 /* ftine: ftine$pack $FCCi_2,$GRi,$s12 */
13169 SEM_FN_NAME (frvbf,ftine) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13171 #define FLD(f) abuf->fields.sfmt_ftine.f
13172 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13173 int UNUSED written = 0;
13174 IADDR UNUSED pc = abuf->addr;
13175 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13177 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))))) {
13183 if (NEBI (CPU (h_psr_esr), 0)) {
13191 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13195 abuf->written = written;
13200 /* ftieq: ftieq$pack $FCCi_2,$GRi,$s12 */
13203 SEM_FN_NAME (frvbf,ftieq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13205 #define FLD(f) abuf->fields.sfmt_ftine.f
13206 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13207 int UNUSED written = 0;
13208 IADDR UNUSED pc = abuf->addr;
13209 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13211 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3))) {
13217 if (NEBI (CPU (h_psr_esr), 0)) {
13225 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13229 abuf->written = written;
13234 /* ftilg: ftilg$pack $FCCi_2,$GRi,$s12 */
13237 SEM_FN_NAME (frvbf,ftilg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13239 #define FLD(f) abuf->fields.sfmt_ftine.f
13240 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13241 int UNUSED written = 0;
13242 IADDR UNUSED pc = abuf->addr;
13243 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13245 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)))) {
13251 if (NEBI (CPU (h_psr_esr), 0)) {
13259 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13263 abuf->written = written;
13268 /* ftiue: ftiue$pack $FCCi_2,$GRi,$s12 */
13271 SEM_FN_NAME (frvbf,ftiue) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13273 #define FLD(f) abuf->fields.sfmt_ftine.f
13274 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13275 int UNUSED written = 0;
13276 IADDR UNUSED pc = abuf->addr;
13277 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13279 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
13285 if (NEBI (CPU (h_psr_esr), 0)) {
13293 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13297 abuf->written = written;
13302 /* ftiul: ftiul$pack $FCCi_2,$GRi,$s12 */
13305 SEM_FN_NAME (frvbf,ftiul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13307 #define FLD(f) abuf->fields.sfmt_ftine.f
13308 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13309 int UNUSED written = 0;
13310 IADDR UNUSED pc = abuf->addr;
13311 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13313 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
13319 if (NEBI (CPU (h_psr_esr), 0)) {
13327 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13331 abuf->written = written;
13336 /* ftige: ftige$pack $FCCi_2,$GRi,$s12 */
13339 SEM_FN_NAME (frvbf,ftige) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13341 #define FLD(f) abuf->fields.sfmt_ftine.f
13342 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13343 int UNUSED written = 0;
13344 IADDR UNUSED pc = abuf->addr;
13345 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13347 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)))) {
13353 if (NEBI (CPU (h_psr_esr), 0)) {
13361 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13365 abuf->written = written;
13370 /* ftilt: ftilt$pack $FCCi_2,$GRi,$s12 */
13373 SEM_FN_NAME (frvbf,ftilt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13375 #define FLD(f) abuf->fields.sfmt_ftine.f
13376 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13377 int UNUSED written = 0;
13378 IADDR UNUSED pc = abuf->addr;
13379 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13381 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2))) {
13387 if (NEBI (CPU (h_psr_esr), 0)) {
13395 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13399 abuf->written = written;
13404 /* ftiuge: ftiuge$pack $FCCi_2,$GRi,$s12 */
13407 SEM_FN_NAME (frvbf,ftiuge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13409 #define FLD(f) abuf->fields.sfmt_ftine.f
13410 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13411 int UNUSED written = 0;
13412 IADDR UNUSED pc = abuf->addr;
13413 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13415 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))))) {
13421 if (NEBI (CPU (h_psr_esr), 0)) {
13429 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13433 abuf->written = written;
13438 /* ftiug: ftiug$pack $FCCi_2,$GRi,$s12 */
13441 SEM_FN_NAME (frvbf,ftiug) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13443 #define FLD(f) abuf->fields.sfmt_ftine.f
13444 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13445 int UNUSED written = 0;
13446 IADDR UNUSED pc = abuf->addr;
13447 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13449 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
13455 if (NEBI (CPU (h_psr_esr), 0)) {
13463 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13467 abuf->written = written;
13472 /* ftile: ftile$pack $FCCi_2,$GRi,$s12 */
13475 SEM_FN_NAME (frvbf,ftile) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13477 #define FLD(f) abuf->fields.sfmt_ftine.f
13478 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13479 int UNUSED written = 0;
13480 IADDR UNUSED pc = abuf->addr;
13481 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13483 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)))) {
13489 if (NEBI (CPU (h_psr_esr), 0)) {
13497 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13501 abuf->written = written;
13506 /* ftigt: ftigt$pack $FCCi_2,$GRi,$s12 */
13509 SEM_FN_NAME (frvbf,ftigt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13511 #define FLD(f) abuf->fields.sfmt_ftine.f
13512 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13513 int UNUSED written = 0;
13514 IADDR UNUSED pc = abuf->addr;
13515 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13517 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1))) {
13523 if (NEBI (CPU (h_psr_esr), 0)) {
13531 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13535 abuf->written = written;
13540 /* ftiule: ftiule$pack $FCCi_2,$GRi,$s12 */
13543 SEM_FN_NAME (frvbf,ftiule) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13545 #define FLD(f) abuf->fields.sfmt_ftine.f
13546 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13547 int UNUSED written = 0;
13548 IADDR UNUSED pc = abuf->addr;
13549 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13551 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))))) {
13557 if (NEBI (CPU (h_psr_esr), 0)) {
13565 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13569 abuf->written = written;
13574 /* ftiu: ftiu$pack $FCCi_2,$GRi,$s12 */
13577 SEM_FN_NAME (frvbf,ftiu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13579 #define FLD(f) abuf->fields.sfmt_ftine.f
13580 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13581 int UNUSED written = 0;
13582 IADDR UNUSED pc = abuf->addr;
13583 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13585 if (TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1))) {
13591 if (NEBI (CPU (h_psr_esr), 0)) {
13599 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13603 abuf->written = written;
13608 /* ftio: ftio$pack $FCCi_2,$GRi,$s12 */
13611 SEM_FN_NAME (frvbf,ftio) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13613 #define FLD(f) abuf->fields.sfmt_ftine.f
13614 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13615 int UNUSED written = 0;
13616 IADDR UNUSED pc = abuf->addr;
13617 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13619 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))))) {
13625 if (NEBI (CPU (h_psr_esr), 0)) {
13633 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13637 abuf->written = written;
13642 /* break: break$pack */
13645 SEM_FN_NAME (frvbf,break) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13647 #define FLD(f) abuf->fields.sfmt_break.f
13648 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13649 int UNUSED written = 0;
13650 IADDR UNUSED pc = abuf->addr;
13651 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13660 frv_break (current_cpu);
13667 /* mtrap: mtrap$pack */
13670 SEM_FN_NAME (frvbf,mtrap) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13672 #define FLD(f) abuf->fields.fmt_empty.f
13673 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13674 int UNUSED written = 0;
13675 IADDR UNUSED pc = abuf->addr;
13676 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13678 frv_mtrap (current_cpu);
13684 /* andcr: andcr$pack $CRi,$CRj,$CRk */
13687 SEM_FN_NAME (frvbf,andcr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13689 #define FLD(f) abuf->fields.sfmt_andcr.f
13690 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13691 int UNUSED written = 0;
13692 IADDR UNUSED pc = abuf->addr;
13693 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13696 UQI opval = frvbf_cr_logic (current_cpu, 0, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13697 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13698 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13705 /* orcr: orcr$pack $CRi,$CRj,$CRk */
13708 SEM_FN_NAME (frvbf,orcr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13710 #define FLD(f) abuf->fields.sfmt_andcr.f
13711 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13712 int UNUSED written = 0;
13713 IADDR UNUSED pc = abuf->addr;
13714 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13717 UQI opval = frvbf_cr_logic (current_cpu, 1, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13718 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13719 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13726 /* xorcr: xorcr$pack $CRi,$CRj,$CRk */
13729 SEM_FN_NAME (frvbf,xorcr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13731 #define FLD(f) abuf->fields.sfmt_andcr.f
13732 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13733 int UNUSED written = 0;
13734 IADDR UNUSED pc = abuf->addr;
13735 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13738 UQI opval = frvbf_cr_logic (current_cpu, 2, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13739 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13740 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13747 /* nandcr: nandcr$pack $CRi,$CRj,$CRk */
13750 SEM_FN_NAME (frvbf,nandcr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13752 #define FLD(f) abuf->fields.sfmt_andcr.f
13753 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13754 int UNUSED written = 0;
13755 IADDR UNUSED pc = abuf->addr;
13756 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13759 UQI opval = frvbf_cr_logic (current_cpu, 3, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13760 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13761 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13768 /* norcr: norcr$pack $CRi,$CRj,$CRk */
13771 SEM_FN_NAME (frvbf,norcr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13773 #define FLD(f) abuf->fields.sfmt_andcr.f
13774 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13775 int UNUSED written = 0;
13776 IADDR UNUSED pc = abuf->addr;
13777 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13780 UQI opval = frvbf_cr_logic (current_cpu, 4, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13781 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13782 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13789 /* andncr: andncr$pack $CRi,$CRj,$CRk */
13792 SEM_FN_NAME (frvbf,andncr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13794 #define FLD(f) abuf->fields.sfmt_andcr.f
13795 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13796 int UNUSED written = 0;
13797 IADDR UNUSED pc = abuf->addr;
13798 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13801 UQI opval = frvbf_cr_logic (current_cpu, 5, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13802 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13803 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13810 /* orncr: orncr$pack $CRi,$CRj,$CRk */
13813 SEM_FN_NAME (frvbf,orncr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13815 #define FLD(f) abuf->fields.sfmt_andcr.f
13816 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13817 int UNUSED written = 0;
13818 IADDR UNUSED pc = abuf->addr;
13819 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13822 UQI opval = frvbf_cr_logic (current_cpu, 6, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13823 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13824 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13831 /* nandncr: nandncr$pack $CRi,$CRj,$CRk */
13834 SEM_FN_NAME (frvbf,nandncr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13836 #define FLD(f) abuf->fields.sfmt_andcr.f
13837 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13838 int UNUSED written = 0;
13839 IADDR UNUSED pc = abuf->addr;
13840 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13843 UQI opval = frvbf_cr_logic (current_cpu, 7, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13844 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13845 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13852 /* norncr: norncr$pack $CRi,$CRj,$CRk */
13855 SEM_FN_NAME (frvbf,norncr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13857 #define FLD(f) abuf->fields.sfmt_andcr.f
13858 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13859 int UNUSED written = 0;
13860 IADDR UNUSED pc = abuf->addr;
13861 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13864 UQI opval = frvbf_cr_logic (current_cpu, 8, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13865 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13866 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13873 /* notcr: notcr$pack $CRj,$CRk */
13876 SEM_FN_NAME (frvbf,notcr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13878 #define FLD(f) abuf->fields.sfmt_andcr.f
13879 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13880 int UNUSED written = 0;
13881 IADDR UNUSED pc = abuf->addr;
13882 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13885 UQI opval = XORQI (CPU (h_cccr[FLD (f_CRj)]), 1);
13886 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13887 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13894 /* ckra: ckra$pack $CRj_int */
13897 SEM_FN_NAME (frvbf,ckra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13899 #define FLD(f) abuf->fields.sfmt_cckeq.f
13900 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13901 int UNUSED written = 0;
13902 IADDR UNUSED pc = abuf->addr;
13903 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13907 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
13908 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13915 /* ckno: ckno$pack $CRj_int */
13918 SEM_FN_NAME (frvbf,ckno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13920 #define FLD(f) abuf->fields.sfmt_cckeq.f
13921 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13922 int UNUSED written = 0;
13923 IADDR UNUSED pc = abuf->addr;
13924 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13928 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
13929 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13936 /* ckeq: ckeq$pack $ICCi_3,$CRj_int */
13939 SEM_FN_NAME (frvbf,ckeq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13941 #define FLD(f) abuf->fields.sfmt_cckeq.f
13942 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13943 int UNUSED written = 0;
13944 IADDR UNUSED pc = abuf->addr;
13945 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13947 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 4), 2))) {
13950 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
13951 written |= (1 << 1);
13952 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
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);
13963 abuf->written = written;
13968 /* ckne: ckne$pack $ICCi_3,$CRj_int */
13971 SEM_FN_NAME (frvbf,ckne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13973 #define FLD(f) abuf->fields.sfmt_cckeq.f
13974 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13975 int UNUSED written = 0;
13976 IADDR UNUSED pc = abuf->addr;
13977 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13979 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 4), 2)))) {
13982 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
13983 written |= (1 << 1);
13984 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
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);
13995 abuf->written = written;
14000 /* ckle: ckle$pack $ICCi_3,$CRj_int */
14003 SEM_FN_NAME (frvbf,ckle) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14005 #define FLD(f) abuf->fields.sfmt_cckeq.f
14006 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14007 int UNUSED written = 0;
14008 IADDR UNUSED pc = abuf->addr;
14009 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14011 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))))) {
14014 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14015 written |= (1 << 1);
14016 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
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);
14027 abuf->written = written;
14032 /* ckgt: ckgt$pack $ICCi_3,$CRj_int */
14035 SEM_FN_NAME (frvbf,ckgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14037 #define FLD(f) abuf->fields.sfmt_cckeq.f
14038 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14039 int UNUSED written = 0;
14040 IADDR UNUSED pc = abuf->addr;
14041 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14043 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)))))) {
14046 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14047 written |= (1 << 1);
14048 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
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);
14059 abuf->written = written;
14064 /* cklt: cklt$pack $ICCi_3,$CRj_int */
14067 SEM_FN_NAME (frvbf,cklt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14069 #define FLD(f) abuf->fields.sfmt_cckeq.f
14070 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14071 int UNUSED written = 0;
14072 IADDR UNUSED pc = abuf->addr;
14073 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14075 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)))) {
14078 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14079 written |= (1 << 1);
14080 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
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);
14091 abuf->written = written;
14096 /* ckge: ckge$pack $ICCi_3,$CRj_int */
14099 SEM_FN_NAME (frvbf,ckge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14101 #define FLD(f) abuf->fields.sfmt_cckeq.f
14102 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14103 int UNUSED written = 0;
14104 IADDR UNUSED pc = abuf->addr;
14105 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14107 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))))) {
14110 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14111 written |= (1 << 1);
14112 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
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);
14123 abuf->written = written;
14128 /* ckls: ckls$pack $ICCi_3,$CRj_int */
14131 SEM_FN_NAME (frvbf,ckls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14133 #define FLD(f) abuf->fields.sfmt_cckeq.f
14134 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14135 int UNUSED written = 0;
14136 IADDR UNUSED pc = abuf->addr;
14137 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14139 if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 4), 2)))) {
14142 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14143 written |= (1 << 1);
14144 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
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);
14155 abuf->written = written;
14160 /* ckhi: ckhi$pack $ICCi_3,$CRj_int */
14163 SEM_FN_NAME (frvbf,ckhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14165 #define FLD(f) abuf->fields.sfmt_cckeq.f
14166 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14167 int UNUSED written = 0;
14168 IADDR UNUSED pc = abuf->addr;
14169 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14171 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))))) {
14174 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14175 written |= (1 << 1);
14176 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
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);
14187 abuf->written = written;
14192 /* ckc: ckc$pack $ICCi_3,$CRj_int */
14195 SEM_FN_NAME (frvbf,ckc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14197 #define FLD(f) abuf->fields.sfmt_cckeq.f
14198 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14199 int UNUSED written = 0;
14200 IADDR UNUSED pc = abuf->addr;
14201 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14203 if (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 1))) {
14206 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14207 written |= (1 << 1);
14208 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
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);
14219 abuf->written = written;
14224 /* cknc: cknc$pack $ICCi_3,$CRj_int */
14227 SEM_FN_NAME (frvbf,cknc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14229 #define FLD(f) abuf->fields.sfmt_cckeq.f
14230 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14231 int UNUSED written = 0;
14232 IADDR UNUSED pc = abuf->addr;
14233 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14235 if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 1)))) {
14238 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14239 written |= (1 << 1);
14240 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
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);
14251 abuf->written = written;
14256 /* ckn: ckn$pack $ICCi_3,$CRj_int */
14259 SEM_FN_NAME (frvbf,ckn) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14261 #define FLD(f) abuf->fields.sfmt_cckeq.f
14262 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14263 int UNUSED written = 0;
14264 IADDR UNUSED pc = abuf->addr;
14265 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14267 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 8), 3))) {
14270 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14271 written |= (1 << 1);
14272 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
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);
14283 abuf->written = written;
14288 /* ckp: ckp$pack $ICCi_3,$CRj_int */
14291 SEM_FN_NAME (frvbf,ckp) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14293 #define FLD(f) abuf->fields.sfmt_cckeq.f
14294 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14295 int UNUSED written = 0;
14296 IADDR UNUSED pc = abuf->addr;
14297 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14299 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 8), 3)))) {
14302 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14303 written |= (1 << 1);
14304 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14309 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14310 written |= (1 << 1);
14311 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14315 abuf->written = written;
14320 /* ckv: ckv$pack $ICCi_3,$CRj_int */
14323 SEM_FN_NAME (frvbf,ckv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14325 #define FLD(f) abuf->fields.sfmt_cckeq.f
14326 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14327 int UNUSED written = 0;
14328 IADDR UNUSED pc = abuf->addr;
14329 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14331 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 2), 1))) {
14334 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14335 written |= (1 << 1);
14336 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14341 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14342 written |= (1 << 1);
14343 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14347 abuf->written = written;
14352 /* cknv: cknv$pack $ICCi_3,$CRj_int */
14355 SEM_FN_NAME (frvbf,cknv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14357 #define FLD(f) abuf->fields.sfmt_cckeq.f
14358 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14359 int UNUSED written = 0;
14360 IADDR UNUSED pc = abuf->addr;
14361 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14363 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 2), 1)))) {
14366 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14367 written |= (1 << 1);
14368 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14373 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14374 written |= (1 << 1);
14375 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14379 abuf->written = written;
14384 /* fckra: fckra$pack $CRj_float */
14387 SEM_FN_NAME (frvbf,fckra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14389 #define FLD(f) abuf->fields.sfmt_cfckne.f
14390 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14391 int UNUSED written = 0;
14392 IADDR UNUSED pc = abuf->addr;
14393 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14397 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14398 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14405 /* fckno: fckno$pack $CRj_float */
14408 SEM_FN_NAME (frvbf,fckno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14410 #define FLD(f) abuf->fields.sfmt_cfckne.f
14411 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14412 int UNUSED written = 0;
14413 IADDR UNUSED pc = abuf->addr;
14414 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14418 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14419 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14426 /* fckne: fckne$pack $FCCi_3,$CRj_float */
14429 SEM_FN_NAME (frvbf,fckne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14431 #define FLD(f) abuf->fields.sfmt_cfckne.f
14432 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14433 int UNUSED written = 0;
14434 IADDR UNUSED pc = abuf->addr;
14435 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14437 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))))) {
14440 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14441 written |= (1 << 1);
14442 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
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);
14453 abuf->written = written;
14458 /* fckeq: fckeq$pack $FCCi_3,$CRj_float */
14461 SEM_FN_NAME (frvbf,fckeq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14463 #define FLD(f) abuf->fields.sfmt_cfckne.f
14464 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14465 int UNUSED written = 0;
14466 IADDR UNUSED pc = abuf->addr;
14467 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14469 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 8), 3))) {
14472 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14473 written |= (1 << 1);
14474 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
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);
14485 abuf->written = written;
14490 /* fcklg: fcklg$pack $FCCi_3,$CRj_float */
14493 SEM_FN_NAME (frvbf,fcklg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14495 #define FLD(f) abuf->fields.sfmt_cfckne.f
14496 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14497 int UNUSED written = 0;
14498 IADDR UNUSED pc = abuf->addr;
14499 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14501 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)))) {
14504 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14505 written |= (1 << 1);
14506 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
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);
14517 abuf->written = written;
14522 /* fckue: fckue$pack $FCCi_3,$CRj_float */
14525 SEM_FN_NAME (frvbf,fckue) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14527 #define FLD(f) abuf->fields.sfmt_cfckne.f
14528 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14529 int UNUSED written = 0;
14530 IADDR UNUSED pc = abuf->addr;
14531 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14533 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1)))) {
14536 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14537 written |= (1 << 1);
14538 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
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);
14549 abuf->written = written;
14554 /* fckul: fckul$pack $FCCi_3,$CRj_float */
14557 SEM_FN_NAME (frvbf,fckul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14559 #define FLD(f) abuf->fields.sfmt_cfckne.f
14560 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14561 int UNUSED written = 0;
14562 IADDR UNUSED pc = abuf->addr;
14563 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14565 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1)))) {
14568 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14569 written |= (1 << 1);
14570 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
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);
14581 abuf->written = written;
14586 /* fckge: fckge$pack $FCCi_3,$CRj_float */
14589 SEM_FN_NAME (frvbf,fckge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14591 #define FLD(f) abuf->fields.sfmt_cfckne.f
14592 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14593 int UNUSED written = 0;
14594 IADDR UNUSED pc = abuf->addr;
14595 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14597 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)))) {
14600 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14601 written |= (1 << 1);
14602 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
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);
14613 abuf->written = written;
14618 /* fcklt: fcklt$pack $FCCi_3,$CRj_float */
14621 SEM_FN_NAME (frvbf,fcklt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14623 #define FLD(f) abuf->fields.sfmt_cfckne.f
14624 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14625 int UNUSED written = 0;
14626 IADDR UNUSED pc = abuf->addr;
14627 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14629 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 4), 2))) {
14632 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14633 written |= (1 << 1);
14634 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
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);
14645 abuf->written = written;
14650 /* fckuge: fckuge$pack $FCCi_3,$CRj_float */
14653 SEM_FN_NAME (frvbf,fckuge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14655 #define FLD(f) abuf->fields.sfmt_cfckne.f
14656 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14657 int UNUSED written = 0;
14658 IADDR UNUSED pc = abuf->addr;
14659 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14661 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))))) {
14664 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14665 written |= (1 << 1);
14666 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
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);
14677 abuf->written = written;
14682 /* fckug: fckug$pack $FCCi_3,$CRj_float */
14685 SEM_FN_NAME (frvbf,fckug) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14687 #define FLD(f) abuf->fields.sfmt_cfckne.f
14688 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14689 int UNUSED written = 0;
14690 IADDR UNUSED pc = abuf->addr;
14691 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14693 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1)))) {
14696 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14697 written |= (1 << 1);
14698 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
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);
14709 abuf->written = written;
14714 /* fckle: fckle$pack $FCCi_3,$CRj_float */
14717 SEM_FN_NAME (frvbf,fckle) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14719 #define FLD(f) abuf->fields.sfmt_cfckne.f
14720 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14721 int UNUSED written = 0;
14722 IADDR UNUSED pc = abuf->addr;
14723 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14725 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)))) {
14728 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14729 written |= (1 << 1);
14730 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
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);
14741 abuf->written = written;
14746 /* fckgt: fckgt$pack $FCCi_3,$CRj_float */
14749 SEM_FN_NAME (frvbf,fckgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14751 #define FLD(f) abuf->fields.sfmt_cfckne.f
14752 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14753 int UNUSED written = 0;
14754 IADDR UNUSED pc = abuf->addr;
14755 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14757 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 2), 1))) {
14760 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14761 written |= (1 << 1);
14762 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
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);
14773 abuf->written = written;
14778 /* fckule: fckule$pack $FCCi_3,$CRj_float */
14781 SEM_FN_NAME (frvbf,fckule) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14783 #define FLD(f) abuf->fields.sfmt_cfckne.f
14784 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14785 int UNUSED written = 0;
14786 IADDR UNUSED pc = abuf->addr;
14787 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14789 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))))) {
14792 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14793 written |= (1 << 1);
14794 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14799 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14800 written |= (1 << 1);
14801 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14805 abuf->written = written;
14810 /* fcku: fcku$pack $FCCi_3,$CRj_float */
14813 SEM_FN_NAME (frvbf,fcku) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14815 #define FLD(f) abuf->fields.sfmt_cfckne.f
14816 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14817 int UNUSED written = 0;
14818 IADDR UNUSED pc = abuf->addr;
14819 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14821 if (TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1))) {
14824 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14825 written |= (1 << 1);
14826 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14831 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14832 written |= (1 << 1);
14833 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14837 abuf->written = written;
14842 /* fcko: fcko$pack $FCCi_3,$CRj_float */
14845 SEM_FN_NAME (frvbf,fcko) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14847 #define FLD(f) abuf->fields.sfmt_cfckne.f
14848 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14849 int UNUSED written = 0;
14850 IADDR UNUSED pc = abuf->addr;
14851 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14853 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))))) {
14856 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14857 written |= (1 << 1);
14858 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14863 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14864 written |= (1 << 1);
14865 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14869 abuf->written = written;
14874 /* cckra: cckra$pack $CRj_int,$CCi,$cond */
14877 SEM_FN_NAME (frvbf,cckra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14879 #define FLD(f) abuf->fields.sfmt_cckeq.f
14880 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14881 int UNUSED written = 0;
14882 IADDR UNUSED pc = abuf->addr;
14883 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14885 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
14888 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14889 written |= (1 << 2);
14890 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14895 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14896 written |= (1 << 2);
14897 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14901 abuf->written = written;
14906 /* cckno: cckno$pack $CRj_int,$CCi,$cond */
14909 SEM_FN_NAME (frvbf,cckno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14911 #define FLD(f) abuf->fields.sfmt_cckeq.f
14912 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14913 int UNUSED written = 0;
14914 IADDR UNUSED pc = abuf->addr;
14915 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14917 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
14920 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14921 written |= (1 << 2);
14922 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14927 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14928 written |= (1 << 2);
14929 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14933 abuf->written = written;
14938 /* cckeq: cckeq$pack $ICCi_3,$CRj_int,$CCi,$cond */
14941 SEM_FN_NAME (frvbf,cckeq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14943 #define FLD(f) abuf->fields.sfmt_cckeq.f
14944 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14945 int UNUSED written = 0;
14946 IADDR UNUSED pc = abuf->addr;
14947 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14949 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
14950 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 4), 2))) {
14953 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14954 written |= (1 << 3);
14955 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14960 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14961 written |= (1 << 3);
14962 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14968 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14969 written |= (1 << 3);
14970 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14974 abuf->written = written;
14979 /* cckne: cckne$pack $ICCi_3,$CRj_int,$CCi,$cond */
14982 SEM_FN_NAME (frvbf,cckne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14984 #define FLD(f) abuf->fields.sfmt_cckeq.f
14985 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14986 int UNUSED written = 0;
14987 IADDR UNUSED pc = abuf->addr;
14988 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14990 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
14991 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 4), 2)))) {
14994 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14995 written |= (1 << 3);
14996 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15001 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15002 written |= (1 << 3);
15003 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15009 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15010 written |= (1 << 3);
15011 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15015 abuf->written = written;
15020 /* cckle: cckle$pack $ICCi_3,$CRj_int,$CCi,$cond */
15023 SEM_FN_NAME (frvbf,cckle) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15025 #define FLD(f) abuf->fields.sfmt_cckeq.f
15026 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15027 int UNUSED written = 0;
15028 IADDR UNUSED pc = abuf->addr;
15029 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15031 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15032 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))))) {
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);
15042 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15043 written |= (1 << 3);
15044 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15050 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15051 written |= (1 << 3);
15052 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15056 abuf->written = written;
15061 /* cckgt: cckgt$pack $ICCi_3,$CRj_int,$CCi,$cond */
15064 SEM_FN_NAME (frvbf,cckgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15066 #define FLD(f) abuf->fields.sfmt_cckeq.f
15067 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15068 int UNUSED written = 0;
15069 IADDR UNUSED pc = abuf->addr;
15070 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15072 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15073 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)))))) {
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);
15083 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15084 written |= (1 << 3);
15085 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15091 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15092 written |= (1 << 3);
15093 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15097 abuf->written = written;
15102 /* ccklt: ccklt$pack $ICCi_3,$CRj_int,$CCi,$cond */
15105 SEM_FN_NAME (frvbf,ccklt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15107 #define FLD(f) abuf->fields.sfmt_cckeq.f
15108 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15109 int UNUSED written = 0;
15110 IADDR UNUSED pc = abuf->addr;
15111 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15113 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15114 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)))) {
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);
15124 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15125 written |= (1 << 3);
15126 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15132 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15133 written |= (1 << 3);
15134 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15138 abuf->written = written;
15143 /* cckge: cckge$pack $ICCi_3,$CRj_int,$CCi,$cond */
15146 SEM_FN_NAME (frvbf,cckge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15148 #define FLD(f) abuf->fields.sfmt_cckeq.f
15149 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15150 int UNUSED written = 0;
15151 IADDR UNUSED pc = abuf->addr;
15152 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15154 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15155 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))))) {
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);
15165 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15166 written |= (1 << 3);
15167 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15173 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15174 written |= (1 << 3);
15175 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15179 abuf->written = written;
15184 /* cckls: cckls$pack $ICCi_3,$CRj_int,$CCi,$cond */
15187 SEM_FN_NAME (frvbf,cckls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15189 #define FLD(f) abuf->fields.sfmt_cckeq.f
15190 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15191 int UNUSED written = 0;
15192 IADDR UNUSED pc = abuf->addr;
15193 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15195 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15196 if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 4), 2)))) {
15199 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15200 written |= (1 << 3);
15201 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15206 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15207 written |= (1 << 3);
15208 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15214 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15215 written |= (1 << 3);
15216 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15220 abuf->written = written;
15225 /* cckhi: cckhi$pack $ICCi_3,$CRj_int,$CCi,$cond */
15228 SEM_FN_NAME (frvbf,cckhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15230 #define FLD(f) abuf->fields.sfmt_cckeq.f
15231 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15232 int UNUSED written = 0;
15233 IADDR UNUSED pc = abuf->addr;
15234 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15236 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15237 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))))) {
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);
15247 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15248 written |= (1 << 3);
15249 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15255 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15256 written |= (1 << 3);
15257 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15261 abuf->written = written;
15266 /* cckc: cckc$pack $ICCi_3,$CRj_int,$CCi,$cond */
15269 SEM_FN_NAME (frvbf,cckc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15271 #define FLD(f) abuf->fields.sfmt_cckeq.f
15272 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15273 int UNUSED written = 0;
15274 IADDR UNUSED pc = abuf->addr;
15275 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15277 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15278 if (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 1))) {
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);
15288 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15289 written |= (1 << 3);
15290 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15296 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15297 written |= (1 << 3);
15298 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15302 abuf->written = written;
15307 /* ccknc: ccknc$pack $ICCi_3,$CRj_int,$CCi,$cond */
15310 SEM_FN_NAME (frvbf,ccknc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15312 #define FLD(f) abuf->fields.sfmt_cckeq.f
15313 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15314 int UNUSED written = 0;
15315 IADDR UNUSED pc = abuf->addr;
15316 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15318 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15319 if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 1)))) {
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);
15329 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15330 written |= (1 << 3);
15331 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15337 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15338 written |= (1 << 3);
15339 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15343 abuf->written = written;
15348 /* cckn: cckn$pack $ICCi_3,$CRj_int,$CCi,$cond */
15351 SEM_FN_NAME (frvbf,cckn) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15353 #define FLD(f) abuf->fields.sfmt_cckeq.f
15354 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15355 int UNUSED written = 0;
15356 IADDR UNUSED pc = abuf->addr;
15357 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15359 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15360 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 8), 3))) {
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);
15370 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15371 written |= (1 << 3);
15372 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15378 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15379 written |= (1 << 3);
15380 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15384 abuf->written = written;
15389 /* cckp: cckp$pack $ICCi_3,$CRj_int,$CCi,$cond */
15392 SEM_FN_NAME (frvbf,cckp) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15394 #define FLD(f) abuf->fields.sfmt_cckeq.f
15395 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15396 int UNUSED written = 0;
15397 IADDR UNUSED pc = abuf->addr;
15398 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15400 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15401 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 8), 3)))) {
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);
15411 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15412 written |= (1 << 3);
15413 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15419 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15420 written |= (1 << 3);
15421 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15425 abuf->written = written;
15430 /* cckv: cckv$pack $ICCi_3,$CRj_int,$CCi,$cond */
15433 SEM_FN_NAME (frvbf,cckv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15435 #define FLD(f) abuf->fields.sfmt_cckeq.f
15436 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15437 int UNUSED written = 0;
15438 IADDR UNUSED pc = abuf->addr;
15439 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15441 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15442 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 2), 1))) {
15445 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15446 written |= (1 << 3);
15447 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15452 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15453 written |= (1 << 3);
15454 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15460 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15461 written |= (1 << 3);
15462 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15466 abuf->written = written;
15471 /* ccknv: ccknv$pack $ICCi_3,$CRj_int,$CCi,$cond */
15474 SEM_FN_NAME (frvbf,ccknv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15476 #define FLD(f) abuf->fields.sfmt_cckeq.f
15477 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15478 int UNUSED written = 0;
15479 IADDR UNUSED pc = abuf->addr;
15480 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15482 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15483 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 2), 1)))) {
15486 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15487 written |= (1 << 3);
15488 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15493 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15494 written |= (1 << 3);
15495 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15501 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15502 written |= (1 << 3);
15503 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15507 abuf->written = written;
15512 /* cfckra: cfckra$pack $CRj_float,$CCi,$cond */
15515 SEM_FN_NAME (frvbf,cfckra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15517 #define FLD(f) abuf->fields.sfmt_cfckne.f
15518 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15519 int UNUSED written = 0;
15520 IADDR UNUSED pc = abuf->addr;
15521 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15523 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15526 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15527 written |= (1 << 2);
15528 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15533 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15534 written |= (1 << 2);
15535 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15539 abuf->written = written;
15544 /* cfckno: cfckno$pack $CRj_float,$CCi,$cond */
15547 SEM_FN_NAME (frvbf,cfckno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15549 #define FLD(f) abuf->fields.sfmt_cfckne.f
15550 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15551 int UNUSED written = 0;
15552 IADDR UNUSED pc = abuf->addr;
15553 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15555 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15558 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15559 written |= (1 << 2);
15560 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15565 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15566 written |= (1 << 2);
15567 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15571 abuf->written = written;
15576 /* cfckne: cfckne$pack $FCCi_3,$CRj_float,$CCi,$cond */
15579 SEM_FN_NAME (frvbf,cfckne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15581 #define FLD(f) abuf->fields.sfmt_cfckne.f
15582 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15583 int UNUSED written = 0;
15584 IADDR UNUSED pc = abuf->addr;
15585 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15587 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15588 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))))) {
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);
15598 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15599 written |= (1 << 3);
15600 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15606 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15607 written |= (1 << 3);
15608 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15612 abuf->written = written;
15617 /* cfckeq: cfckeq$pack $FCCi_3,$CRj_float,$CCi,$cond */
15620 SEM_FN_NAME (frvbf,cfckeq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15622 #define FLD(f) abuf->fields.sfmt_cfckne.f
15623 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15624 int UNUSED written = 0;
15625 IADDR UNUSED pc = abuf->addr;
15626 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15628 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15629 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 8), 3))) {
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);
15639 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15640 written |= (1 << 3);
15641 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15647 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15648 written |= (1 << 3);
15649 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15653 abuf->written = written;
15658 /* cfcklg: cfcklg$pack $FCCi_3,$CRj_float,$CCi,$cond */
15661 SEM_FN_NAME (frvbf,cfcklg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15663 #define FLD(f) abuf->fields.sfmt_cfckne.f
15664 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15665 int UNUSED written = 0;
15666 IADDR UNUSED pc = abuf->addr;
15667 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15669 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15670 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)))) {
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);
15680 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15681 written |= (1 << 3);
15682 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15688 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15689 written |= (1 << 3);
15690 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15694 abuf->written = written;
15699 /* cfckue: cfckue$pack $FCCi_3,$CRj_float,$CCi,$cond */
15702 SEM_FN_NAME (frvbf,cfckue) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15704 #define FLD(f) abuf->fields.sfmt_cfckne.f
15705 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15706 int UNUSED written = 0;
15707 IADDR UNUSED pc = abuf->addr;
15708 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15710 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15711 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1)))) {
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);
15721 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15722 written |= (1 << 3);
15723 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15729 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15730 written |= (1 << 3);
15731 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15735 abuf->written = written;
15740 /* cfckul: cfckul$pack $FCCi_3,$CRj_float,$CCi,$cond */
15743 SEM_FN_NAME (frvbf,cfckul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15745 #define FLD(f) abuf->fields.sfmt_cfckne.f
15746 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15747 int UNUSED written = 0;
15748 IADDR UNUSED pc = abuf->addr;
15749 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15751 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15752 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1)))) {
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);
15762 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15763 written |= (1 << 3);
15764 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15770 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15771 written |= (1 << 3);
15772 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15776 abuf->written = written;
15781 /* cfckge: cfckge$pack $FCCi_3,$CRj_float,$CCi,$cond */
15784 SEM_FN_NAME (frvbf,cfckge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15786 #define FLD(f) abuf->fields.sfmt_cfckne.f
15787 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15788 int UNUSED written = 0;
15789 IADDR UNUSED pc = abuf->addr;
15790 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15792 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15793 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)))) {
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);
15803 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15804 written |= (1 << 3);
15805 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15811 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15812 written |= (1 << 3);
15813 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15817 abuf->written = written;
15822 /* cfcklt: cfcklt$pack $FCCi_3,$CRj_float,$CCi,$cond */
15825 SEM_FN_NAME (frvbf,cfcklt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15827 #define FLD(f) abuf->fields.sfmt_cfckne.f
15828 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15829 int UNUSED written = 0;
15830 IADDR UNUSED pc = abuf->addr;
15831 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15833 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15834 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 4), 2))) {
15837 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15838 written |= (1 << 3);
15839 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15844 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15845 written |= (1 << 3);
15846 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15852 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15853 written |= (1 << 3);
15854 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15858 abuf->written = written;
15863 /* cfckuge: cfckuge$pack $FCCi_3,$CRj_float,$CCi,$cond */
15866 SEM_FN_NAME (frvbf,cfckuge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15868 #define FLD(f) abuf->fields.sfmt_cfckne.f
15869 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15870 int UNUSED written = 0;
15871 IADDR UNUSED pc = abuf->addr;
15872 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15874 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15875 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))))) {
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);
15885 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15886 written |= (1 << 3);
15887 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15893 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15894 written |= (1 << 3);
15895 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15899 abuf->written = written;
15904 /* cfckug: cfckug$pack $FCCi_3,$CRj_float,$CCi,$cond */
15907 SEM_FN_NAME (frvbf,cfckug) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15909 #define FLD(f) abuf->fields.sfmt_cfckne.f
15910 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15911 int UNUSED written = 0;
15912 IADDR UNUSED pc = abuf->addr;
15913 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15915 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15916 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1)))) {
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);
15926 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15927 written |= (1 << 3);
15928 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15934 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15935 written |= (1 << 3);
15936 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15940 abuf->written = written;
15945 /* cfckle: cfckle$pack $FCCi_3,$CRj_float,$CCi,$cond */
15948 SEM_FN_NAME (frvbf,cfckle) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15950 #define FLD(f) abuf->fields.sfmt_cfckne.f
15951 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15952 int UNUSED written = 0;
15953 IADDR UNUSED pc = abuf->addr;
15954 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15956 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15957 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)))) {
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);
15967 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15968 written |= (1 << 3);
15969 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15975 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15976 written |= (1 << 3);
15977 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15981 abuf->written = written;
15986 /* cfckgt: cfckgt$pack $FCCi_3,$CRj_float,$CCi,$cond */
15989 SEM_FN_NAME (frvbf,cfckgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15991 #define FLD(f) abuf->fields.sfmt_cfckne.f
15992 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15993 int UNUSED written = 0;
15994 IADDR UNUSED pc = abuf->addr;
15995 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15997 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15998 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 2), 1))) {
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);
16008 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16009 written |= (1 << 3);
16010 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16016 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16017 written |= (1 << 3);
16018 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16022 abuf->written = written;
16027 /* cfckule: cfckule$pack $FCCi_3,$CRj_float,$CCi,$cond */
16030 SEM_FN_NAME (frvbf,cfckule) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16032 #define FLD(f) abuf->fields.sfmt_cfckne.f
16033 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16034 int UNUSED written = 0;
16035 IADDR UNUSED pc = abuf->addr;
16036 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16038 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
16039 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))))) {
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);
16049 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16050 written |= (1 << 3);
16051 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16057 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16058 written |= (1 << 3);
16059 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16063 abuf->written = written;
16068 /* cfcku: cfcku$pack $FCCi_3,$CRj_float,$CCi,$cond */
16071 SEM_FN_NAME (frvbf,cfcku) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16073 #define FLD(f) abuf->fields.sfmt_cfckne.f
16074 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16075 int UNUSED written = 0;
16076 IADDR UNUSED pc = abuf->addr;
16077 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16079 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
16080 if (TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1))) {
16083 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16084 written |= (1 << 3);
16085 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16090 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16091 written |= (1 << 3);
16092 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16098 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16099 written |= (1 << 3);
16100 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16104 abuf->written = written;
16109 /* cfcko: cfcko$pack $FCCi_3,$CRj_float,$CCi,$cond */
16112 SEM_FN_NAME (frvbf,cfcko) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16114 #define FLD(f) abuf->fields.sfmt_cfckne.f
16115 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16116 int UNUSED written = 0;
16117 IADDR UNUSED pc = abuf->addr;
16118 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16120 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
16121 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))))) {
16124 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16125 written |= (1 << 3);
16126 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16131 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16132 written |= (1 << 3);
16133 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16139 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16140 written |= (1 << 3);
16141 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16145 abuf->written = written;
16150 /* cjmpl: cjmpl$pack @($GRi,$GRj),$CCi,$cond */
16153 SEM_FN_NAME (frvbf,cjmpl) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16155 #define FLD(f) abuf->fields.sfmt_cjmpl.f
16156 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16157 int UNUSED written = 0;
16158 IADDR UNUSED pc = abuf->addr;
16159 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16161 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
16163 if (EQSI (FLD (f_LI), 1)) {
16164 frvbf_set_write_next_vliw_addr_to_LR (current_cpu, 1);
16167 USI opval = ANDSI (ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), 0xfffffffc);
16168 sim_queue_pc_write (current_cpu, opval);
16169 written |= (1 << 6);
16170 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
16172 frvbf_model_branch (current_cpu, pc, 2);
16176 abuf->written = written;
16181 /* ccalll: ccalll$pack @($GRi,$GRj),$CCi,$cond */
16184 SEM_FN_NAME (frvbf,ccalll) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16186 #define FLD(f) abuf->fields.sfmt_cjmpl.f
16187 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16188 int UNUSED written = 0;
16189 IADDR UNUSED pc = abuf->addr;
16190 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16192 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
16194 if (EQSI (FLD (f_LI), 1)) {
16195 frvbf_set_write_next_vliw_addr_to_LR (current_cpu, 1);
16198 USI opval = ANDSI (ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), 0xfffffffc);
16199 sim_queue_pc_write (current_cpu, opval);
16200 written |= (1 << 6);
16201 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
16203 frvbf_model_branch (current_cpu, pc, 2);
16207 abuf->written = written;
16212 /* ici: ici$pack @($GRi,$GRj) */
16215 SEM_FN_NAME (frvbf,ici) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16217 #define FLD(f) abuf->fields.sfmt_icpl.f
16218 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16219 int UNUSED written = 0;
16220 IADDR UNUSED pc = abuf->addr;
16221 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16223 frvbf_insn_cache_invalidate (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), 0);
16229 /* dci: dci$pack @($GRi,$GRj) */
16232 SEM_FN_NAME (frvbf,dci) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16234 #define FLD(f) abuf->fields.sfmt_icpl.f
16235 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16236 int UNUSED written = 0;
16237 IADDR UNUSED pc = abuf->addr;
16238 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16240 frvbf_data_cache_invalidate (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), 0);
16246 /* icei: icei$pack @($GRi,$GRj),$ae */
16249 SEM_FN_NAME (frvbf,icei) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16251 #define FLD(f) abuf->fields.sfmt_icei.f
16252 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16253 int UNUSED written = 0;
16254 IADDR UNUSED pc = abuf->addr;
16255 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16257 if (EQSI (FLD (f_ae), 0)) {
16258 frvbf_insn_cache_invalidate (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), -1);
16260 frvbf_insn_cache_invalidate (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), FLD (f_ae));
16267 /* dcei: dcei$pack @($GRi,$GRj),$ae */
16270 SEM_FN_NAME (frvbf,dcei) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16272 #define FLD(f) abuf->fields.sfmt_icei.f
16273 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16274 int UNUSED written = 0;
16275 IADDR UNUSED pc = abuf->addr;
16276 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16278 if (EQSI (FLD (f_ae), 0)) {
16279 frvbf_data_cache_invalidate (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), -1);
16281 frvbf_data_cache_invalidate (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), FLD (f_ae));
16288 /* dcf: dcf$pack @($GRi,$GRj) */
16291 SEM_FN_NAME (frvbf,dcf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16293 #define FLD(f) abuf->fields.sfmt_icpl.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 frvbf_data_cache_flush (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), 0);
16305 /* dcef: dcef$pack @($GRi,$GRj),$ae */
16308 SEM_FN_NAME (frvbf,dcef) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16310 #define FLD(f) abuf->fields.sfmt_icei.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 if (EQSI (FLD (f_ae), 0)) {
16317 frvbf_data_cache_flush (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), -1);
16319 frvbf_data_cache_flush (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), FLD (f_ae));
16326 /* witlb: witlb$pack $GRk,@($GRi,$GRj) */
16329 SEM_FN_NAME (frvbf,witlb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16331 #define FLD(f) abuf->fields.fmt_empty.f
16332 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16333 int UNUSED written = 0;
16334 IADDR UNUSED pc = abuf->addr;
16335 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16337 ((void) 0); /*nop*/
16343 /* wdtlb: wdtlb$pack $GRk,@($GRi,$GRj) */
16346 SEM_FN_NAME (frvbf,wdtlb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16348 #define FLD(f) abuf->fields.fmt_empty.f
16349 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16350 int UNUSED written = 0;
16351 IADDR UNUSED pc = abuf->addr;
16352 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16354 ((void) 0); /*nop*/
16360 /* itlbi: itlbi$pack @($GRi,$GRj) */
16363 SEM_FN_NAME (frvbf,itlbi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16365 #define FLD(f) abuf->fields.fmt_empty.f
16366 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16367 int UNUSED written = 0;
16368 IADDR UNUSED pc = abuf->addr;
16369 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16371 ((void) 0); /*nop*/
16377 /* dtlbi: dtlbi$pack @($GRi,$GRj) */
16380 SEM_FN_NAME (frvbf,dtlbi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16382 #define FLD(f) abuf->fields.fmt_empty.f
16383 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16384 int UNUSED written = 0;
16385 IADDR UNUSED pc = abuf->addr;
16386 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16388 ((void) 0); /*nop*/
16394 /* icpl: icpl$pack $GRi,$GRj,$lock */
16397 SEM_FN_NAME (frvbf,icpl) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16399 #define FLD(f) abuf->fields.sfmt_icpl.f
16400 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16401 int UNUSED written = 0;
16402 IADDR UNUSED pc = abuf->addr;
16403 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16405 frvbf_insn_cache_preload (current_cpu, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), FLD (f_lock));
16411 /* dcpl: dcpl$pack $GRi,$GRj,$lock */
16414 SEM_FN_NAME (frvbf,dcpl) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16416 #define FLD(f) abuf->fields.sfmt_icpl.f
16417 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16418 int UNUSED written = 0;
16419 IADDR UNUSED pc = abuf->addr;
16420 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16422 frvbf_data_cache_preload (current_cpu, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), FLD (f_lock));
16428 /* icul: icul$pack $GRi */
16431 SEM_FN_NAME (frvbf,icul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16433 #define FLD(f) abuf->fields.sfmt_jmpil.f
16434 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16435 int UNUSED written = 0;
16436 IADDR UNUSED pc = abuf->addr;
16437 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16439 frvbf_insn_cache_unlock (current_cpu, GET_H_GR (FLD (f_GRi)));
16445 /* dcul: dcul$pack $GRi */
16448 SEM_FN_NAME (frvbf,dcul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16450 #define FLD(f) abuf->fields.sfmt_jmpil.f
16451 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16452 int UNUSED written = 0;
16453 IADDR UNUSED pc = abuf->addr;
16454 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16456 frvbf_data_cache_unlock (current_cpu, GET_H_GR (FLD (f_GRi)));
16462 /* bar: bar$pack */
16465 SEM_FN_NAME (frvbf,bar) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16467 #define FLD(f) abuf->fields.fmt_empty.f
16468 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16469 int UNUSED written = 0;
16470 IADDR UNUSED pc = abuf->addr;
16471 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16473 ((void) 0); /*nop*/
16479 /* membar: membar$pack */
16482 SEM_FN_NAME (frvbf,membar) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16484 #define FLD(f) abuf->fields.fmt_empty.f
16485 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16486 int UNUSED written = 0;
16487 IADDR UNUSED pc = abuf->addr;
16488 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16490 ((void) 0); /*nop*/
16496 /* cop1: cop1$pack $s6_1,$CPRi,$CPRj,$CPRk */
16499 SEM_FN_NAME (frvbf,cop1) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16501 #define FLD(f) abuf->fields.fmt_empty.f
16502 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16503 int UNUSED written = 0;
16504 IADDR UNUSED pc = abuf->addr;
16505 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16507 ((void) 0); /*nop*/
16513 /* cop2: cop2$pack $s6_1,$CPRi,$CPRj,$CPRk */
16516 SEM_FN_NAME (frvbf,cop2) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16518 #define FLD(f) abuf->fields.fmt_empty.f
16519 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16520 int UNUSED written = 0;
16521 IADDR UNUSED pc = abuf->addr;
16522 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16524 ((void) 0); /*nop*/
16530 /* clrgr: clrgr$pack $GRk */
16533 SEM_FN_NAME (frvbf,clrgr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16535 #define FLD(f) abuf->fields.sfmt_setlos.f
16536 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16537 int UNUSED written = 0;
16538 IADDR UNUSED pc = abuf->addr;
16539 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16541 frvbf_clear_ne_flags (current_cpu, FLD (f_GRk), 0);
16547 /* clrfr: clrfr$pack $FRk */
16550 SEM_FN_NAME (frvbf,clrfr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16552 #define FLD(f) abuf->fields.sfmt_mhsethis.f
16553 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16554 int UNUSED written = 0;
16555 IADDR UNUSED pc = abuf->addr;
16556 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16558 frvbf_clear_ne_flags (current_cpu, FLD (f_FRk), 1);
16564 /* clrga: clrga$pack */
16567 SEM_FN_NAME (frvbf,clrga) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16569 #define FLD(f) abuf->fields.fmt_empty.f
16570 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16571 int UNUSED written = 0;
16572 IADDR UNUSED pc = abuf->addr;
16573 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16575 frvbf_clear_ne_flags (current_cpu, -1, 0);
16581 /* clrfa: clrfa$pack */
16584 SEM_FN_NAME (frvbf,clrfa) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16586 #define FLD(f) abuf->fields.fmt_empty.f
16587 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16588 int UNUSED written = 0;
16589 IADDR UNUSED pc = abuf->addr;
16590 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16592 frvbf_clear_ne_flags (current_cpu, -1, 1);
16598 /* commitgr: commitgr$pack $GRk */
16601 SEM_FN_NAME (frvbf,commitgr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16603 #define FLD(f) abuf->fields.sfmt_setlos.f
16604 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16605 int UNUSED written = 0;
16606 IADDR UNUSED pc = abuf->addr;
16607 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16609 frvbf_commit (current_cpu, FLD (f_GRk), 0);
16615 /* commitfr: commitfr$pack $FRk */
16618 SEM_FN_NAME (frvbf,commitfr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16620 #define FLD(f) abuf->fields.sfmt_mhsethis.f
16621 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16622 int UNUSED written = 0;
16623 IADDR UNUSED pc = abuf->addr;
16624 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16626 frvbf_commit (current_cpu, FLD (f_FRk), 1);
16632 /* commitga: commitga$pack */
16635 SEM_FN_NAME (frvbf,commitga) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16637 #define FLD(f) abuf->fields.fmt_empty.f
16638 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16639 int UNUSED written = 0;
16640 IADDR UNUSED pc = abuf->addr;
16641 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16643 frvbf_commit (current_cpu, -1, 0);
16649 /* commitfa: commitfa$pack */
16652 SEM_FN_NAME (frvbf,commitfa) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16654 #define FLD(f) abuf->fields.fmt_empty.f
16655 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16656 int UNUSED written = 0;
16657 IADDR UNUSED pc = abuf->addr;
16658 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16660 frvbf_commit (current_cpu, -1, 1);
16666 /* fitos: fitos$pack $FRintj,$FRk */
16669 SEM_FN_NAME (frvbf,fitos) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16671 #define FLD(f) abuf->fields.sfmt_fditos.f
16672 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16673 int UNUSED written = 0;
16674 IADDR UNUSED pc = abuf->addr;
16675 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16678 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->floatsisf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (FLD (f_FRj)));
16679 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
16680 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16687 /* fstoi: fstoi$pack $FRj,$FRintk */
16690 SEM_FN_NAME (frvbf,fstoi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16692 #define FLD(f) abuf->fields.sfmt_fdstoi.f
16693 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16694 int UNUSED written = 0;
16695 IADDR UNUSED pc = abuf->addr;
16696 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16699 SI opval = (* CGEN_CPU_FPU (current_cpu)->ops->fixsfsi) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
16700 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
16701 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16708 /* fitod: fitod$pack $FRintj,$FRdoublek */
16711 SEM_FN_NAME (frvbf,fitod) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16713 #define FLD(f) abuf->fields.sfmt_fitod.f
16714 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16715 int UNUSED written = 0;
16716 IADDR UNUSED pc = abuf->addr;
16717 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16720 DF opval = (* CGEN_CPU_FPU (current_cpu)->ops->floatsidf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (FLD (f_FRj)));
16721 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
16722 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
16729 /* fdtoi: fdtoi$pack $FRdoublej,$FRintk */
16732 SEM_FN_NAME (frvbf,fdtoi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16734 #define FLD(f) abuf->fields.sfmt_fdtoi.f
16735 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16736 int UNUSED written = 0;
16737 IADDR UNUSED pc = abuf->addr;
16738 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16741 SI opval = (* CGEN_CPU_FPU (current_cpu)->ops->fixdfsi) (CGEN_CPU_FPU (current_cpu), GET_H_FR_DOUBLE (FLD (f_FRj)));
16742 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
16743 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16750 /* fditos: fditos$pack $FRintj,$FRk */
16753 SEM_FN_NAME (frvbf,fditos) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16755 #define FLD(f) abuf->fields.sfmt_fditos.f
16756 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16757 int UNUSED written = 0;
16758 IADDR UNUSED pc = abuf->addr;
16759 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16763 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->floatsisf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (FLD (f_FRj)));
16764 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
16765 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16768 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->floatsisf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (((FLD (f_FRj)) + (1))));
16769 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
16770 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16778 /* fdstoi: fdstoi$pack $FRj,$FRintk */
16781 SEM_FN_NAME (frvbf,fdstoi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16783 #define FLD(f) abuf->fields.sfmt_fdstoi.f
16784 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16785 int UNUSED written = 0;
16786 IADDR UNUSED pc = abuf->addr;
16787 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16791 SI opval = (* CGEN_CPU_FPU (current_cpu)->ops->fixsfsi) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
16792 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
16793 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16796 USI opval = (* CGEN_CPU_FPU (current_cpu)->ops->fixsfsi) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRj)) + (1))));
16797 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
16798 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16806 /* nfditos: nfditos$pack $FRintj,$FRk */
16809 SEM_FN_NAME (frvbf,nfditos) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16811 #define FLD(f) abuf->fields.sfmt_fditos.f
16812 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16813 int UNUSED written = 0;
16814 IADDR UNUSED pc = abuf->addr;
16815 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16818 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
16820 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->floatsisf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (FLD (f_FRj)));
16821 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
16822 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16824 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
16826 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->floatsisf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (((FLD (f_FRj)) + (1))));
16827 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
16828 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16836 /* nfdstoi: nfdstoi$pack $FRj,$FRintk */
16839 SEM_FN_NAME (frvbf,nfdstoi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16841 #define FLD(f) abuf->fields.sfmt_fdstoi.f
16842 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16843 int UNUSED written = 0;
16844 IADDR UNUSED pc = abuf->addr;
16845 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16848 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
16850 SI opval = (* CGEN_CPU_FPU (current_cpu)->ops->fixsfsi) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
16851 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
16852 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16854 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
16856 USI opval = (* CGEN_CPU_FPU (current_cpu)->ops->fixsfsi) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRj)) + (1))));
16857 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
16858 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16866 /* cfitos: cfitos$pack $FRintj,$FRk,$CCi,$cond */
16869 SEM_FN_NAME (frvbf,cfitos) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16871 #define FLD(f) abuf->fields.sfmt_cfitos.f
16872 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16873 int UNUSED written = 0;
16874 IADDR UNUSED pc = abuf->addr;
16875 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16877 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
16879 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->floatsisf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (FLD (f_FRj)));
16880 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
16881 written |= (1 << 3);
16882 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16886 abuf->written = written;
16891 /* cfstoi: cfstoi$pack $FRj,$FRintk,$CCi,$cond */
16894 SEM_FN_NAME (frvbf,cfstoi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16896 #define FLD(f) abuf->fields.sfmt_cfstoi.f
16897 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16898 int UNUSED written = 0;
16899 IADDR UNUSED pc = abuf->addr;
16900 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16902 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
16904 SI opval = (* CGEN_CPU_FPU (current_cpu)->ops->fixsfsi) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
16905 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
16906 written |= (1 << 3);
16907 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16911 abuf->written = written;
16916 /* nfitos: nfitos$pack $FRintj,$FRk */
16919 SEM_FN_NAME (frvbf,nfitos) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16921 #define FLD(f) abuf->fields.sfmt_fditos.f
16922 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16923 int UNUSED written = 0;
16924 IADDR UNUSED pc = abuf->addr;
16925 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16928 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
16930 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->floatsisf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (FLD (f_FRj)));
16931 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
16932 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16940 /* nfstoi: nfstoi$pack $FRj,$FRintk */
16943 SEM_FN_NAME (frvbf,nfstoi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16945 #define FLD(f) abuf->fields.sfmt_fdstoi.f
16946 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16947 int UNUSED written = 0;
16948 IADDR UNUSED pc = abuf->addr;
16949 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16952 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
16954 SI opval = (* CGEN_CPU_FPU (current_cpu)->ops->fixsfsi) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
16955 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
16956 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16964 /* fmovs: fmovs$pack $FRj,$FRk */
16967 SEM_FN_NAME (frvbf,fmovs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16969 #define FLD(f) abuf->fields.sfmt_cfmadds.f
16970 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16971 int UNUSED written = 0;
16972 IADDR UNUSED pc = abuf->addr;
16973 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16976 SF opval = GET_H_FR (FLD (f_FRj));
16977 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
16978 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16985 /* fmovd: fmovd$pack $FRdoublej,$FRdoublek */
16988 SEM_FN_NAME (frvbf,fmovd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16990 #define FLD(f) abuf->fields.sfmt_fmaddd.f
16991 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16992 int UNUSED written = 0;
16993 IADDR UNUSED pc = abuf->addr;
16994 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16997 DF opval = GET_H_FR_DOUBLE (FLD (f_FRj));
16998 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
16999 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17006 /* fdmovs: fdmovs$pack $FRj,$FRk */
17009 SEM_FN_NAME (frvbf,fdmovs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17011 #define FLD(f) abuf->fields.sfmt_fdmadds.f
17012 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17013 int UNUSED written = 0;
17014 IADDR UNUSED pc = abuf->addr;
17015 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17019 SF opval = GET_H_FR (FLD (f_FRj));
17020 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17021 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17024 SF opval = GET_H_FR (((FLD (f_FRj)) + (1)));
17025 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
17026 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17034 /* cfmovs: cfmovs$pack $FRj,$FRk,$CCi,$cond */
17037 SEM_FN_NAME (frvbf,cfmovs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17039 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17040 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17041 int UNUSED written = 0;
17042 IADDR UNUSED pc = abuf->addr;
17043 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17045 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17047 SF opval = GET_H_FR (FLD (f_FRj));
17048 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17049 written |= (1 << 3);
17050 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17054 abuf->written = written;
17059 /* fnegs: fnegs$pack $FRj,$FRk */
17062 SEM_FN_NAME (frvbf,fnegs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17064 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17065 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17066 int UNUSED written = 0;
17067 IADDR UNUSED pc = abuf->addr;
17068 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17071 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->negsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17072 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17073 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17080 /* fnegd: fnegd$pack $FRdoublej,$FRdoublek */
17083 SEM_FN_NAME (frvbf,fnegd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17085 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17086 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17087 int UNUSED written = 0;
17088 IADDR UNUSED pc = abuf->addr;
17089 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17092 DF opval = (* CGEN_CPU_FPU (current_cpu)->ops->negdf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_DOUBLE (FLD (f_FRj)));
17093 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17094 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17101 /* fdnegs: fdnegs$pack $FRj,$FRk */
17104 SEM_FN_NAME (frvbf,fdnegs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17106 #define FLD(f) abuf->fields.sfmt_fdmadds.f
17107 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17108 int UNUSED written = 0;
17109 IADDR UNUSED pc = abuf->addr;
17110 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17114 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->negsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17115 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17116 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17119 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->negsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRj)) + (1))));
17120 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
17121 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17129 /* cfnegs: cfnegs$pack $FRj,$FRk,$CCi,$cond */
17132 SEM_FN_NAME (frvbf,cfnegs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17134 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17135 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17136 int UNUSED written = 0;
17137 IADDR UNUSED pc = abuf->addr;
17138 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17140 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17142 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->negsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17143 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17144 written |= (1 << 3);
17145 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17149 abuf->written = written;
17154 /* fabss: fabss$pack $FRj,$FRk */
17157 SEM_FN_NAME (frvbf,fabss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17159 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17160 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17161 int UNUSED written = 0;
17162 IADDR UNUSED pc = abuf->addr;
17163 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17166 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->abssf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17167 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17168 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17175 /* fabsd: fabsd$pack $FRdoublej,$FRdoublek */
17178 SEM_FN_NAME (frvbf,fabsd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17180 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17181 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17182 int UNUSED written = 0;
17183 IADDR UNUSED pc = abuf->addr;
17184 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17187 DF opval = (* CGEN_CPU_FPU (current_cpu)->ops->absdf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_DOUBLE (FLD (f_FRj)));
17188 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17189 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17196 /* fdabss: fdabss$pack $FRj,$FRk */
17199 SEM_FN_NAME (frvbf,fdabss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17201 #define FLD(f) abuf->fields.sfmt_fdmadds.f
17202 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17203 int UNUSED written = 0;
17204 IADDR UNUSED pc = abuf->addr;
17205 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17209 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->abssf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17210 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17211 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17214 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->abssf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRj)) + (1))));
17215 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
17216 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17224 /* cfabss: cfabss$pack $FRj,$FRk,$CCi,$cond */
17227 SEM_FN_NAME (frvbf,cfabss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17229 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17230 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17231 int UNUSED written = 0;
17232 IADDR UNUSED pc = abuf->addr;
17233 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17235 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17237 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->abssf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17238 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17239 written |= (1 << 3);
17240 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17244 abuf->written = written;
17249 /* fsqrts: fsqrts$pack $FRj,$FRk */
17252 SEM_FN_NAME (frvbf,fsqrts) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17254 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17255 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17256 int UNUSED written = 0;
17257 IADDR UNUSED pc = abuf->addr;
17258 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17261 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->sqrtsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17262 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17263 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17270 /* fdsqrts: fdsqrts$pack $FRj,$FRk */
17273 SEM_FN_NAME (frvbf,fdsqrts) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17275 #define FLD(f) abuf->fields.sfmt_fdmadds.f
17276 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17277 int UNUSED written = 0;
17278 IADDR UNUSED pc = abuf->addr;
17279 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17283 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->sqrtsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17284 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17285 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17288 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->sqrtsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRj)) + (1))));
17289 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
17290 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17298 /* nfdsqrts: nfdsqrts$pack $FRj,$FRk */
17301 SEM_FN_NAME (frvbf,nfdsqrts) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17303 #define FLD(f) abuf->fields.sfmt_fdmadds.f
17304 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17305 int UNUSED written = 0;
17306 IADDR UNUSED pc = abuf->addr;
17307 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17310 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
17312 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->sqrtsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17313 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17314 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17316 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
17318 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->sqrtsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRj)) + (1))));
17319 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
17320 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17328 /* fsqrtd: fsqrtd$pack $FRdoublej,$FRdoublek */
17331 SEM_FN_NAME (frvbf,fsqrtd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17333 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17334 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17335 int UNUSED written = 0;
17336 IADDR UNUSED pc = abuf->addr;
17337 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17340 DF opval = (* CGEN_CPU_FPU (current_cpu)->ops->sqrtdf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_DOUBLE (FLD (f_FRj)));
17341 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17342 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17349 /* cfsqrts: cfsqrts$pack $FRj,$FRk,$CCi,$cond */
17352 SEM_FN_NAME (frvbf,cfsqrts) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17354 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17355 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17356 int UNUSED written = 0;
17357 IADDR UNUSED pc = abuf->addr;
17358 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17360 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17362 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->sqrtsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17363 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17364 written |= (1 << 3);
17365 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17369 abuf->written = written;
17374 /* nfsqrts: nfsqrts$pack $FRj,$FRk */
17377 SEM_FN_NAME (frvbf,nfsqrts) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17379 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17380 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17381 int UNUSED written = 0;
17382 IADDR UNUSED pc = abuf->addr;
17383 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17386 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
17388 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->sqrtsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17389 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17390 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17398 /* fadds: fadds$pack $FRi,$FRj,$FRk */
17401 SEM_FN_NAME (frvbf,fadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17403 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17404 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17405 int UNUSED written = 0;
17406 IADDR UNUSED pc = abuf->addr;
17407 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17410 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)));
17411 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17412 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17419 /* fsubs: fsubs$pack $FRi,$FRj,$FRk */
17422 SEM_FN_NAME (frvbf,fsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17424 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17425 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17426 int UNUSED written = 0;
17427 IADDR UNUSED pc = abuf->addr;
17428 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17431 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)));
17432 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17433 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17440 /* fmuls: fmuls$pack $FRi,$FRj,$FRk */
17443 SEM_FN_NAME (frvbf,fmuls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17445 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17446 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17447 int UNUSED written = 0;
17448 IADDR UNUSED pc = abuf->addr;
17449 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17452 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)));
17453 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17454 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17461 /* fdivs: fdivs$pack $FRi,$FRj,$FRk */
17464 SEM_FN_NAME (frvbf,fdivs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17466 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17467 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17468 int UNUSED written = 0;
17469 IADDR UNUSED pc = abuf->addr;
17470 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17473 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)));
17474 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17475 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17482 /* faddd: faddd$pack $FRdoublei,$FRdoublej,$FRdoublek */
17485 SEM_FN_NAME (frvbf,faddd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17487 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17488 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17489 int UNUSED written = 0;
17490 IADDR UNUSED pc = abuf->addr;
17491 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17494 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)));
17495 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17496 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17503 /* fsubd: fsubd$pack $FRdoublei,$FRdoublej,$FRdoublek */
17506 SEM_FN_NAME (frvbf,fsubd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17508 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17509 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17510 int UNUSED written = 0;
17511 IADDR UNUSED pc = abuf->addr;
17512 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17515 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)));
17516 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17517 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17524 /* fmuld: fmuld$pack $FRdoublei,$FRdoublej,$FRdoublek */
17527 SEM_FN_NAME (frvbf,fmuld) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17529 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17530 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17531 int UNUSED written = 0;
17532 IADDR UNUSED pc = abuf->addr;
17533 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17536 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)));
17537 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17538 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17545 /* fdivd: fdivd$pack $FRdoublei,$FRdoublej,$FRdoublek */
17548 SEM_FN_NAME (frvbf,fdivd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17550 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17551 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17552 int UNUSED written = 0;
17553 IADDR UNUSED pc = abuf->addr;
17554 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17557 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)));
17558 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17559 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17566 /* cfadds: cfadds$pack $FRi,$FRj,$FRk,$CCi,$cond */
17569 SEM_FN_NAME (frvbf,cfadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17571 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17572 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17573 int UNUSED written = 0;
17574 IADDR UNUSED pc = abuf->addr;
17575 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17577 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17579 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)));
17580 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17581 written |= (1 << 4);
17582 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17586 abuf->written = written;
17591 /* cfsubs: cfsubs$pack $FRi,$FRj,$FRk,$CCi,$cond */
17594 SEM_FN_NAME (frvbf,cfsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17596 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17597 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17598 int UNUSED written = 0;
17599 IADDR UNUSED pc = abuf->addr;
17600 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17602 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17604 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)));
17605 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17606 written |= (1 << 4);
17607 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17611 abuf->written = written;
17616 /* cfmuls: cfmuls$pack $FRi,$FRj,$FRk,$CCi,$cond */
17619 SEM_FN_NAME (frvbf,cfmuls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17621 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17622 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17623 int UNUSED written = 0;
17624 IADDR UNUSED pc = abuf->addr;
17625 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17627 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17629 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)));
17630 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17631 written |= (1 << 4);
17632 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17636 abuf->written = written;
17641 /* cfdivs: cfdivs$pack $FRi,$FRj,$FRk,$CCi,$cond */
17644 SEM_FN_NAME (frvbf,cfdivs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17646 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17647 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17648 int UNUSED written = 0;
17649 IADDR UNUSED pc = abuf->addr;
17650 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17652 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17654 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)));
17655 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17656 written |= (1 << 4);
17657 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17661 abuf->written = written;
17666 /* nfadds: nfadds$pack $FRi,$FRj,$FRk */
17669 SEM_FN_NAME (frvbf,nfadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17671 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17672 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17673 int UNUSED written = 0;
17674 IADDR UNUSED pc = abuf->addr;
17675 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17678 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
17680 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)));
17681 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17682 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17690 /* nfsubs: nfsubs$pack $FRi,$FRj,$FRk */
17693 SEM_FN_NAME (frvbf,nfsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17695 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17696 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17697 int UNUSED written = 0;
17698 IADDR UNUSED pc = abuf->addr;
17699 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17702 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
17704 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)));
17705 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17706 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17714 /* nfmuls: nfmuls$pack $FRi,$FRj,$FRk */
17717 SEM_FN_NAME (frvbf,nfmuls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17719 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17720 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17721 int UNUSED written = 0;
17722 IADDR UNUSED pc = abuf->addr;
17723 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17726 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
17728 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)));
17729 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17730 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17738 /* nfdivs: nfdivs$pack $FRi,$FRj,$FRk */
17741 SEM_FN_NAME (frvbf,nfdivs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17743 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17744 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17745 int UNUSED written = 0;
17746 IADDR UNUSED pc = abuf->addr;
17747 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17750 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
17752 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)));
17753 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17754 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17762 /* fcmps: fcmps$pack $FRi,$FRj,$FCCi_2 */
17765 SEM_FN_NAME (frvbf,fcmps) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17767 #define FLD(f) abuf->fields.sfmt_cfcmps.f
17768 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17769 int UNUSED written = 0;
17770 IADDR UNUSED pc = abuf->addr;
17771 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17773 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)))) {
17776 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17777 written |= (1 << 2);
17778 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17781 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)))) {
17784 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17785 written |= (1 << 2);
17786 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17789 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)))) {
17792 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17793 written |= (1 << 2);
17794 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17799 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17800 written |= (1 << 2);
17801 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17807 abuf->written = written;
17812 /* fcmpd: fcmpd$pack $FRdoublei,$FRdoublej,$FCCi_2 */
17815 SEM_FN_NAME (frvbf,fcmpd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17817 #define FLD(f) abuf->fields.sfmt_fcmpd.f
17818 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17819 int UNUSED written = 0;
17820 IADDR UNUSED pc = abuf->addr;
17821 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17823 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)))) {
17826 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17827 written |= (1 << 2);
17828 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17831 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)))) {
17834 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17835 written |= (1 << 2);
17836 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17839 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)))) {
17842 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17843 written |= (1 << 2);
17844 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17849 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17850 written |= (1 << 2);
17851 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17857 abuf->written = written;
17862 /* cfcmps: cfcmps$pack $FRi,$FRj,$FCCi_2,$CCi,$cond */
17865 SEM_FN_NAME (frvbf,cfcmps) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17867 #define FLD(f) abuf->fields.sfmt_cfcmps.f
17868 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17869 int UNUSED written = 0;
17870 IADDR UNUSED pc = abuf->addr;
17871 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17873 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17874 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)))) {
17877 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17878 written |= (1 << 4);
17879 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17882 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)))) {
17885 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17886 written |= (1 << 4);
17887 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17890 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)))) {
17893 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17894 written |= (1 << 4);
17895 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17900 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17901 written |= (1 << 4);
17902 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17909 abuf->written = written;
17914 /* fdcmps: fdcmps$pack $FRi,$FRj,$FCCi_2 */
17917 SEM_FN_NAME (frvbf,fdcmps) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17919 #define FLD(f) abuf->fields.sfmt_nfdcmps.f
17920 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17921 int UNUSED written = 0;
17922 IADDR UNUSED pc = abuf->addr;
17923 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17926 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)))) {
17929 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17930 written |= (1 << 7);
17931 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17934 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)))) {
17937 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17938 written |= (1 << 7);
17939 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17942 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)))) {
17945 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17946 written |= (1 << 7);
17947 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17952 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17953 written |= (1 << 7);
17954 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17959 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))))) {
17962 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCi_2)) + (1))]), opval);
17963 written |= (1 << 8);
17964 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17967 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))))) {
17970 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCi_2)) + (1))]), opval);
17971 written |= (1 << 8);
17972 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17975 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))))) {
17978 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCi_2)) + (1))]), opval);
17979 written |= (1 << 8);
17980 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17985 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCi_2)) + (1))]), opval);
17986 written |= (1 << 8);
17987 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17994 abuf->written = written;
17999 /* fmadds: fmadds$pack $FRi,$FRj,$FRk */
18002 SEM_FN_NAME (frvbf,fmadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18004 #define FLD(f) abuf->fields.sfmt_cfmadds.f
18005 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18006 int UNUSED written = 0;
18007 IADDR UNUSED pc = abuf->addr;
18008 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18011 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)));
18012 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18013 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18020 /* fmsubs: fmsubs$pack $FRi,$FRj,$FRk */
18023 SEM_FN_NAME (frvbf,fmsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18025 #define FLD(f) abuf->fields.sfmt_cfmadds.f
18026 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18027 int UNUSED written = 0;
18028 IADDR UNUSED pc = abuf->addr;
18029 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18032 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)));
18033 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18034 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18041 /* fmaddd: fmaddd$pack $FRdoublei,$FRdoublej,$FRdoublek */
18044 SEM_FN_NAME (frvbf,fmaddd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18046 #define FLD(f) abuf->fields.sfmt_fmaddd.f
18047 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18048 int UNUSED written = 0;
18049 IADDR UNUSED pc = abuf->addr;
18050 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18053 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)));
18054 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
18055 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
18062 /* fmsubd: fmsubd$pack $FRdoublei,$FRdoublej,$FRdoublek */
18065 SEM_FN_NAME (frvbf,fmsubd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18067 #define FLD(f) abuf->fields.sfmt_fmaddd.f
18068 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18069 int UNUSED written = 0;
18070 IADDR UNUSED pc = abuf->addr;
18071 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18074 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)));
18075 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
18076 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
18083 /* fdmadds: fdmadds$pack $FRi,$FRj,$FRk */
18086 SEM_FN_NAME (frvbf,fdmadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18088 #define FLD(f) abuf->fields.sfmt_fdmadds.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);
18096 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)));
18097 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18098 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18101 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))));
18102 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18103 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18111 /* nfdmadds: nfdmadds$pack $FRi,$FRj,$FRk */
18114 SEM_FN_NAME (frvbf,nfdmadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18116 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18117 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18118 int UNUSED written = 0;
18119 IADDR UNUSED pc = abuf->addr;
18120 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18123 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18125 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)));
18126 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18127 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18129 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18131 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))));
18132 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18133 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18141 /* cfmadds: cfmadds$pack $FRi,$FRj,$FRk,$CCi,$cond */
18144 SEM_FN_NAME (frvbf,cfmadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18146 #define FLD(f) abuf->fields.sfmt_cfmadds.f
18147 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18148 int UNUSED written = 0;
18149 IADDR UNUSED pc = abuf->addr;
18150 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18152 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
18154 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)));
18155 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18156 written |= (1 << 5);
18157 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18161 abuf->written = written;
18166 /* cfmsubs: cfmsubs$pack $FRi,$FRj,$FRk,$CCi,$cond */
18169 SEM_FN_NAME (frvbf,cfmsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18171 #define FLD(f) abuf->fields.sfmt_cfmadds.f
18172 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18173 int UNUSED written = 0;
18174 IADDR UNUSED pc = abuf->addr;
18175 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18177 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
18179 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)));
18180 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18181 written |= (1 << 5);
18182 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18186 abuf->written = written;
18191 /* nfmadds: nfmadds$pack $FRi,$FRj,$FRk */
18194 SEM_FN_NAME (frvbf,nfmadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18196 #define FLD(f) abuf->fields.sfmt_cfmadds.f
18197 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18198 int UNUSED written = 0;
18199 IADDR UNUSED pc = abuf->addr;
18200 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18203 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18205 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)));
18206 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18207 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18215 /* nfmsubs: nfmsubs$pack $FRi,$FRj,$FRk */
18218 SEM_FN_NAME (frvbf,nfmsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18220 #define FLD(f) abuf->fields.sfmt_cfmadds.f
18221 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18222 int UNUSED written = 0;
18223 IADDR UNUSED pc = abuf->addr;
18224 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18227 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18229 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)));
18230 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18231 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18239 /* fmas: fmas$pack $FRi,$FRj,$FRk */
18242 SEM_FN_NAME (frvbf,fmas) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18244 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18245 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18246 int UNUSED written = 0;
18247 IADDR UNUSED pc = abuf->addr;
18248 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18252 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)));
18253 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18254 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18257 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))));
18258 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18259 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18267 /* fmss: fmss$pack $FRi,$FRj,$FRk */
18270 SEM_FN_NAME (frvbf,fmss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18272 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18273 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18274 int UNUSED written = 0;
18275 IADDR UNUSED pc = abuf->addr;
18276 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18280 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)));
18281 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18282 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18285 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))));
18286 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18287 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18295 /* fdmas: fdmas$pack $FRi,$FRj,$FRk */
18298 SEM_FN_NAME (frvbf,fdmas) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18300 #define FLD(f) abuf->fields.sfmt_fdmas.f
18301 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18302 int UNUSED written = 0;
18303 IADDR UNUSED pc = abuf->addr;
18304 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18308 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)));
18309 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18310 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18313 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))));
18314 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18315 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18318 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))));
18319 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (2)), opval);
18320 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18323 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))));
18324 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (3)), opval);
18325 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18333 /* fdmss: fdmss$pack $FRi,$FRj,$FRk */
18336 SEM_FN_NAME (frvbf,fdmss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18338 #define FLD(f) abuf->fields.sfmt_fdmas.f
18339 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18340 int UNUSED written = 0;
18341 IADDR UNUSED pc = abuf->addr;
18342 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18346 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)));
18347 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18348 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18351 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))));
18352 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18353 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18356 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))));
18357 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (2)), opval);
18358 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18361 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))));
18362 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (3)), opval);
18363 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18371 /* nfdmas: nfdmas$pack $FRi,$FRj,$FRk */
18374 SEM_FN_NAME (frvbf,nfdmas) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18376 #define FLD(f) abuf->fields.sfmt_fdmas.f
18377 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18378 int UNUSED written = 0;
18379 IADDR UNUSED pc = abuf->addr;
18380 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18383 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18384 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18385 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 2));
18386 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 3));
18388 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)));
18389 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18390 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18393 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))));
18394 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18395 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18398 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))));
18399 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (2)), opval);
18400 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18403 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))));
18404 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (3)), opval);
18405 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18413 /* nfdmss: nfdmss$pack $FRi,$FRj,$FRk */
18416 SEM_FN_NAME (frvbf,nfdmss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18418 #define FLD(f) abuf->fields.sfmt_fdmas.f
18419 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18420 int UNUSED written = 0;
18421 IADDR UNUSED pc = abuf->addr;
18422 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18425 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18426 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18427 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 2));
18428 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 3));
18430 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)));
18431 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18432 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18435 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))));
18436 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18437 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18440 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))));
18441 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (2)), opval);
18442 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18445 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))));
18446 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (3)), opval);
18447 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18455 /* cfmas: cfmas$pack $FRi,$FRj,$FRk,$CCi,$cond */
18458 SEM_FN_NAME (frvbf,cfmas) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18460 #define FLD(f) abuf->fields.sfmt_cfmas.f
18461 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18462 int UNUSED written = 0;
18463 IADDR UNUSED pc = abuf->addr;
18464 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18466 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
18469 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)));
18470 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18471 written |= (1 << 9);
18472 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18475 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))));
18476 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18477 written |= (1 << 10);
18478 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18483 abuf->written = written;
18488 /* cfmss: cfmss$pack $FRi,$FRj,$FRk,$CCi,$cond */
18491 SEM_FN_NAME (frvbf,cfmss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18493 #define FLD(f) abuf->fields.sfmt_cfmas.f
18494 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18495 int UNUSED written = 0;
18496 IADDR UNUSED pc = abuf->addr;
18497 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18499 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
18502 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)));
18503 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18504 written |= (1 << 9);
18505 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18508 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))));
18509 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18510 written |= (1 << 10);
18511 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18516 abuf->written = written;
18521 /* fmad: fmad$pack $FRi,$FRj,$FRk */
18524 SEM_FN_NAME (frvbf,fmad) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18526 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18527 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18528 int UNUSED written = 0;
18529 IADDR UNUSED pc = abuf->addr;
18530 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18534 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)))));
18535 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18536 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18539 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))))));
18540 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18541 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18549 /* fmsd: fmsd$pack $FRi,$FRj,$FRk */
18552 SEM_FN_NAME (frvbf,fmsd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18554 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18555 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18556 int UNUSED written = 0;
18557 IADDR UNUSED pc = abuf->addr;
18558 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18562 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)))));
18563 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18564 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18567 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))))));
18568 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18569 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18577 /* nfmas: nfmas$pack $FRi,$FRj,$FRk */
18580 SEM_FN_NAME (frvbf,nfmas) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18582 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18583 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18584 int UNUSED written = 0;
18585 IADDR UNUSED pc = abuf->addr;
18586 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18589 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18591 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)));
18592 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18593 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18595 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18597 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))));
18598 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18599 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18607 /* nfmss: nfmss$pack $FRi,$FRj,$FRk */
18610 SEM_FN_NAME (frvbf,nfmss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18612 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18613 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18614 int UNUSED written = 0;
18615 IADDR UNUSED pc = abuf->addr;
18616 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18619 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18621 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)));
18622 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18623 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18625 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18627 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))));
18628 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18629 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18637 /* fdadds: fdadds$pack $FRi,$FRj,$FRk */
18640 SEM_FN_NAME (frvbf,fdadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18642 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18643 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18644 int UNUSED written = 0;
18645 IADDR UNUSED pc = abuf->addr;
18646 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18650 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)));
18651 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18652 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18655 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))));
18656 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18657 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18665 /* fdsubs: fdsubs$pack $FRi,$FRj,$FRk */
18668 SEM_FN_NAME (frvbf,fdsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18670 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18671 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18672 int UNUSED written = 0;
18673 IADDR UNUSED pc = abuf->addr;
18674 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18678 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)));
18679 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18680 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18683 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))));
18684 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18685 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18693 /* fdmuls: fdmuls$pack $FRi,$FRj,$FRk */
18696 SEM_FN_NAME (frvbf,fdmuls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18698 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18699 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18700 int UNUSED written = 0;
18701 IADDR UNUSED pc = abuf->addr;
18702 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18706 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)));
18707 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18708 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18711 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))));
18712 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18713 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18721 /* fddivs: fddivs$pack $FRi,$FRj,$FRk */
18724 SEM_FN_NAME (frvbf,fddivs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18726 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18727 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18728 int UNUSED written = 0;
18729 IADDR UNUSED pc = abuf->addr;
18730 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18734 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)));
18735 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18736 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18739 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))));
18740 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18741 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18749 /* fdsads: fdsads$pack $FRi,$FRj,$FRk */
18752 SEM_FN_NAME (frvbf,fdsads) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18754 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18755 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18756 int UNUSED written = 0;
18757 IADDR UNUSED pc = abuf->addr;
18758 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18762 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)));
18763 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18764 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18767 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))));
18768 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18769 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18777 /* fdmulcs: fdmulcs$pack $FRi,$FRj,$FRk */
18780 SEM_FN_NAME (frvbf,fdmulcs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18782 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18783 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18784 int UNUSED written = 0;
18785 IADDR UNUSED pc = abuf->addr;
18786 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18790 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))));
18791 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18792 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18795 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)));
18796 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18797 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18805 /* nfdmulcs: nfdmulcs$pack $FRi,$FRj,$FRk */
18808 SEM_FN_NAME (frvbf,nfdmulcs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18810 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18811 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18812 int UNUSED written = 0;
18813 IADDR UNUSED pc = abuf->addr;
18814 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18817 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18819 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))));
18820 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18821 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18823 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18825 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)));
18826 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18827 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18835 /* nfdadds: nfdadds$pack $FRi,$FRj,$FRk */
18838 SEM_FN_NAME (frvbf,nfdadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18840 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18841 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18842 int UNUSED written = 0;
18843 IADDR UNUSED pc = abuf->addr;
18844 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18847 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18849 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)));
18850 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18851 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18853 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18855 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))));
18856 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18857 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18865 /* nfdsubs: nfdsubs$pack $FRi,$FRj,$FRk */
18868 SEM_FN_NAME (frvbf,nfdsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18870 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18871 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18872 int UNUSED written = 0;
18873 IADDR UNUSED pc = abuf->addr;
18874 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18877 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18879 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)));
18880 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18881 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18883 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18885 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))));
18886 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18887 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18895 /* nfdmuls: nfdmuls$pack $FRi,$FRj,$FRk */
18898 SEM_FN_NAME (frvbf,nfdmuls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18900 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18901 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18902 int UNUSED written = 0;
18903 IADDR UNUSED pc = abuf->addr;
18904 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18907 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18909 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)));
18910 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18911 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18913 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18915 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))));
18916 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18917 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18925 /* nfddivs: nfddivs$pack $FRi,$FRj,$FRk */
18928 SEM_FN_NAME (frvbf,nfddivs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18930 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18931 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18932 int UNUSED written = 0;
18933 IADDR UNUSED pc = abuf->addr;
18934 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18937 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18939 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)));
18940 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18941 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18943 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18945 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))));
18946 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18947 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18955 /* nfdsads: nfdsads$pack $FRi,$FRj,$FRk */
18958 SEM_FN_NAME (frvbf,nfdsads) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18960 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18961 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18962 int UNUSED written = 0;
18963 IADDR UNUSED pc = abuf->addr;
18964 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18967 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18969 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)));
18970 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18971 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18973 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18975 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))));
18976 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18977 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18985 /* nfdcmps: nfdcmps$pack $FRi,$FRj,$FCCi_2 */
18988 SEM_FN_NAME (frvbf,nfdcmps) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18990 #define FLD(f) abuf->fields.sfmt_nfdcmps.f
18991 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18992 int UNUSED written = 0;
18993 IADDR UNUSED pc = abuf->addr;
18994 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18997 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18998 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)))) {
19001 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
19002 written |= (1 << 8);
19003 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
19006 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)))) {
19009 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
19010 written |= (1 << 8);
19011 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
19014 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)))) {
19017 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
19018 written |= (1 << 8);
19019 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
19024 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
19025 written |= (1 << 8);
19026 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
19031 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
19032 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))))) {
19035 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCi_2)) + (1))]), opval);
19036 written |= (1 << 9);
19037 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
19040 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))))) {
19043 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCi_2)) + (1))]), opval);
19044 written |= (1 << 9);
19045 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
19048 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))))) {
19051 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCi_2)) + (1))]), opval);
19052 written |= (1 << 9);
19053 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
19058 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCi_2)) + (1))]), opval);
19059 written |= (1 << 9);
19060 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
19067 abuf->written = written;
19072 /* mhsetlos: mhsetlos$pack $u12,$FRklo */
19075 SEM_FN_NAME (frvbf,mhsetlos) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19077 #define FLD(f) abuf->fields.sfmt_mhsetlos.f
19078 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19079 int UNUSED written = 0;
19080 IADDR UNUSED pc = abuf->addr;
19081 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19084 UHI opval = FLD (f_u12);
19085 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, FLD (f_FRk), opval);
19086 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19093 /* mhsethis: mhsethis$pack $u12,$FRkhi */
19096 SEM_FN_NAME (frvbf,mhsethis) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19098 #define FLD(f) abuf->fields.sfmt_mhsethis.f
19099 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19100 int UNUSED written = 0;
19101 IADDR UNUSED pc = abuf->addr;
19102 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19105 UHI opval = FLD (f_u12);
19106 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, FLD (f_FRk), opval);
19107 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19114 /* mhdsets: mhdsets$pack $u12,$FRintk */
19117 SEM_FN_NAME (frvbf,mhdsets) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19119 #define FLD(f) abuf->fields.sfmt_mhdsets.f
19120 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19121 int UNUSED written = 0;
19122 IADDR UNUSED pc = abuf->addr;
19123 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19127 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
19128 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19129 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19132 UHI opval = FLD (f_u12);
19133 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19134 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19137 UHI opval = FLD (f_u12);
19138 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19139 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19147 /* mhsetloh: mhsetloh$pack $s5,$FRklo */
19150 SEM_FN_NAME (frvbf,mhsetloh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19152 #define FLD(f) abuf->fields.sfmt_mhsetloh.f
19153 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19154 int UNUSED written = 0;
19155 IADDR UNUSED pc = abuf->addr;
19156 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19160 tmp_tmp = GET_H_FR_LO (FLD (f_FRk));
19161 tmp_tmp = ANDHI (tmp_tmp, 2047);
19162 tmp_tmp = ORHI (tmp_tmp, SLLSI (ANDSI (FLD (f_s5), 31), 11));
19164 UHI opval = tmp_tmp;
19165 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, FLD (f_FRk), opval);
19166 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19174 /* mhsethih: mhsethih$pack $s5,$FRkhi */
19177 SEM_FN_NAME (frvbf,mhsethih) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19179 #define FLD(f) abuf->fields.sfmt_mhsethih.f
19180 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19181 int UNUSED written = 0;
19182 IADDR UNUSED pc = abuf->addr;
19183 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19187 tmp_tmp = GET_H_FR_HI (FLD (f_FRk));
19188 tmp_tmp = ANDHI (tmp_tmp, 2047);
19189 tmp_tmp = ORHI (tmp_tmp, SLLSI (ANDSI (FLD (f_s5), 31), 11));
19191 UHI opval = tmp_tmp;
19192 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, FLD (f_FRk), opval);
19193 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19201 /* mhdseth: mhdseth$pack $s5,$FRintk */
19204 SEM_FN_NAME (frvbf,mhdseth) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19206 #define FLD(f) abuf->fields.sfmt_mhdseth.f
19207 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19208 int UNUSED written = 0;
19209 IADDR UNUSED pc = abuf->addr;
19210 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19214 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
19215 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19216 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19220 tmp_tmp = GET_H_FR_HI (((FLD (f_FRk)) + (0)));
19221 tmp_tmp = ANDHI (tmp_tmp, 2047);
19222 tmp_tmp = ORHI (tmp_tmp, SLLSI (ANDSI (FLD (f_s5), 31), 11));
19224 UHI opval = tmp_tmp;
19225 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19226 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19231 tmp_tmp = GET_H_FR_LO (((FLD (f_FRk)) + (0)));
19232 tmp_tmp = ANDHI (tmp_tmp, 2047);
19233 tmp_tmp = ORHI (tmp_tmp, SLLSI (ANDSI (FLD (f_s5), 31), 11));
19235 UHI opval = tmp_tmp;
19236 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19237 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19246 /* mand: mand$pack $FRinti,$FRintj,$FRintk */
19249 SEM_FN_NAME (frvbf,mand) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19251 #define FLD(f) abuf->fields.sfmt_mwcut.f
19252 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19253 int UNUSED written = 0;
19254 IADDR UNUSED pc = abuf->addr;
19255 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19258 SI opval = ANDSI (GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
19259 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19260 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19267 /* mor: mor$pack $FRinti,$FRintj,$FRintk */
19270 SEM_FN_NAME (frvbf,mor) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19272 #define FLD(f) abuf->fields.sfmt_mwcut.f
19273 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19274 int UNUSED written = 0;
19275 IADDR UNUSED pc = abuf->addr;
19276 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19279 SI opval = ORSI (GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
19280 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19281 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19288 /* mxor: mxor$pack $FRinti,$FRintj,$FRintk */
19291 SEM_FN_NAME (frvbf,mxor) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19293 #define FLD(f) abuf->fields.sfmt_mwcut.f
19294 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19295 int UNUSED written = 0;
19296 IADDR UNUSED pc = abuf->addr;
19297 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19300 SI opval = XORSI (GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
19301 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19302 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19309 /* cmand: cmand$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
19312 SEM_FN_NAME (frvbf,cmand) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19314 #define FLD(f) abuf->fields.sfmt_cmand.f
19315 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19316 int UNUSED written = 0;
19317 IADDR UNUSED pc = abuf->addr;
19318 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19320 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
19322 SI opval = ANDSI (GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
19323 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19324 written |= (1 << 4);
19325 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19329 abuf->written = written;
19334 /* cmor: cmor$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
19337 SEM_FN_NAME (frvbf,cmor) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19339 #define FLD(f) abuf->fields.sfmt_cmand.f
19340 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19341 int UNUSED written = 0;
19342 IADDR UNUSED pc = abuf->addr;
19343 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19345 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
19347 SI opval = ORSI (GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
19348 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19349 written |= (1 << 4);
19350 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19354 abuf->written = written;
19359 /* cmxor: cmxor$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
19362 SEM_FN_NAME (frvbf,cmxor) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19364 #define FLD(f) abuf->fields.sfmt_cmand.f
19365 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19366 int UNUSED written = 0;
19367 IADDR UNUSED pc = abuf->addr;
19368 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19370 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
19372 SI opval = XORSI (GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
19373 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19374 written |= (1 << 4);
19375 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19379 abuf->written = written;
19384 /* mnot: mnot$pack $FRintj,$FRintk */
19387 SEM_FN_NAME (frvbf,mnot) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19389 #define FLD(f) abuf->fields.sfmt_mcut.f
19390 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19391 int UNUSED written = 0;
19392 IADDR UNUSED pc = abuf->addr;
19393 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19396 SI opval = INVSI (GET_H_FR_INT (FLD (f_FRj)));
19397 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19398 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19405 /* cmnot: cmnot$pack $FRintj,$FRintk,$CCi,$cond */
19408 SEM_FN_NAME (frvbf,cmnot) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19410 #define FLD(f) abuf->fields.sfmt_cmand.f
19411 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19412 int UNUSED written = 0;
19413 IADDR UNUSED pc = abuf->addr;
19414 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19416 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
19418 SI opval = INVSI (GET_H_FR_INT (FLD (f_FRj)));
19419 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19420 written |= (1 << 3);
19421 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19425 abuf->written = written;
19430 /* mrotli: mrotli$pack $FRinti,$u6,$FRintk */
19433 SEM_FN_NAME (frvbf,mrotli) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19435 #define FLD(f) abuf->fields.sfmt_mwcuti.f
19436 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19437 int UNUSED written = 0;
19438 IADDR UNUSED pc = abuf->addr;
19439 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19442 SI opval = ROLSI (GET_H_FR_INT (FLD (f_FRi)), ANDSI (FLD (f_u6), 31));
19443 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19444 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19451 /* mrotri: mrotri$pack $FRinti,$u6,$FRintk */
19454 SEM_FN_NAME (frvbf,mrotri) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19456 #define FLD(f) abuf->fields.sfmt_mwcuti.f
19457 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19458 int UNUSED written = 0;
19459 IADDR UNUSED pc = abuf->addr;
19460 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19463 SI opval = RORSI (GET_H_FR_INT (FLD (f_FRi)), ANDSI (FLD (f_u6), 31));
19464 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19465 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19472 /* mwcut: mwcut$pack $FRinti,$FRintj,$FRintk */
19475 SEM_FN_NAME (frvbf,mwcut) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19477 #define FLD(f) abuf->fields.sfmt_mwcut.f
19478 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19479 int UNUSED written = 0;
19480 IADDR UNUSED pc = abuf->addr;
19481 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19484 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)));
19485 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19486 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19493 /* mwcuti: mwcuti$pack $FRinti,$u6,$FRintk */
19496 SEM_FN_NAME (frvbf,mwcuti) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19498 #define FLD(f) abuf->fields.sfmt_mwcuti.f
19499 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19500 int UNUSED written = 0;
19501 IADDR UNUSED pc = abuf->addr;
19502 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19505 SI opval = frvbf_cut (current_cpu, GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (((FLD (f_FRi)) + (1))), FLD (f_u6));
19506 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19507 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19514 /* mcut: mcut$pack $ACC40Si,$FRintj,$FRintk */
19517 SEM_FN_NAME (frvbf,mcut) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19519 #define FLD(f) abuf->fields.sfmt_mcut.f
19520 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19521 int UNUSED written = 0;
19522 IADDR UNUSED pc = abuf->addr;
19523 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19526 SI opval = frvbf_media_cut (current_cpu, GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_FR_INT (FLD (f_FRj)));
19527 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19528 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19535 /* mcuti: mcuti$pack $ACC40Si,$s6,$FRintk */
19538 SEM_FN_NAME (frvbf,mcuti) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19540 #define FLD(f) abuf->fields.sfmt_mcuti.f
19541 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19542 int UNUSED written = 0;
19543 IADDR UNUSED pc = abuf->addr;
19544 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19547 SI opval = frvbf_media_cut (current_cpu, GET_H_ACC40S (FLD (f_ACC40Si)), FLD (f_s6));
19548 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19549 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19556 /* mcutss: mcutss$pack $ACC40Si,$FRintj,$FRintk */
19559 SEM_FN_NAME (frvbf,mcutss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19561 #define FLD(f) abuf->fields.sfmt_mcut.f
19562 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19563 int UNUSED written = 0;
19564 IADDR UNUSED pc = abuf->addr;
19565 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19568 SI opval = frvbf_media_cut_ss (current_cpu, GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_FR_INT (FLD (f_FRj)));
19569 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19570 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19577 /* mcutssi: mcutssi$pack $ACC40Si,$s6,$FRintk */
19580 SEM_FN_NAME (frvbf,mcutssi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19582 #define FLD(f) abuf->fields.sfmt_mcuti.f
19583 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19584 int UNUSED written = 0;
19585 IADDR UNUSED pc = abuf->addr;
19586 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19589 SI opval = frvbf_media_cut_ss (current_cpu, GET_H_ACC40S (FLD (f_ACC40Si)), FLD (f_s6));
19590 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19591 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19598 /* mdcutssi: mdcutssi$pack $ACC40Si,$s6,$FRintkeven */
19601 SEM_FN_NAME (frvbf,mdcutssi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19603 #define FLD(f) abuf->fields.sfmt_mdcutssi.f
19604 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19605 int UNUSED written = 0;
19606 IADDR UNUSED pc = abuf->addr;
19607 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19609 if (ANDSI (FLD (f_ACC40Si), SUBSI (2, 1))) {
19610 frvbf_media_acc_not_aligned (current_cpu);
19612 if (ANDSI (FLD (f_FRk), SUBSI (2, 1))) {
19613 frvbf_media_register_not_aligned (current_cpu);
19617 SI opval = frvbf_media_cut_ss (current_cpu, GET_H_ACC40S (FLD (f_ACC40Si)), FLD (f_s6));
19618 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19619 written |= (1 << 5);
19620 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19623 USI opval = frvbf_media_cut_ss (current_cpu, GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))), FLD (f_s6));
19624 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
19625 written |= (1 << 6);
19626 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19632 abuf->written = written;
19637 /* maveh: maveh$pack $FRinti,$FRintj,$FRintk */
19640 SEM_FN_NAME (frvbf,maveh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19642 #define FLD(f) abuf->fields.sfmt_mwcut.f
19643 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19644 int UNUSED written = 0;
19645 IADDR UNUSED pc = abuf->addr;
19646 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19649 SI opval = frvbf_media_average (current_cpu, GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
19650 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19651 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19658 /* msllhi: msllhi$pack $FRinti,$u6,$FRintk */
19661 SEM_FN_NAME (frvbf,msllhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19663 #define FLD(f) abuf->fields.sfmt_msllhi.f
19664 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19665 int UNUSED written = 0;
19666 IADDR UNUSED pc = abuf->addr;
19667 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19671 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
19672 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
19673 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19676 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
19677 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19678 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19681 UHI opval = SLLHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), ANDSI (FLD (f_u6), 15));
19682 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19683 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19686 UHI opval = SLLHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), ANDSI (FLD (f_u6), 15));
19687 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19688 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19696 /* msrlhi: msrlhi$pack $FRinti,$u6,$FRintk */
19699 SEM_FN_NAME (frvbf,msrlhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19701 #define FLD(f) abuf->fields.sfmt_msllhi.f
19702 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19703 int UNUSED written = 0;
19704 IADDR UNUSED pc = abuf->addr;
19705 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19709 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
19710 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
19711 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19714 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
19715 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19716 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19719 UHI opval = SRLHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), ANDSI (FLD (f_u6), 15));
19720 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19721 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19724 UHI opval = SRLHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), ANDSI (FLD (f_u6), 15));
19725 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19726 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19734 /* msrahi: msrahi$pack $FRinti,$u6,$FRintk */
19737 SEM_FN_NAME (frvbf,msrahi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19739 #define FLD(f) abuf->fields.sfmt_msllhi.f
19740 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19741 int UNUSED written = 0;
19742 IADDR UNUSED pc = abuf->addr;
19743 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19747 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
19748 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
19749 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19752 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
19753 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19754 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19757 UHI opval = SRAHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), ANDSI (FLD (f_u6), 15));
19758 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19759 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19762 UHI opval = SRAHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), ANDSI (FLD (f_u6), 15));
19763 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19764 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19772 /* mdrotli: mdrotli$pack $FRintieven,$s6,$FRintkeven */
19775 SEM_FN_NAME (frvbf,mdrotli) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19777 #define FLD(f) abuf->fields.sfmt_mdrotli.f
19778 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19779 int UNUSED written = 0;
19780 IADDR UNUSED pc = abuf->addr;
19781 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19783 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1)))) {
19784 frvbf_media_register_not_aligned (current_cpu);
19788 SI opval = ROLSI (GET_H_FR_INT (FLD (f_FRi)), ANDSI (FLD (f_s6), 31));
19789 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19790 written |= (1 << 5);
19791 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19794 USI opval = ROLSI (GET_H_FR_INT (((FLD (f_FRi)) + (1))), ANDSI (FLD (f_s6), 31));
19795 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
19796 written |= (1 << 6);
19797 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19802 abuf->written = written;
19807 /* mcplhi: mcplhi$pack $FRinti,$u6,$FRintk */
19810 SEM_FN_NAME (frvbf,mcplhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19812 #define FLD(f) abuf->fields.sfmt_mcplhi.f
19813 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19814 int UNUSED written = 0;
19815 IADDR UNUSED pc = abuf->addr;
19816 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19823 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
19824 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
19825 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19828 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
19829 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19830 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19832 tmp_shift = ANDSI (FLD (f_u6), 15);
19833 tmp_arg1 = SLLHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), tmp_shift);
19834 if (NEHI (tmp_shift, 0)) {
19836 tmp_arg2 = GET_H_FR_HI (((FLD (f_FRi)) + (1)));
19837 tmp_arg2 = SRLHI (SLLHI (tmp_arg2, SUBSI (15, tmp_shift)), SUBSI (15, tmp_shift));
19838 tmp_arg1 = ORHI (tmp_arg1, tmp_arg2);
19842 UHI opval = tmp_arg1;
19843 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19844 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19852 /* mcpli: mcpli$pack $FRinti,$u6,$FRintk */
19855 SEM_FN_NAME (frvbf,mcpli) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19857 #define FLD(f) abuf->fields.sfmt_mwcuti.f
19858 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19859 int UNUSED written = 0;
19860 IADDR UNUSED pc = abuf->addr;
19861 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19866 tmp_shift = ANDSI (FLD (f_u6), 31);
19867 tmp_tmp = SLLSI (GET_H_FR_INT (FLD (f_FRi)), tmp_shift);
19868 if (NESI (tmp_shift, 0)) {
19871 tmp_tmp1 = SRLSI (SLLSI (GET_H_FR_INT (((FLD (f_FRi)) + (1))), SUBSI (31, tmp_shift)), SUBSI (31, tmp_shift));
19872 tmp_tmp = ORSI (tmp_tmp, tmp_tmp1);
19876 SI opval = tmp_tmp;
19877 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19878 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19886 /* msaths: msaths$pack $FRinti,$FRintj,$FRintk */
19889 SEM_FN_NAME (frvbf,msaths) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19891 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
19892 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19893 int UNUSED written = 0;
19894 IADDR UNUSED pc = abuf->addr;
19895 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19903 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
19904 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
19905 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
19906 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
19908 if (GTHI (tmp_argihi, tmp_argjhi)) {
19910 UHI opval = tmp_argjhi;
19911 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19912 written |= (1 << 9);
19913 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19916 if (LTHI (tmp_argihi, INVHI (tmp_argjhi))) {
19918 UHI opval = INVHI (tmp_argjhi);
19919 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19920 written |= (1 << 9);
19921 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19925 UHI opval = tmp_argihi;
19926 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19927 written |= (1 << 9);
19928 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19932 if (GTHI (tmp_argilo, tmp_argjlo)) {
19934 UHI opval = tmp_argjlo;
19935 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19936 written |= (1 << 10);
19937 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19940 if (LTHI (tmp_argilo, INVHI (tmp_argjlo))) {
19942 UHI opval = INVHI (tmp_argjlo);
19943 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19944 written |= (1 << 10);
19945 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19949 UHI opval = tmp_argilo;
19950 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19951 written |= (1 << 10);
19952 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19958 abuf->written = written;
19963 /* mqsaths: mqsaths$pack $FRintieven,$FRintjeven,$FRintkeven */
19966 SEM_FN_NAME (frvbf,mqsaths) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19968 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
19969 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19970 int UNUSED written = 0;
19971 IADDR UNUSED pc = abuf->addr;
19972 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19974 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
19975 frvbf_media_register_not_aligned (current_cpu);
19983 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
19984 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19985 written |= (1 << 14);
19986 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19989 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
19990 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
19991 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
19992 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
19994 if (GTHI (tmp_argihi, tmp_argjhi)) {
19996 UHI opval = tmp_argjhi;
19997 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19998 written |= (1 << 15);
19999 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20002 if (LTHI (tmp_argihi, INVHI (tmp_argjhi))) {
20004 UHI opval = INVHI (tmp_argjhi);
20005 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20006 written |= (1 << 15);
20007 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20011 UHI opval = tmp_argihi;
20012 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20013 written |= (1 << 15);
20014 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20018 if (GTHI (tmp_argilo, tmp_argjlo)) {
20020 UHI opval = tmp_argjlo;
20021 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20022 written |= (1 << 17);
20023 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20026 if (LTHI (tmp_argilo, INVHI (tmp_argjlo))) {
20028 UHI opval = INVHI (tmp_argjlo);
20029 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20030 written |= (1 << 17);
20031 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20035 UHI opval = tmp_argilo;
20036 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20037 written |= (1 << 17);
20038 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20043 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20044 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20045 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20046 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20048 if (GTHI (tmp_argihi, tmp_argjhi)) {
20050 UHI opval = tmp_argjhi;
20051 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
20052 written |= (1 << 16);
20053 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20056 if (LTHI (tmp_argihi, INVHI (tmp_argjhi))) {
20058 UHI opval = INVHI (tmp_argjhi);
20059 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
20060 written |= (1 << 16);
20061 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20065 UHI opval = tmp_argihi;
20066 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
20067 written |= (1 << 16);
20068 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20072 if (GTHI (tmp_argilo, tmp_argjlo)) {
20074 UHI opval = tmp_argjlo;
20075 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
20076 written |= (1 << 18);
20077 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20080 if (LTHI (tmp_argilo, INVHI (tmp_argjlo))) {
20082 UHI opval = INVHI (tmp_argjlo);
20083 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
20084 written |= (1 << 18);
20085 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20089 UHI opval = tmp_argilo;
20090 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
20091 written |= (1 << 18);
20092 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20099 abuf->written = written;
20104 /* msathu: msathu$pack $FRinti,$FRintj,$FRintk */
20107 SEM_FN_NAME (frvbf,msathu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20109 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20110 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20111 int UNUSED written = 0;
20112 IADDR UNUSED pc = abuf->addr;
20113 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20121 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20122 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20123 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20124 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20126 if (GTUHI (tmp_argihi, tmp_argjhi)) {
20128 UHI opval = tmp_argjhi;
20129 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20130 written |= (1 << 9);
20131 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20135 UHI opval = tmp_argihi;
20136 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20137 written |= (1 << 9);
20138 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20141 if (GTUHI (tmp_argilo, tmp_argjlo)) {
20143 UHI opval = tmp_argjlo;
20144 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20145 written |= (1 << 10);
20146 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20150 UHI opval = tmp_argilo;
20151 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20152 written |= (1 << 10);
20153 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20158 abuf->written = written;
20163 /* mcmpsh: mcmpsh$pack $FRinti,$FRintj,$FCCk */
20166 SEM_FN_NAME (frvbf,mcmpsh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20168 #define FLD(f) abuf->fields.sfmt_mcmpsh.f
20169 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20170 int UNUSED written = 0;
20171 IADDR UNUSED pc = abuf->addr;
20172 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20174 if (ANDSI (FLD (f_FCCk), SUBSI (2, 1))) {
20175 frvbf_media_cr_not_aligned (current_cpu);
20183 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20184 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20185 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20186 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20188 if (GTHI (tmp_argihi, tmp_argjhi)) {
20191 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20192 written |= (1 << 9);
20193 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20196 if (EQHI (tmp_argihi, tmp_argjhi)) {
20199 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20200 written |= (1 << 9);
20201 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20204 if (LTHI (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);
20214 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20215 written |= (1 << 9);
20216 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20221 if (GTHI (tmp_argilo, tmp_argjlo)) {
20224 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCk)) + (1))]), opval);
20225 written |= (1 << 10);
20226 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20229 if (EQHI (tmp_argilo, tmp_argjlo)) {
20232 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCk)) + (1))]), opval);
20233 written |= (1 << 10);
20234 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20237 if (LTHI (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);
20247 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCk)) + (1))]), opval);
20248 written |= (1 << 10);
20249 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20257 abuf->written = written;
20262 /* mcmpuh: mcmpuh$pack $FRinti,$FRintj,$FCCk */
20265 SEM_FN_NAME (frvbf,mcmpuh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20267 #define FLD(f) abuf->fields.sfmt_mcmpsh.f
20268 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20269 int UNUSED written = 0;
20270 IADDR UNUSED pc = abuf->addr;
20271 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20273 if (ANDSI (FLD (f_FCCk), SUBSI (2, 1))) {
20274 frvbf_media_cr_not_aligned (current_cpu);
20282 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20283 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20284 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20285 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20287 if (GTUHI (tmp_argihi, tmp_argjhi)) {
20290 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20291 written |= (1 << 9);
20292 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20295 if (EQHI (tmp_argihi, tmp_argjhi)) {
20298 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20299 written |= (1 << 9);
20300 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20303 if (LTUHI (tmp_argihi, tmp_argjhi)) {
20306 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20307 written |= (1 << 9);
20308 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20313 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20314 written |= (1 << 9);
20315 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20320 if (GTUHI (tmp_argilo, tmp_argjlo)) {
20323 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCk)) + (1))]), opval);
20324 written |= (1 << 10);
20325 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20328 if (EQHI (tmp_argilo, tmp_argjlo)) {
20331 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCk)) + (1))]), opval);
20332 written |= (1 << 10);
20333 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20336 if (LTUHI (tmp_argilo, tmp_argjlo)) {
20339 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCk)) + (1))]), opval);
20340 written |= (1 << 10);
20341 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20346 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCk)) + (1))]), opval);
20347 written |= (1 << 10);
20348 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20356 abuf->written = written;
20361 /* mabshs: mabshs$pack $FRintj,$FRintk */
20364 SEM_FN_NAME (frvbf,mabshs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20366 #define FLD(f) abuf->fields.sfmt_mabshs.f
20367 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20368 int UNUSED written = 0;
20369 IADDR UNUSED pc = abuf->addr;
20370 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20376 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
20377 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
20378 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
20381 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
20382 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
20383 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
20385 tmp_arghi = GET_H_FR_HI (((FLD (f_FRj)) + (0)));
20386 tmp_arglo = GET_H_FR_LO (((FLD (f_FRj)) + (0)));
20387 if (GTDI (ABSHI (tmp_arghi), 32767)) {
20391 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20392 written |= (1 << 8);
20393 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20395 frvbf_media_overflow (current_cpu, 8);
20398 if (LTDI (ABSHI (tmp_arghi), -32768)) {
20401 UHI opval = -32768;
20402 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20403 written |= (1 << 8);
20404 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20406 frvbf_media_overflow (current_cpu, 8);
20410 UHI opval = ABSHI (tmp_arghi);
20411 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20412 written |= (1 << 8);
20413 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20417 if (GTDI (ABSHI (tmp_arglo), 32767)) {
20421 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20422 written |= (1 << 9);
20423 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20425 frvbf_media_overflow (current_cpu, 4);
20428 if (LTDI (ABSHI (tmp_arglo), -32768)) {
20431 UHI opval = -32768;
20432 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20433 written |= (1 << 9);
20434 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20436 frvbf_media_overflow (current_cpu, 4);
20440 UHI opval = ABSHI (tmp_arglo);
20441 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20442 written |= (1 << 9);
20443 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20449 abuf->written = written;
20454 /* maddhss: maddhss$pack $FRinti,$FRintj,$FRintk */
20457 SEM_FN_NAME (frvbf,maddhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20459 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20460 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20461 int UNUSED written = 0;
20462 IADDR UNUSED pc = abuf->addr;
20463 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20471 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20472 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20473 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20474 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20478 tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
20479 if (GTDI (tmp_tmp, 32767)) {
20483 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20484 written |= (1 << 9);
20485 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20487 frvbf_media_overflow (current_cpu, 8);
20490 if (LTDI (tmp_tmp, -32768)) {
20493 UHI opval = -32768;
20494 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20495 written |= (1 << 9);
20496 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20498 frvbf_media_overflow (current_cpu, 8);
20502 UHI opval = tmp_tmp;
20503 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20504 written |= (1 << 9);
20505 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20512 tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
20513 if (GTDI (tmp_tmp, 32767)) {
20517 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20518 written |= (1 << 10);
20519 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20521 frvbf_media_overflow (current_cpu, 4);
20524 if (LTDI (tmp_tmp, -32768)) {
20527 UHI opval = -32768;
20528 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20529 written |= (1 << 10);
20530 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20532 frvbf_media_overflow (current_cpu, 4);
20536 UHI opval = tmp_tmp;
20537 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20538 written |= (1 << 10);
20539 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20546 abuf->written = written;
20551 /* maddhus: maddhus$pack $FRinti,$FRintj,$FRintk */
20554 SEM_FN_NAME (frvbf,maddhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20556 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20557 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20558 int UNUSED written = 0;
20559 IADDR UNUSED pc = abuf->addr;
20560 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20568 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20569 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20570 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20571 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20575 tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
20576 if (GTDI (tmp_tmp, 65535)) {
20580 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20581 written |= (1 << 9);
20582 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20584 frvbf_media_overflow (current_cpu, 8);
20587 if (LTDI (tmp_tmp, 0)) {
20591 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20592 written |= (1 << 9);
20593 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20595 frvbf_media_overflow (current_cpu, 8);
20599 UHI opval = tmp_tmp;
20600 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20601 written |= (1 << 9);
20602 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20609 tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
20610 if (GTDI (tmp_tmp, 65535)) {
20614 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20615 written |= (1 << 10);
20616 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20618 frvbf_media_overflow (current_cpu, 4);
20621 if (LTDI (tmp_tmp, 0)) {
20625 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20626 written |= (1 << 10);
20627 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20629 frvbf_media_overflow (current_cpu, 4);
20633 UHI opval = tmp_tmp;
20634 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20635 written |= (1 << 10);
20636 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20643 abuf->written = written;
20648 /* msubhss: msubhss$pack $FRinti,$FRintj,$FRintk */
20651 SEM_FN_NAME (frvbf,msubhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20653 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20654 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20655 int UNUSED written = 0;
20656 IADDR UNUSED pc = abuf->addr;
20657 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20665 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20666 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20667 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20668 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20672 tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
20673 if (GTDI (tmp_tmp, 32767)) {
20677 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20678 written |= (1 << 9);
20679 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20681 frvbf_media_overflow (current_cpu, 8);
20684 if (LTDI (tmp_tmp, -32768)) {
20687 UHI opval = -32768;
20688 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20689 written |= (1 << 9);
20690 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20692 frvbf_media_overflow (current_cpu, 8);
20696 UHI opval = tmp_tmp;
20697 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20698 written |= (1 << 9);
20699 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20706 tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
20707 if (GTDI (tmp_tmp, 32767)) {
20711 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20712 written |= (1 << 10);
20713 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20715 frvbf_media_overflow (current_cpu, 4);
20718 if (LTDI (tmp_tmp, -32768)) {
20721 UHI opval = -32768;
20722 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20723 written |= (1 << 10);
20724 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20726 frvbf_media_overflow (current_cpu, 4);
20730 UHI opval = tmp_tmp;
20731 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20732 written |= (1 << 10);
20733 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20740 abuf->written = written;
20745 /* msubhus: msubhus$pack $FRinti,$FRintj,$FRintk */
20748 SEM_FN_NAME (frvbf,msubhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20750 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20751 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20752 int UNUSED written = 0;
20753 IADDR UNUSED pc = abuf->addr;
20754 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20762 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20763 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20764 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20765 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20769 tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
20770 if (GTDI (tmp_tmp, 65535)) {
20774 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20775 written |= (1 << 9);
20776 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20778 frvbf_media_overflow (current_cpu, 8);
20781 if (LTDI (tmp_tmp, 0)) {
20785 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20786 written |= (1 << 9);
20787 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20789 frvbf_media_overflow (current_cpu, 8);
20793 UHI opval = tmp_tmp;
20794 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20795 written |= (1 << 9);
20796 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20803 tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
20804 if (GTDI (tmp_tmp, 65535)) {
20808 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20809 written |= (1 << 10);
20810 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20812 frvbf_media_overflow (current_cpu, 4);
20815 if (LTDI (tmp_tmp, 0)) {
20819 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20820 written |= (1 << 10);
20821 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20823 frvbf_media_overflow (current_cpu, 4);
20827 UHI opval = tmp_tmp;
20828 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20829 written |= (1 << 10);
20830 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20837 abuf->written = written;
20842 /* cmaddhss: cmaddhss$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
20845 SEM_FN_NAME (frvbf,cmaddhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20847 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20848 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20849 int UNUSED written = 0;
20850 IADDR UNUSED pc = abuf->addr;
20851 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20853 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
20860 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20861 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20862 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20863 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20867 tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
20868 if (GTDI (tmp_tmp, 32767)) {
20872 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20873 written |= (1 << 11);
20874 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20876 frvbf_media_overflow (current_cpu, 8);
20879 if (LTDI (tmp_tmp, -32768)) {
20882 UHI opval = -32768;
20883 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20884 written |= (1 << 11);
20885 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20887 frvbf_media_overflow (current_cpu, 8);
20891 UHI opval = tmp_tmp;
20892 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20893 written |= (1 << 11);
20894 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20901 tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
20902 if (GTDI (tmp_tmp, 32767)) {
20906 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20907 written |= (1 << 12);
20908 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20910 frvbf_media_overflow (current_cpu, 4);
20913 if (LTDI (tmp_tmp, -32768)) {
20916 UHI opval = -32768;
20917 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20918 written |= (1 << 12);
20919 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20921 frvbf_media_overflow (current_cpu, 4);
20925 UHI opval = tmp_tmp;
20926 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20927 written |= (1 << 12);
20928 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20936 abuf->written = written;
20941 /* cmaddhus: cmaddhus$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
20944 SEM_FN_NAME (frvbf,cmaddhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20946 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20947 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20948 int UNUSED written = 0;
20949 IADDR UNUSED pc = abuf->addr;
20950 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20952 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
20959 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20960 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20961 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20962 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20966 tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
20967 if (GTDI (tmp_tmp, 65535)) {
20971 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20972 written |= (1 << 11);
20973 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20975 frvbf_media_overflow (current_cpu, 8);
20978 if (LTDI (tmp_tmp, 0)) {
20982 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20983 written |= (1 << 11);
20984 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20986 frvbf_media_overflow (current_cpu, 8);
20990 UHI opval = tmp_tmp;
20991 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20992 written |= (1 << 11);
20993 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21000 tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
21001 if (GTDI (tmp_tmp, 65535)) {
21005 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21006 written |= (1 << 12);
21007 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21009 frvbf_media_overflow (current_cpu, 4);
21012 if (LTDI (tmp_tmp, 0)) {
21016 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21017 written |= (1 << 12);
21018 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21020 frvbf_media_overflow (current_cpu, 4);
21024 UHI opval = tmp_tmp;
21025 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21026 written |= (1 << 12);
21027 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21035 abuf->written = written;
21040 /* cmsubhss: cmsubhss$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
21043 SEM_FN_NAME (frvbf,cmsubhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
21045 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
21046 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
21047 int UNUSED written = 0;
21048 IADDR UNUSED pc = abuf->addr;
21049 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
21051 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
21058 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21059 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21060 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21061 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21065 tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
21066 if (GTDI (tmp_tmp, 32767)) {
21070 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21071 written |= (1 << 11);
21072 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21074 frvbf_media_overflow (current_cpu, 8);
21077 if (LTDI (tmp_tmp, -32768)) {
21080 UHI opval = -32768;
21081 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21082 written |= (1 << 11);
21083 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21085 frvbf_media_overflow (current_cpu, 8);
21089 UHI opval = tmp_tmp;
21090 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21091 written |= (1 << 11);
21092 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21099 tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
21100 if (GTDI (tmp_tmp, 32767)) {
21104 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21105 written |= (1 << 12);
21106 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21108 frvbf_media_overflow (current_cpu, 4);
21111 if (LTDI (tmp_tmp, -32768)) {
21114 UHI opval = -32768;
21115 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21116 written |= (1 << 12);
21117 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21119 frvbf_media_overflow (current_cpu, 4);
21123 UHI opval = tmp_tmp;
21124 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21125 written |= (1 << 12);
21126 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21134 abuf->written = written;
21139 /* cmsubhus: cmsubhus$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
21142 SEM_FN_NAME (frvbf,cmsubhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
21144 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
21145 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
21146 int UNUSED written = 0;
21147 IADDR UNUSED pc = abuf->addr;
21148 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
21150 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
21157 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21158 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21159 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21160 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21164 tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
21165 if (GTDI (tmp_tmp, 65535)) {
21169 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21170 written |= (1 << 11);
21171 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21173 frvbf_media_overflow (current_cpu, 8);
21176 if (LTDI (tmp_tmp, 0)) {
21180 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21181 written |= (1 << 11);
21182 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21184 frvbf_media_overflow (current_cpu, 8);
21188 UHI opval = tmp_tmp;
21189 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21190 written |= (1 << 11);
21191 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21198 tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
21199 if (GTDI (tmp_tmp, 65535)) {
21203 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21204 written |= (1 << 12);
21205 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21207 frvbf_media_overflow (current_cpu, 4);
21210 if (LTDI (tmp_tmp, 0)) {
21214 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21215 written |= (1 << 12);
21216 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21218 frvbf_media_overflow (current_cpu, 4);
21222 UHI opval = tmp_tmp;
21223 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21224 written |= (1 << 12);
21225 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21233 abuf->written = written;
21238 /* mqaddhss: mqaddhss$pack $FRintieven,$FRintjeven,$FRintkeven */
21241 SEM_FN_NAME (frvbf,mqaddhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
21243 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
21244 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
21245 int UNUSED written = 0;
21246 IADDR UNUSED pc = abuf->addr;
21247 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
21249 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
21250 frvbf_media_register_not_aligned (current_cpu);
21258 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
21259 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
21260 written |= (1 << 14);
21261 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
21264 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21265 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21266 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21267 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21271 tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
21272 if (GTDI (tmp_tmp, 32767)) {
21276 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21277 written |= (1 << 15);
21278 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21280 frvbf_media_overflow (current_cpu, 8);
21283 if (LTDI (tmp_tmp, -32768)) {
21286 UHI opval = -32768;
21287 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21288 written |= (1 << 15);
21289 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21291 frvbf_media_overflow (current_cpu, 8);
21295 UHI opval = tmp_tmp;
21296 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21297 written |= (1 << 15);
21298 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21305 tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
21306 if (GTDI (tmp_tmp, 32767)) {
21310 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21311 written |= (1 << 17);
21312 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21314 frvbf_media_overflow (current_cpu, 4);
21317 if (LTDI (tmp_tmp, -32768)) {
21320 UHI opval = -32768;
21321 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21322 written |= (1 << 17);
21323 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21325 frvbf_media_overflow (current_cpu, 4);
21329 UHI opval = tmp_tmp;
21330 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21331 written |= (1 << 17);
21332 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21338 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21339 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21340 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21341 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21345 tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
21346 if (GTDI (tmp_tmp, 32767)) {
21350 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21351 written |= (1 << 16);
21352 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21354 frvbf_media_overflow (current_cpu, 2);
21357 if (LTDI (tmp_tmp, -32768)) {
21360 UHI opval = -32768;
21361 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21362 written |= (1 << 16);
21363 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21365 frvbf_media_overflow (current_cpu, 2);
21369 UHI opval = tmp_tmp;
21370 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21371 written |= (1 << 16);
21372 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21379 tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
21380 if (GTDI (tmp_tmp, 32767)) {
21384 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21385 written |= (1 << 18);
21386 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21388 frvbf_media_overflow (current_cpu, 1);
21391 if (LTDI (tmp_tmp, -32768)) {
21394 UHI opval = -32768;
21395 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21396 written |= (1 << 18);
21397 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21399 frvbf_media_overflow (current_cpu, 1);
21403 UHI opval = tmp_tmp;
21404 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21405 written |= (1 << 18);
21406 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21414 abuf->written = written;
21419 /* mqaddhus: mqaddhus$pack $FRintieven,$FRintjeven,$FRintkeven */
21422 SEM_FN_NAME (frvbf,mqaddhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
21424 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
21425 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
21426 int UNUSED written = 0;
21427 IADDR UNUSED pc = abuf->addr;
21428 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
21430 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
21431 frvbf_media_register_not_aligned (current_cpu);
21439 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
21440 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
21441 written |= (1 << 14);
21442 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
21445 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21446 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21447 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21448 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21452 tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
21453 if (GTDI (tmp_tmp, 65535)) {
21457 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21458 written |= (1 << 15);
21459 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21461 frvbf_media_overflow (current_cpu, 8);
21464 if (LTDI (tmp_tmp, 0)) {
21468 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21469 written |= (1 << 15);
21470 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21472 frvbf_media_overflow (current_cpu, 8);
21476 UHI opval = tmp_tmp;
21477 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21478 written |= (1 << 15);
21479 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21486 tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
21487 if (GTDI (tmp_tmp, 65535)) {
21491 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21492 written |= (1 << 17);
21493 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21495 frvbf_media_overflow (current_cpu, 4);
21498 if (LTDI (tmp_tmp, 0)) {
21502 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21503 written |= (1 << 17);
21504 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21506 frvbf_media_overflow (current_cpu, 4);
21510 UHI opval = tmp_tmp;
21511 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21512 written |= (1 << 17);
21513 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21519 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21520 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21521 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21522 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21526 tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
21527 if (GTDI (tmp_tmp, 65535)) {
21531 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21532 written |= (1 << 16);
21533 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21535 frvbf_media_overflow (current_cpu, 2);
21538 if (LTDI (tmp_tmp, 0)) {
21542 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21543 written |= (1 << 16);
21544 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21546 frvbf_media_overflow (current_cpu, 2);
21550 UHI opval = tmp_tmp;
21551 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21552 written |= (1 << 16);
21553 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21560 tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
21561 if (GTDI (tmp_tmp, 65535)) {
21565 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21566 written |= (1 << 18);
21567 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21569 frvbf_media_overflow (current_cpu, 1);
21572 if (LTDI (tmp_tmp, 0)) {
21576 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21577 written |= (1 << 18);
21578 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21580 frvbf_media_overflow (current_cpu, 1);
21584 UHI opval = tmp_tmp;
21585 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21586 written |= (1 << 18);
21587 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21595 abuf->written = written;
21600 /* mqsubhss: mqsubhss$pack $FRintieven,$FRintjeven,$FRintkeven */
21603 SEM_FN_NAME (frvbf,mqsubhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
21605 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
21606 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
21607 int UNUSED written = 0;
21608 IADDR UNUSED pc = abuf->addr;
21609 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
21611 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
21612 frvbf_media_register_not_aligned (current_cpu);
21620 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
21621 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
21622 written |= (1 << 14);
21623 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
21626 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21627 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21628 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21629 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21633 tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
21634 if (GTDI (tmp_tmp, 32767)) {
21638 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21639 written |= (1 << 15);
21640 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21642 frvbf_media_overflow (current_cpu, 8);
21645 if (LTDI (tmp_tmp, -32768)) {
21648 UHI opval = -32768;
21649 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21650 written |= (1 << 15);
21651 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21653 frvbf_media_overflow (current_cpu, 8);
21657 UHI opval = tmp_tmp;
21658 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21659 written |= (1 << 15);
21660 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21667 tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
21668 if (GTDI (tmp_tmp, 32767)) {
21672 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21673 written |= (1 << 17);
21674 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21676 frvbf_media_overflow (current_cpu, 4);
21679 if (LTDI (tmp_tmp, -32768)) {
21682 UHI opval = -32768;
21683 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21684 written |= (1 << 17);
21685 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21687 frvbf_media_overflow (current_cpu, 4);
21691 UHI opval = tmp_tmp;
21692 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21693 written |= (1 << 17);
21694 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21700 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21701 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21702 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21703 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21707 tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
21708 if (GTDI (tmp_tmp, 32767)) {
21712 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21713 written |= (1 << 16);
21714 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21716 frvbf_media_overflow (current_cpu, 2);
21719 if (LTDI (tmp_tmp, -32768)) {
21722 UHI opval = -32768;
21723 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21724 written |= (1 << 16);
21725 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21727 frvbf_media_overflow (current_cpu, 2);
21731 UHI opval = tmp_tmp;
21732 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21733 written |= (1 << 16);
21734 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21741 tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
21742 if (GTDI (tmp_tmp, 32767)) {
21746 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21747 written |= (1 << 18);
21748 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21750 frvbf_media_overflow (current_cpu, 1);
21753 if (LTDI (tmp_tmp, -32768)) {
21756 UHI opval = -32768;
21757 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21758 written |= (1 << 18);
21759 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21761 frvbf_media_overflow (current_cpu, 1);
21765 UHI opval = tmp_tmp;
21766 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21767 written |= (1 << 18);
21768 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21776 abuf->written = written;
21781 /* mqsubhus: mqsubhus$pack $FRintieven,$FRintjeven,$FRintkeven */
21784 SEM_FN_NAME (frvbf,mqsubhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
21786 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
21787 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
21788 int UNUSED written = 0;
21789 IADDR UNUSED pc = abuf->addr;
21790 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
21792 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
21793 frvbf_media_register_not_aligned (current_cpu);
21801 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
21802 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
21803 written |= (1 << 14);
21804 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
21807 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21808 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21809 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21810 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21814 tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
21815 if (GTDI (tmp_tmp, 65535)) {
21819 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21820 written |= (1 << 15);
21821 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21823 frvbf_media_overflow (current_cpu, 8);
21826 if (LTDI (tmp_tmp, 0)) {
21830 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21831 written |= (1 << 15);
21832 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21834 frvbf_media_overflow (current_cpu, 8);
21838 UHI opval = tmp_tmp;
21839 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21840 written |= (1 << 15);
21841 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21848 tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
21849 if (GTDI (tmp_tmp, 65535)) {
21853 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21854 written |= (1 << 17);
21855 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21857 frvbf_media_overflow (current_cpu, 4);
21860 if (LTDI (tmp_tmp, 0)) {
21864 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21865 written |= (1 << 17);
21866 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21868 frvbf_media_overflow (current_cpu, 4);
21872 UHI opval = tmp_tmp;
21873 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21874 written |= (1 << 17);
21875 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21881 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21882 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21883 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21884 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21888 tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
21889 if (GTDI (tmp_tmp, 65535)) {
21893 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21894 written |= (1 << 16);
21895 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21897 frvbf_media_overflow (current_cpu, 2);
21900 if (LTDI (tmp_tmp, 0)) {
21904 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21905 written |= (1 << 16);
21906 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21908 frvbf_media_overflow (current_cpu, 2);
21912 UHI opval = tmp_tmp;
21913 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21914 written |= (1 << 16);
21915 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21922 tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
21923 if (GTDI (tmp_tmp, 65535)) {
21927 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21928 written |= (1 << 18);
21929 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21931 frvbf_media_overflow (current_cpu, 1);
21934 if (LTDI (tmp_tmp, 0)) {
21938 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21939 written |= (1 << 18);
21940 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21942 frvbf_media_overflow (current_cpu, 1);
21946 UHI opval = tmp_tmp;
21947 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21948 written |= (1 << 18);
21949 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21957 abuf->written = written;
21962 /* cmqaddhss: cmqaddhss$pack $FRintieven,$FRintjeven,$FRintkeven,$CCi,$cond */
21965 SEM_FN_NAME (frvbf,cmqaddhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
21967 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
21968 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
21969 int UNUSED written = 0;
21970 IADDR UNUSED pc = abuf->addr;
21971 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
21973 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
21974 frvbf_media_register_not_aligned (current_cpu);
21976 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
21983 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
21984 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
21985 written |= (1 << 16);
21986 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
21989 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21990 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21991 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21992 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21996 tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
21997 if (GTDI (tmp_tmp, 32767)) {
22001 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22002 written |= (1 << 17);
22003 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22005 frvbf_media_overflow (current_cpu, 8);
22008 if (LTDI (tmp_tmp, -32768)) {
22011 UHI opval = -32768;
22012 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22013 written |= (1 << 17);
22014 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22016 frvbf_media_overflow (current_cpu, 8);
22020 UHI opval = tmp_tmp;
22021 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22022 written |= (1 << 17);
22023 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22030 tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
22031 if (GTDI (tmp_tmp, 32767)) {
22035 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22036 written |= (1 << 19);
22037 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22039 frvbf_media_overflow (current_cpu, 4);
22042 if (LTDI (tmp_tmp, -32768)) {
22045 UHI opval = -32768;
22046 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22047 written |= (1 << 19);
22048 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22050 frvbf_media_overflow (current_cpu, 4);
22054 UHI opval = tmp_tmp;
22055 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22056 written |= (1 << 19);
22057 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22063 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22064 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22065 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22066 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22070 tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
22071 if (GTDI (tmp_tmp, 32767)) {
22075 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22076 written |= (1 << 18);
22077 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22079 frvbf_media_overflow (current_cpu, 2);
22082 if (LTDI (tmp_tmp, -32768)) {
22085 UHI opval = -32768;
22086 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22087 written |= (1 << 18);
22088 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22090 frvbf_media_overflow (current_cpu, 2);
22094 UHI opval = tmp_tmp;
22095 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22096 written |= (1 << 18);
22097 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22104 tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
22105 if (GTDI (tmp_tmp, 32767)) {
22109 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22110 written |= (1 << 20);
22111 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22113 frvbf_media_overflow (current_cpu, 1);
22116 if (LTDI (tmp_tmp, -32768)) {
22119 UHI opval = -32768;
22120 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22121 written |= (1 << 20);
22122 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22124 frvbf_media_overflow (current_cpu, 1);
22128 UHI opval = tmp_tmp;
22129 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22130 written |= (1 << 20);
22131 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22140 abuf->written = written;
22145 /* cmqaddhus: cmqaddhus$pack $FRintieven,$FRintjeven,$FRintkeven,$CCi,$cond */
22148 SEM_FN_NAME (frvbf,cmqaddhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22150 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
22151 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22152 int UNUSED written = 0;
22153 IADDR UNUSED pc = abuf->addr;
22154 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22156 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
22157 frvbf_media_register_not_aligned (current_cpu);
22159 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
22166 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
22167 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
22168 written |= (1 << 16);
22169 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
22172 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22173 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22174 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22175 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22179 tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
22180 if (GTDI (tmp_tmp, 65535)) {
22184 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22185 written |= (1 << 17);
22186 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22188 frvbf_media_overflow (current_cpu, 8);
22191 if (LTDI (tmp_tmp, 0)) {
22195 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22196 written |= (1 << 17);
22197 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22199 frvbf_media_overflow (current_cpu, 8);
22203 UHI opval = tmp_tmp;
22204 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22205 written |= (1 << 17);
22206 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22213 tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
22214 if (GTDI (tmp_tmp, 65535)) {
22218 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22219 written |= (1 << 19);
22220 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22222 frvbf_media_overflow (current_cpu, 4);
22225 if (LTDI (tmp_tmp, 0)) {
22229 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22230 written |= (1 << 19);
22231 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22233 frvbf_media_overflow (current_cpu, 4);
22237 UHI opval = tmp_tmp;
22238 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22239 written |= (1 << 19);
22240 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22246 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22247 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22248 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22249 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22253 tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
22254 if (GTDI (tmp_tmp, 65535)) {
22258 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22259 written |= (1 << 18);
22260 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22262 frvbf_media_overflow (current_cpu, 2);
22265 if (LTDI (tmp_tmp, 0)) {
22269 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22270 written |= (1 << 18);
22271 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22273 frvbf_media_overflow (current_cpu, 2);
22277 UHI opval = tmp_tmp;
22278 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22279 written |= (1 << 18);
22280 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22287 tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
22288 if (GTDI (tmp_tmp, 65535)) {
22292 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22293 written |= (1 << 20);
22294 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22296 frvbf_media_overflow (current_cpu, 1);
22299 if (LTDI (tmp_tmp, 0)) {
22303 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22304 written |= (1 << 20);
22305 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22307 frvbf_media_overflow (current_cpu, 1);
22311 UHI opval = tmp_tmp;
22312 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22313 written |= (1 << 20);
22314 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22323 abuf->written = written;
22328 /* cmqsubhss: cmqsubhss$pack $FRintieven,$FRintjeven,$FRintkeven,$CCi,$cond */
22331 SEM_FN_NAME (frvbf,cmqsubhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22333 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
22334 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22335 int UNUSED written = 0;
22336 IADDR UNUSED pc = abuf->addr;
22337 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22339 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
22340 frvbf_media_register_not_aligned (current_cpu);
22342 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
22349 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
22350 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
22351 written |= (1 << 16);
22352 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
22355 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22356 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22357 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22358 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22362 tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
22363 if (GTDI (tmp_tmp, 32767)) {
22367 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22368 written |= (1 << 17);
22369 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22371 frvbf_media_overflow (current_cpu, 8);
22374 if (LTDI (tmp_tmp, -32768)) {
22377 UHI opval = -32768;
22378 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22379 written |= (1 << 17);
22380 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22382 frvbf_media_overflow (current_cpu, 8);
22386 UHI opval = tmp_tmp;
22387 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22388 written |= (1 << 17);
22389 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22396 tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
22397 if (GTDI (tmp_tmp, 32767)) {
22401 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22402 written |= (1 << 19);
22403 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22405 frvbf_media_overflow (current_cpu, 4);
22408 if (LTDI (tmp_tmp, -32768)) {
22411 UHI opval = -32768;
22412 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22413 written |= (1 << 19);
22414 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22416 frvbf_media_overflow (current_cpu, 4);
22420 UHI opval = tmp_tmp;
22421 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22422 written |= (1 << 19);
22423 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22429 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22430 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22431 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22432 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22436 tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
22437 if (GTDI (tmp_tmp, 32767)) {
22441 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22442 written |= (1 << 18);
22443 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22445 frvbf_media_overflow (current_cpu, 2);
22448 if (LTDI (tmp_tmp, -32768)) {
22451 UHI opval = -32768;
22452 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22453 written |= (1 << 18);
22454 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22456 frvbf_media_overflow (current_cpu, 2);
22460 UHI opval = tmp_tmp;
22461 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22462 written |= (1 << 18);
22463 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22470 tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
22471 if (GTDI (tmp_tmp, 32767)) {
22475 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22476 written |= (1 << 20);
22477 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22479 frvbf_media_overflow (current_cpu, 1);
22482 if (LTDI (tmp_tmp, -32768)) {
22485 UHI opval = -32768;
22486 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22487 written |= (1 << 20);
22488 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22490 frvbf_media_overflow (current_cpu, 1);
22494 UHI opval = tmp_tmp;
22495 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22496 written |= (1 << 20);
22497 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22506 abuf->written = written;
22511 /* cmqsubhus: cmqsubhus$pack $FRintieven,$FRintjeven,$FRintkeven,$CCi,$cond */
22514 SEM_FN_NAME (frvbf,cmqsubhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22516 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
22517 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22518 int UNUSED written = 0;
22519 IADDR UNUSED pc = abuf->addr;
22520 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22522 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
22523 frvbf_media_register_not_aligned (current_cpu);
22525 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
22532 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
22533 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
22534 written |= (1 << 16);
22535 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
22538 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22539 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22540 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22541 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22545 tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
22546 if (GTDI (tmp_tmp, 65535)) {
22550 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22551 written |= (1 << 17);
22552 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22554 frvbf_media_overflow (current_cpu, 8);
22557 if (LTDI (tmp_tmp, 0)) {
22561 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22562 written |= (1 << 17);
22563 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22565 frvbf_media_overflow (current_cpu, 8);
22569 UHI opval = tmp_tmp;
22570 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22571 written |= (1 << 17);
22572 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22579 tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
22580 if (GTDI (tmp_tmp, 65535)) {
22584 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22585 written |= (1 << 19);
22586 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22588 frvbf_media_overflow (current_cpu, 4);
22591 if (LTDI (tmp_tmp, 0)) {
22595 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22596 written |= (1 << 19);
22597 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22599 frvbf_media_overflow (current_cpu, 4);
22603 UHI opval = tmp_tmp;
22604 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22605 written |= (1 << 19);
22606 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22612 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22613 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22614 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22615 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22619 tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
22620 if (GTDI (tmp_tmp, 65535)) {
22624 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22625 written |= (1 << 18);
22626 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22628 frvbf_media_overflow (current_cpu, 2);
22631 if (LTDI (tmp_tmp, 0)) {
22635 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22636 written |= (1 << 18);
22637 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22639 frvbf_media_overflow (current_cpu, 2);
22643 UHI opval = tmp_tmp;
22644 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22645 written |= (1 << 18);
22646 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22653 tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
22654 if (GTDI (tmp_tmp, 65535)) {
22658 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22659 written |= (1 << 20);
22660 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22662 frvbf_media_overflow (current_cpu, 1);
22665 if (LTDI (tmp_tmp, 0)) {
22669 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22670 written |= (1 << 20);
22671 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22673 frvbf_media_overflow (current_cpu, 1);
22677 UHI opval = tmp_tmp;
22678 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22679 written |= (1 << 20);
22680 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22689 abuf->written = written;
22694 /* maddaccs: maddaccs$pack $ACC40Si,$ACC40Sk */
22697 SEM_FN_NAME (frvbf,maddaccs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22699 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
22700 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22701 int UNUSED written = 0;
22702 IADDR UNUSED pc = abuf->addr;
22703 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22705 if (ANDSI (FLD (f_ACC40Si), SUBSI (2, 1))) {
22706 frvbf_media_acc_not_aligned (current_cpu);
22710 tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))));
22711 if (GTDI (tmp_tmp, 549755813887)) {
22714 DI opval = 549755813887;
22715 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22716 written |= (1 << 3);
22717 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22719 frvbf_media_overflow (current_cpu, 8);
22722 if (LTDI (tmp_tmp, INVDI (549755813887))) {
22725 DI opval = INVDI (549755813887);
22726 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22727 written |= (1 << 3);
22728 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22730 frvbf_media_overflow (current_cpu, 8);
22734 DI opval = tmp_tmp;
22735 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22736 written |= (1 << 3);
22737 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22744 abuf->written = written;
22749 /* msubaccs: msubaccs$pack $ACC40Si,$ACC40Sk */
22752 SEM_FN_NAME (frvbf,msubaccs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22754 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
22755 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22756 int UNUSED written = 0;
22757 IADDR UNUSED pc = abuf->addr;
22758 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22760 if (ANDSI (FLD (f_ACC40Si), SUBSI (2, 1))) {
22761 frvbf_media_acc_not_aligned (current_cpu);
22765 tmp_tmp = SUBDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))));
22766 if (GTDI (tmp_tmp, 549755813887)) {
22769 DI opval = 549755813887;
22770 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22771 written |= (1 << 3);
22772 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22774 frvbf_media_overflow (current_cpu, 8);
22777 if (LTDI (tmp_tmp, INVDI (549755813887))) {
22780 DI opval = INVDI (549755813887);
22781 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22782 written |= (1 << 3);
22783 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22785 frvbf_media_overflow (current_cpu, 8);
22789 DI opval = tmp_tmp;
22790 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22791 written |= (1 << 3);
22792 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22799 abuf->written = written;
22804 /* mdaddaccs: mdaddaccs$pack $ACC40Si,$ACC40Sk */
22807 SEM_FN_NAME (frvbf,mdaddaccs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22809 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
22810 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22811 int UNUSED written = 0;
22812 IADDR UNUSED pc = abuf->addr;
22813 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22815 if (ANDSI (FLD (f_ACC40Si), SUBSI (4, 1))) {
22816 frvbf_media_acc_not_aligned (current_cpu);
22818 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
22819 frvbf_media_acc_not_aligned (current_cpu);
22824 tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))));
22825 if (GTDI (tmp_tmp, 549755813887)) {
22828 DI opval = 549755813887;
22829 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22830 written |= (1 << 6);
22831 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22833 frvbf_media_overflow (current_cpu, 8);
22836 if (LTDI (tmp_tmp, INVDI (549755813887))) {
22839 DI opval = INVDI (549755813887);
22840 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22841 written |= (1 << 6);
22842 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22844 frvbf_media_overflow (current_cpu, 8);
22848 DI opval = tmp_tmp;
22849 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22850 written |= (1 << 6);
22851 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22858 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Si)) + (2))), GET_H_ACC40S (((FLD (f_ACC40Si)) + (3))));
22859 if (GTDI (tmp_tmp, 549755813887)) {
22862 DI opval = 549755813887;
22863 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
22864 written |= (1 << 7);
22865 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22867 frvbf_media_overflow (current_cpu, 4);
22870 if (LTDI (tmp_tmp, INVDI (549755813887))) {
22873 DI opval = INVDI (549755813887);
22874 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
22875 written |= (1 << 7);
22876 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22878 frvbf_media_overflow (current_cpu, 4);
22882 DI opval = tmp_tmp;
22883 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
22884 written |= (1 << 7);
22885 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22894 abuf->written = written;
22899 /* mdsubaccs: mdsubaccs$pack $ACC40Si,$ACC40Sk */
22902 SEM_FN_NAME (frvbf,mdsubaccs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22904 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
22905 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22906 int UNUSED written = 0;
22907 IADDR UNUSED pc = abuf->addr;
22908 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22910 if (ANDSI (FLD (f_ACC40Si), SUBSI (4, 1))) {
22911 frvbf_media_acc_not_aligned (current_cpu);
22913 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
22914 frvbf_media_acc_not_aligned (current_cpu);
22919 tmp_tmp = SUBDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))));
22920 if (GTDI (tmp_tmp, 549755813887)) {
22923 DI opval = 549755813887;
22924 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22925 written |= (1 << 6);
22926 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22928 frvbf_media_overflow (current_cpu, 8);
22931 if (LTDI (tmp_tmp, INVDI (549755813887))) {
22934 DI opval = INVDI (549755813887);
22935 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22936 written |= (1 << 6);
22937 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22939 frvbf_media_overflow (current_cpu, 8);
22943 DI opval = tmp_tmp;
22944 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22945 written |= (1 << 6);
22946 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22953 tmp_tmp = SUBDI (GET_H_ACC40S (((FLD (f_ACC40Si)) + (2))), GET_H_ACC40S (((FLD (f_ACC40Si)) + (3))));
22954 if (GTDI (tmp_tmp, 549755813887)) {
22957 DI opval = 549755813887;
22958 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
22959 written |= (1 << 7);
22960 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22962 frvbf_media_overflow (current_cpu, 4);
22965 if (LTDI (tmp_tmp, INVDI (549755813887))) {
22968 DI opval = INVDI (549755813887);
22969 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
22970 written |= (1 << 7);
22971 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22973 frvbf_media_overflow (current_cpu, 4);
22977 DI opval = tmp_tmp;
22978 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
22979 written |= (1 << 7);
22980 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22989 abuf->written = written;
22994 /* masaccs: masaccs$pack $ACC40Si,$ACC40Sk */
22997 SEM_FN_NAME (frvbf,masaccs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22999 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
23000 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23001 int UNUSED written = 0;
23002 IADDR UNUSED pc = abuf->addr;
23003 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23005 if (ANDSI (FLD (f_ACC40Si), SUBSI (2, 1))) {
23006 frvbf_media_acc_not_aligned (current_cpu);
23008 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23009 frvbf_media_acc_not_aligned (current_cpu);
23014 tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))));
23015 if (GTDI (tmp_tmp, 549755813887)) {
23018 DI opval = 549755813887;
23019 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23020 written |= (1 << 4);
23021 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23023 frvbf_media_overflow (current_cpu, 8);
23026 if (LTDI (tmp_tmp, INVDI (549755813887))) {
23029 DI opval = INVDI (549755813887);
23030 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23031 written |= (1 << 4);
23032 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23034 frvbf_media_overflow (current_cpu, 8);
23038 DI opval = tmp_tmp;
23039 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23040 written |= (1 << 4);
23041 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23048 tmp_tmp = SUBDI (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)) + (1)), opval);
23054 written |= (1 << 5);
23055 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23057 frvbf_media_overflow (current_cpu, 4);
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)) + (1)), opval);
23065 written |= (1 << 5);
23066 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23068 frvbf_media_overflow (current_cpu, 4);
23072 DI opval = tmp_tmp;
23073 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23074 written |= (1 << 5);
23075 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23084 abuf->written = written;
23089 /* mdasaccs: mdasaccs$pack $ACC40Si,$ACC40Sk */
23092 SEM_FN_NAME (frvbf,mdasaccs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23094 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
23095 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23096 int UNUSED written = 0;
23097 IADDR UNUSED pc = abuf->addr;
23098 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23100 if (ANDSI (FLD (f_ACC40Si), SUBSI (4, 1))) {
23101 frvbf_media_acc_not_aligned (current_cpu);
23103 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
23104 frvbf_media_acc_not_aligned (current_cpu);
23109 tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))));
23110 if (GTDI (tmp_tmp, 549755813887)) {
23113 DI opval = 549755813887;
23114 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23115 written |= (1 << 6);
23116 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23118 frvbf_media_overflow (current_cpu, 8);
23121 if (LTDI (tmp_tmp, INVDI (549755813887))) {
23124 DI opval = INVDI (549755813887);
23125 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23126 written |= (1 << 6);
23127 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23129 frvbf_media_overflow (current_cpu, 8);
23133 DI opval = tmp_tmp;
23134 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23135 written |= (1 << 6);
23136 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23143 tmp_tmp = SUBDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))));
23144 if (GTDI (tmp_tmp, 549755813887)) {
23147 DI opval = 549755813887;
23148 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23149 written |= (1 << 7);
23150 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23152 frvbf_media_overflow (current_cpu, 4);
23155 if (LTDI (tmp_tmp, INVDI (549755813887))) {
23158 DI opval = INVDI (549755813887);
23159 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23160 written |= (1 << 7);
23161 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23163 frvbf_media_overflow (current_cpu, 4);
23167 DI opval = tmp_tmp;
23168 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23169 written |= (1 << 7);
23170 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23177 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Si)) + (2))), GET_H_ACC40S (((FLD (f_ACC40Si)) + (3))));
23178 if (GTDI (tmp_tmp, 549755813887)) {
23181 DI opval = 549755813887;
23182 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
23183 written |= (1 << 8);
23184 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23186 frvbf_media_overflow (current_cpu, 2);
23189 if (LTDI (tmp_tmp, INVDI (549755813887))) {
23192 DI opval = INVDI (549755813887);
23193 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
23194 written |= (1 << 8);
23195 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23197 frvbf_media_overflow (current_cpu, 2);
23201 DI opval = tmp_tmp;
23202 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
23203 written |= (1 << 8);
23204 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23211 tmp_tmp = SUBDI (GET_H_ACC40S (((FLD (f_ACC40Si)) + (2))), GET_H_ACC40S (((FLD (f_ACC40Si)) + (3))));
23212 if (GTDI (tmp_tmp, 549755813887)) {
23215 DI opval = 549755813887;
23216 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
23217 written |= (1 << 9);
23218 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23220 frvbf_media_overflow (current_cpu, 1);
23223 if (LTDI (tmp_tmp, INVDI (549755813887))) {
23226 DI opval = INVDI (549755813887);
23227 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
23228 written |= (1 << 9);
23229 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23231 frvbf_media_overflow (current_cpu, 1);
23235 DI opval = tmp_tmp;
23236 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
23237 written |= (1 << 9);
23238 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23247 abuf->written = written;
23252 /* mmulhs: mmulhs$pack $FRinti,$FRintj,$ACC40Sk */
23255 SEM_FN_NAME (frvbf,mmulhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23257 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23258 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23259 int UNUSED written = 0;
23260 IADDR UNUSED pc = abuf->addr;
23261 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23263 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23264 frvbf_media_acc_not_aligned (current_cpu);
23272 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23273 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23274 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23275 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23278 DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
23279 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23280 written |= (1 << 9);
23281 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23284 DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
23285 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23286 written |= (1 << 10);
23287 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23292 abuf->written = written;
23297 /* mmulhu: mmulhu$pack $FRinti,$FRintj,$ACC40Sk */
23300 SEM_FN_NAME (frvbf,mmulhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23302 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23303 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23304 int UNUSED written = 0;
23305 IADDR UNUSED pc = abuf->addr;
23306 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23308 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23309 frvbf_media_acc_not_aligned (current_cpu);
23317 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23318 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23319 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23320 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23323 DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
23324 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23325 written |= (1 << 9);
23326 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23329 DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
23330 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23331 written |= (1 << 10);
23332 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23337 abuf->written = written;
23342 /* mmulxhs: mmulxhs$pack $FRinti,$FRintj,$ACC40Sk */
23345 SEM_FN_NAME (frvbf,mmulxhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23347 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23348 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23349 int UNUSED written = 0;
23350 IADDR UNUSED pc = abuf->addr;
23351 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23353 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23354 frvbf_media_acc_not_aligned (current_cpu);
23362 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23363 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23364 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23365 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23368 DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
23369 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23370 written |= (1 << 9);
23371 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23374 DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
23375 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23376 written |= (1 << 10);
23377 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23382 abuf->written = written;
23387 /* mmulxhu: mmulxhu$pack $FRinti,$FRintj,$ACC40Sk */
23390 SEM_FN_NAME (frvbf,mmulxhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23392 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23393 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23394 int UNUSED written = 0;
23395 IADDR UNUSED pc = abuf->addr;
23396 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23398 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23399 frvbf_media_acc_not_aligned (current_cpu);
23407 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23408 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23409 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23410 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23413 DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
23414 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23415 written |= (1 << 9);
23416 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23419 DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
23420 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23421 written |= (1 << 10);
23422 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23427 abuf->written = written;
23432 /* cmmulhs: cmmulhs$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
23435 SEM_FN_NAME (frvbf,cmmulhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23437 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23438 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23439 int UNUSED written = 0;
23440 IADDR UNUSED pc = abuf->addr;
23441 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23443 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23444 frvbf_media_acc_not_aligned (current_cpu);
23446 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
23453 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23454 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23455 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23456 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23459 DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
23460 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23461 written |= (1 << 11);
23462 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23465 DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
23466 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23467 written |= (1 << 12);
23468 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23474 abuf->written = written;
23479 /* cmmulhu: cmmulhu$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
23482 SEM_FN_NAME (frvbf,cmmulhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23484 #define FLD(f) abuf->fields.sfmt_cmmachs.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 (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23491 frvbf_media_acc_not_aligned (current_cpu);
23493 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
23500 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23501 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23502 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23503 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23506 DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
23507 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23508 written |= (1 << 11);
23509 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23512 DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
23513 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23514 written |= (1 << 12);
23515 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23521 abuf->written = written;
23526 /* mqmulhs: mqmulhs$pack $FRintieven,$FRintjeven,$ACC40Sk */
23529 SEM_FN_NAME (frvbf,mqmulhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23531 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
23532 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23533 int UNUSED written = 0;
23534 IADDR UNUSED pc = abuf->addr;
23535 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23537 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
23538 frvbf_media_acc_not_aligned (current_cpu);
23540 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
23541 frvbf_media_register_not_aligned (current_cpu);
23549 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23550 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23551 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23552 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23555 DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
23556 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23557 written |= (1 << 13);
23558 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23561 DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
23562 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23563 written |= (1 << 14);
23564 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23567 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23568 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23569 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23570 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23573 DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
23574 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
23575 written |= (1 << 15);
23576 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23579 DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
23580 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
23581 written |= (1 << 16);
23582 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23588 abuf->written = written;
23593 /* mqmulhu: mqmulhu$pack $FRintieven,$FRintjeven,$ACC40Sk */
23596 SEM_FN_NAME (frvbf,mqmulhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23598 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
23599 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23600 int UNUSED written = 0;
23601 IADDR UNUSED pc = abuf->addr;
23602 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23604 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
23605 frvbf_media_acc_not_aligned (current_cpu);
23607 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
23608 frvbf_media_register_not_aligned (current_cpu);
23616 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23617 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23618 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23619 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23622 DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
23623 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23624 written |= (1 << 13);
23625 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23628 DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
23629 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23630 written |= (1 << 14);
23631 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23634 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23635 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23636 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23637 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23640 DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
23641 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
23642 written |= (1 << 15);
23643 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23646 DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
23647 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
23648 written |= (1 << 16);
23649 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23655 abuf->written = written;
23660 /* mqmulxhs: mqmulxhs$pack $FRintieven,$FRintjeven,$ACC40Sk */
23663 SEM_FN_NAME (frvbf,mqmulxhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23665 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
23666 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23667 int UNUSED written = 0;
23668 IADDR UNUSED pc = abuf->addr;
23669 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23671 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
23672 frvbf_media_acc_not_aligned (current_cpu);
23674 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
23675 frvbf_media_register_not_aligned (current_cpu);
23683 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23684 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23685 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23686 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23689 DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
23690 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23691 written |= (1 << 13);
23692 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23695 DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
23696 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23697 written |= (1 << 14);
23698 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23701 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23702 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23703 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23704 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23707 DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
23708 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
23709 written |= (1 << 15);
23710 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23713 DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
23714 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
23715 written |= (1 << 16);
23716 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23722 abuf->written = written;
23727 /* mqmulxhu: mqmulxhu$pack $FRintieven,$FRintjeven,$ACC40Sk */
23730 SEM_FN_NAME (frvbf,mqmulxhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23732 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
23733 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23734 int UNUSED written = 0;
23735 IADDR UNUSED pc = abuf->addr;
23736 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23738 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
23739 frvbf_media_acc_not_aligned (current_cpu);
23741 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
23742 frvbf_media_register_not_aligned (current_cpu);
23750 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23751 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23752 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23753 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23756 DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
23757 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23758 written |= (1 << 13);
23759 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23762 DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
23763 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23764 written |= (1 << 14);
23765 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23768 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23769 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23770 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23771 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23774 DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
23775 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
23776 written |= (1 << 15);
23777 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23780 DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
23781 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
23782 written |= (1 << 16);
23783 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23789 abuf->written = written;
23794 /* cmqmulhs: cmqmulhs$pack $FRintieven,$FRintjeven,$ACC40Sk,$CCi,$cond */
23797 SEM_FN_NAME (frvbf,cmqmulhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23799 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
23800 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23801 int UNUSED written = 0;
23802 IADDR UNUSED pc = abuf->addr;
23803 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23805 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
23806 frvbf_media_acc_not_aligned (current_cpu);
23808 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
23809 frvbf_media_register_not_aligned (current_cpu);
23811 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
23818 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23819 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23820 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23821 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23824 DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
23825 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23826 written |= (1 << 15);
23827 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23830 DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
23831 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23832 written |= (1 << 16);
23833 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23836 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23837 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23838 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23839 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23842 DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
23843 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
23844 written |= (1 << 17);
23845 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23848 DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
23849 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
23850 written |= (1 << 18);
23851 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23858 abuf->written = written;
23863 /* cmqmulhu: cmqmulhu$pack $FRintieven,$FRintjeven,$ACC40Sk,$CCi,$cond */
23866 SEM_FN_NAME (frvbf,cmqmulhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23868 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
23869 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23870 int UNUSED written = 0;
23871 IADDR UNUSED pc = abuf->addr;
23872 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23874 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
23875 frvbf_media_acc_not_aligned (current_cpu);
23877 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
23878 frvbf_media_register_not_aligned (current_cpu);
23880 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
23887 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23888 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23889 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23890 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23893 DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
23894 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23895 written |= (1 << 15);
23896 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23899 DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
23900 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23901 written |= (1 << 16);
23902 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23905 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23906 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23907 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23908 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23911 DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
23912 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
23913 written |= (1 << 17);
23914 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23917 DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
23918 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
23919 written |= (1 << 18);
23920 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23927 abuf->written = written;
23932 /* mmachs: mmachs$pack $FRinti,$FRintj,$ACC40Sk */
23935 SEM_FN_NAME (frvbf,mmachs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23937 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23938 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23939 int UNUSED written = 0;
23940 IADDR UNUSED pc = abuf->addr;
23941 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23943 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23944 frvbf_media_acc_not_aligned (current_cpu);
23952 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23953 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23954 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23955 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23959 tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
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), opval);
23965 written |= (1 << 11);
23966 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23968 frvbf_media_overflow (current_cpu, 8);
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), opval);
23976 written |= (1 << 11);
23977 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23979 frvbf_media_overflow (current_cpu, 8);
23983 DI opval = tmp_tmp;
23984 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23985 written |= (1 << 11);
23986 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23993 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (1))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
23994 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
23997 DI opval = MAKEDI (127, 0xffffffff);
23998 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23999 written |= (1 << 12);
24000 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24002 frvbf_media_overflow (current_cpu, 4);
24005 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24008 DI opval = MAKEDI (0xffffff80, 0);
24009 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24010 written |= (1 << 12);
24011 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24013 frvbf_media_overflow (current_cpu, 4);
24017 DI opval = tmp_tmp;
24018 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24019 written |= (1 << 12);
24020 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24028 abuf->written = written;
24033 /* mmachu: mmachu$pack $FRinti,$FRintj,$ACC40Uk */
24036 SEM_FN_NAME (frvbf,mmachu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24038 #define FLD(f) abuf->fields.sfmt_cmmachu.f
24039 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24040 int UNUSED written = 0;
24041 IADDR UNUSED pc = abuf->addr;
24042 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24044 if (ANDSI (FLD (f_ACC40Uk), SUBSI (2, 1))) {
24045 frvbf_media_acc_not_aligned (current_cpu);
24053 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24054 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24055 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24056 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24060 tmp_tmp = ADDDI (GET_H_ACC40U (FLD (f_ACC40Uk)), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
24061 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24064 UDI opval = MAKEDI (255, 0xffffffff);
24065 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24066 written |= (1 << 11);
24067 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24069 frvbf_media_overflow (current_cpu, 8);
24072 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24075 UDI opval = MAKEDI (0, 0);
24076 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24077 written |= (1 << 11);
24078 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24080 frvbf_media_overflow (current_cpu, 8);
24084 UDI opval = tmp_tmp;
24085 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24086 written |= (1 << 11);
24087 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24094 tmp_tmp = ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (1))), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
24095 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24098 UDI opval = MAKEDI (255, 0xffffffff);
24099 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24100 written |= (1 << 12);
24101 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24103 frvbf_media_overflow (current_cpu, 4);
24106 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24109 UDI opval = MAKEDI (0, 0);
24110 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24111 written |= (1 << 12);
24112 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24114 frvbf_media_overflow (current_cpu, 4);
24118 UDI opval = tmp_tmp;
24119 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24120 written |= (1 << 12);
24121 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24129 abuf->written = written;
24134 /* mmrdhs: mmrdhs$pack $FRinti,$FRintj,$ACC40Sk */
24137 SEM_FN_NAME (frvbf,mmrdhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24139 #define FLD(f) abuf->fields.sfmt_cmmachs.f
24140 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24141 int UNUSED written = 0;
24142 IADDR UNUSED pc = abuf->addr;
24143 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24145 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
24146 frvbf_media_acc_not_aligned (current_cpu);
24154 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24155 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24156 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24157 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24161 tmp_tmp = SUBDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
24162 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24165 DI opval = MAKEDI (127, 0xffffffff);
24166 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24167 written |= (1 << 11);
24168 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24170 frvbf_media_overflow (current_cpu, 8);
24173 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24176 DI opval = MAKEDI (0xffffff80, 0);
24177 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24178 written |= (1 << 11);
24179 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24181 frvbf_media_overflow (current_cpu, 8);
24185 DI opval = tmp_tmp;
24186 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24187 written |= (1 << 11);
24188 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24195 tmp_tmp = SUBDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (1))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
24196 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24199 DI opval = MAKEDI (127, 0xffffffff);
24200 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24201 written |= (1 << 12);
24202 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24204 frvbf_media_overflow (current_cpu, 4);
24207 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24210 DI opval = MAKEDI (0xffffff80, 0);
24211 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24212 written |= (1 << 12);
24213 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24215 frvbf_media_overflow (current_cpu, 4);
24219 DI opval = tmp_tmp;
24220 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24221 written |= (1 << 12);
24222 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24230 abuf->written = written;
24235 /* mmrdhu: mmrdhu$pack $FRinti,$FRintj,$ACC40Uk */
24238 SEM_FN_NAME (frvbf,mmrdhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24240 #define FLD(f) abuf->fields.sfmt_cmmachu.f
24241 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24242 int UNUSED written = 0;
24243 IADDR UNUSED pc = abuf->addr;
24244 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24246 if (ANDSI (FLD (f_ACC40Uk), SUBSI (2, 1))) {
24247 frvbf_media_acc_not_aligned (current_cpu);
24255 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24256 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24257 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24258 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24262 tmp_tmp = SUBDI (GET_H_ACC40U (FLD (f_ACC40Uk)), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
24263 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24266 UDI opval = MAKEDI (255, 0xffffffff);
24267 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24268 written |= (1 << 11);
24269 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24271 frvbf_media_overflow (current_cpu, 8);
24274 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24277 UDI opval = MAKEDI (0, 0);
24278 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24279 written |= (1 << 11);
24280 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24282 frvbf_media_overflow (current_cpu, 8);
24286 UDI opval = tmp_tmp;
24287 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24288 written |= (1 << 11);
24289 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24296 tmp_tmp = SUBDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (1))), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
24297 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24300 UDI opval = MAKEDI (255, 0xffffffff);
24301 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24302 written |= (1 << 12);
24303 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24305 frvbf_media_overflow (current_cpu, 4);
24308 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24311 UDI opval = MAKEDI (0, 0);
24312 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24313 written |= (1 << 12);
24314 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24316 frvbf_media_overflow (current_cpu, 4);
24320 UDI opval = tmp_tmp;
24321 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24322 written |= (1 << 12);
24323 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24331 abuf->written = written;
24336 /* cmmachs: cmmachs$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
24339 SEM_FN_NAME (frvbf,cmmachs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24341 #define FLD(f) abuf->fields.sfmt_cmmachs.f
24342 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24343 int UNUSED written = 0;
24344 IADDR UNUSED pc = abuf->addr;
24345 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24347 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
24348 frvbf_media_acc_not_aligned (current_cpu);
24350 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
24357 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24358 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24359 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24360 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24364 tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
24365 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24368 DI opval = MAKEDI (127, 0xffffffff);
24369 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24370 written |= (1 << 13);
24371 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24373 frvbf_media_overflow (current_cpu, 8);
24376 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24379 DI opval = MAKEDI (0xffffff80, 0);
24380 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24381 written |= (1 << 13);
24382 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24384 frvbf_media_overflow (current_cpu, 8);
24388 DI opval = tmp_tmp;
24389 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24390 written |= (1 << 13);
24391 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24398 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (1))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
24399 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24402 DI opval = MAKEDI (127, 0xffffffff);
24403 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24404 written |= (1 << 14);
24405 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24407 frvbf_media_overflow (current_cpu, 4);
24410 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24413 DI opval = MAKEDI (0xffffff80, 0);
24414 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24415 written |= (1 << 14);
24416 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24418 frvbf_media_overflow (current_cpu, 4);
24422 DI opval = tmp_tmp;
24423 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24424 written |= (1 << 14);
24425 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24434 abuf->written = written;
24439 /* cmmachu: cmmachu$pack $FRinti,$FRintj,$ACC40Uk,$CCi,$cond */
24442 SEM_FN_NAME (frvbf,cmmachu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24444 #define FLD(f) abuf->fields.sfmt_cmmachu.f
24445 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24446 int UNUSED written = 0;
24447 IADDR UNUSED pc = abuf->addr;
24448 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24450 if (ANDSI (FLD (f_ACC40Uk), SUBSI (2, 1))) {
24451 frvbf_media_acc_not_aligned (current_cpu);
24453 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
24460 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24461 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24462 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24463 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24467 tmp_tmp = ADDDI (GET_H_ACC40U (FLD (f_ACC40Uk)), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
24468 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24471 UDI opval = MAKEDI (255, 0xffffffff);
24472 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24473 written |= (1 << 13);
24474 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24476 frvbf_media_overflow (current_cpu, 8);
24479 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24482 UDI opval = MAKEDI (0, 0);
24483 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24484 written |= (1 << 13);
24485 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24487 frvbf_media_overflow (current_cpu, 8);
24491 UDI opval = tmp_tmp;
24492 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24493 written |= (1 << 13);
24494 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24501 tmp_tmp = ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (1))), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
24502 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24505 UDI opval = MAKEDI (255, 0xffffffff);
24506 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24507 written |= (1 << 14);
24508 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24510 frvbf_media_overflow (current_cpu, 4);
24513 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24516 UDI opval = MAKEDI (0, 0);
24517 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24518 written |= (1 << 14);
24519 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24521 frvbf_media_overflow (current_cpu, 4);
24525 UDI opval = tmp_tmp;
24526 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24527 written |= (1 << 14);
24528 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24537 abuf->written = written;
24542 /* mqmachs: mqmachs$pack $FRintieven,$FRintjeven,$ACC40Sk */
24545 SEM_FN_NAME (frvbf,mqmachs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24547 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
24548 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24549 int UNUSED written = 0;
24550 IADDR UNUSED pc = abuf->addr;
24551 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24553 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
24554 frvbf_media_acc_not_aligned (current_cpu);
24556 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
24557 frvbf_media_register_not_aligned (current_cpu);
24565 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24566 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24567 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24568 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24572 tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
24573 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24576 DI opval = MAKEDI (127, 0xffffffff);
24577 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24578 written |= (1 << 17);
24579 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24581 frvbf_media_overflow (current_cpu, 8);
24584 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24587 DI opval = MAKEDI (0xffffff80, 0);
24588 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24589 written |= (1 << 17);
24590 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24592 frvbf_media_overflow (current_cpu, 8);
24596 DI opval = tmp_tmp;
24597 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24598 written |= (1 << 17);
24599 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24606 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (1))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
24607 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24610 DI opval = MAKEDI (127, 0xffffffff);
24611 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24612 written |= (1 << 18);
24613 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24615 frvbf_media_overflow (current_cpu, 4);
24618 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24621 DI opval = MAKEDI (0xffffff80, 0);
24622 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24623 written |= (1 << 18);
24624 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24626 frvbf_media_overflow (current_cpu, 4);
24630 DI opval = tmp_tmp;
24631 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24632 written |= (1 << 18);
24633 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24639 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24640 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24641 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24642 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24646 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (2))), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
24647 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24650 DI opval = MAKEDI (127, 0xffffffff);
24651 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
24652 written |= (1 << 19);
24653 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24655 frvbf_media_overflow (current_cpu, 2);
24658 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24661 DI opval = MAKEDI (0xffffff80, 0);
24662 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
24663 written |= (1 << 19);
24664 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24666 frvbf_media_overflow (current_cpu, 2);
24670 DI opval = tmp_tmp;
24671 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
24672 written |= (1 << 19);
24673 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24680 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (3))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
24681 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24684 DI opval = MAKEDI (127, 0xffffffff);
24685 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
24686 written |= (1 << 20);
24687 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24689 frvbf_media_overflow (current_cpu, 1);
24692 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24695 DI opval = MAKEDI (0xffffff80, 0);
24696 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
24697 written |= (1 << 20);
24698 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24700 frvbf_media_overflow (current_cpu, 1);
24704 DI opval = tmp_tmp;
24705 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
24706 written |= (1 << 20);
24707 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24716 abuf->written = written;
24721 /* mqmachu: mqmachu$pack $FRintieven,$FRintjeven,$ACC40Uk */
24724 SEM_FN_NAME (frvbf,mqmachu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24726 #define FLD(f) abuf->fields.sfmt_cmqmachu.f
24727 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24728 int UNUSED written = 0;
24729 IADDR UNUSED pc = abuf->addr;
24730 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24732 if (ANDSI (FLD (f_ACC40Uk), SUBSI (4, 1))) {
24733 frvbf_media_acc_not_aligned (current_cpu);
24735 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
24736 frvbf_media_register_not_aligned (current_cpu);
24744 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24745 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24746 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24747 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24751 tmp_tmp = ADDDI (GET_H_ACC40U (FLD (f_ACC40Uk)), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
24752 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24755 UDI opval = MAKEDI (255, 0xffffffff);
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);
24760 frvbf_media_overflow (current_cpu, 8);
24763 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24766 UDI opval = MAKEDI (0, 0);
24767 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24768 written |= (1 << 17);
24769 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24771 frvbf_media_overflow (current_cpu, 8);
24775 UDI opval = tmp_tmp;
24776 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24777 written |= (1 << 17);
24778 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24785 tmp_tmp = ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (1))), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
24786 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24789 UDI opval = MAKEDI (255, 0xffffffff);
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);
24794 frvbf_media_overflow (current_cpu, 4);
24797 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24800 UDI opval = MAKEDI (0, 0);
24801 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24802 written |= (1 << 18);
24803 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24805 frvbf_media_overflow (current_cpu, 4);
24809 UDI opval = tmp_tmp;
24810 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24811 written |= (1 << 18);
24812 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24818 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24819 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24820 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24821 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24825 tmp_tmp = ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (2))), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
24826 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24829 UDI opval = MAKEDI (255, 0xffffffff);
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);
24834 frvbf_media_overflow (current_cpu, 2);
24837 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24840 UDI opval = MAKEDI (0, 0);
24841 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (2)), opval);
24842 written |= (1 << 19);
24843 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24845 frvbf_media_overflow (current_cpu, 2);
24849 UDI opval = tmp_tmp;
24850 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (2)), opval);
24851 written |= (1 << 19);
24852 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24859 tmp_tmp = ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (3))), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
24860 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24863 UDI opval = MAKEDI (255, 0xffffffff);
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);
24868 frvbf_media_overflow (current_cpu, 1);
24871 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24874 UDI opval = MAKEDI (0, 0);
24875 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (3)), opval);
24876 written |= (1 << 20);
24877 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24879 frvbf_media_overflow (current_cpu, 1);
24883 UDI opval = tmp_tmp;
24884 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (3)), opval);
24885 written |= (1 << 20);
24886 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24895 abuf->written = written;
24900 /* cmqmachs: cmqmachs$pack $FRintieven,$FRintjeven,$ACC40Sk,$CCi,$cond */
24903 SEM_FN_NAME (frvbf,cmqmachs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24905 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
24906 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24907 int UNUSED written = 0;
24908 IADDR UNUSED pc = abuf->addr;
24909 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24911 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
24912 frvbf_media_acc_not_aligned (current_cpu);
24914 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
24915 frvbf_media_register_not_aligned (current_cpu);
24917 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
24924 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24925 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24926 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24927 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24931 tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
24932 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24935 DI opval = MAKEDI (127, 0xffffffff);
24936 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24937 written |= (1 << 19);
24938 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24940 frvbf_media_overflow (current_cpu, 8);
24943 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24946 DI opval = MAKEDI (0xffffff80, 0);
24947 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24948 written |= (1 << 19);
24949 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24951 frvbf_media_overflow (current_cpu, 8);
24955 DI opval = tmp_tmp;
24956 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24957 written |= (1 << 19);
24958 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24965 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (1))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
24966 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24969 DI opval = MAKEDI (127, 0xffffffff);
24970 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24971 written |= (1 << 20);
24972 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24974 frvbf_media_overflow (current_cpu, 4);
24977 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24980 DI opval = MAKEDI (0xffffff80, 0);
24981 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24982 written |= (1 << 20);
24983 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24985 frvbf_media_overflow (current_cpu, 4);
24989 DI opval = tmp_tmp;
24990 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24991 written |= (1 << 20);
24992 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24998 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24999 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25000 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25001 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25005 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (2))), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
25006 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25009 DI opval = MAKEDI (127, 0xffffffff);
25010 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25011 written |= (1 << 21);
25012 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25014 frvbf_media_overflow (current_cpu, 2);
25017 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25020 DI opval = MAKEDI (0xffffff80, 0);
25021 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25022 written |= (1 << 21);
25023 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25025 frvbf_media_overflow (current_cpu, 2);
25029 DI opval = tmp_tmp;
25030 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25031 written |= (1 << 21);
25032 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25039 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (3))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
25040 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25043 DI opval = MAKEDI (127, 0xffffffff);
25044 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25045 written |= (1 << 22);
25046 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25048 frvbf_media_overflow (current_cpu, 1);
25051 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25054 DI opval = MAKEDI (0xffffff80, 0);
25055 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25056 written |= (1 << 22);
25057 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25059 frvbf_media_overflow (current_cpu, 1);
25063 DI opval = tmp_tmp;
25064 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25065 written |= (1 << 22);
25066 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25076 abuf->written = written;
25081 /* cmqmachu: cmqmachu$pack $FRintieven,$FRintjeven,$ACC40Uk,$CCi,$cond */
25084 SEM_FN_NAME (frvbf,cmqmachu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
25086 #define FLD(f) abuf->fields.sfmt_cmqmachu.f
25087 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
25088 int UNUSED written = 0;
25089 IADDR UNUSED pc = abuf->addr;
25090 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
25092 if (ANDSI (FLD (f_ACC40Uk), SUBSI (4, 1))) {
25093 frvbf_media_acc_not_aligned (current_cpu);
25095 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
25096 frvbf_media_register_not_aligned (current_cpu);
25098 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
25105 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25106 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25107 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25108 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25112 tmp_tmp = ADDDI (GET_H_ACC40U (FLD (f_ACC40Uk)), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
25113 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
25116 UDI opval = MAKEDI (255, 0xffffffff);
25117 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
25118 written |= (1 << 19);
25119 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25121 frvbf_media_overflow (current_cpu, 8);
25124 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
25127 UDI opval = MAKEDI (0, 0);
25128 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
25129 written |= (1 << 19);
25130 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25132 frvbf_media_overflow (current_cpu, 8);
25136 UDI opval = tmp_tmp;
25137 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
25138 written |= (1 << 19);
25139 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25146 tmp_tmp = ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (1))), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
25147 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
25150 UDI opval = MAKEDI (255, 0xffffffff);
25151 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
25152 written |= (1 << 20);
25153 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25155 frvbf_media_overflow (current_cpu, 4);
25158 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
25161 UDI opval = MAKEDI (0, 0);
25162 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
25163 written |= (1 << 20);
25164 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25166 frvbf_media_overflow (current_cpu, 4);
25170 UDI opval = tmp_tmp;
25171 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
25172 written |= (1 << 20);
25173 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25179 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25180 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25181 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25182 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25186 tmp_tmp = ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (2))), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
25187 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
25190 UDI opval = MAKEDI (255, 0xffffffff);
25191 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (2)), opval);
25192 written |= (1 << 21);
25193 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25195 frvbf_media_overflow (current_cpu, 2);
25198 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
25201 UDI opval = MAKEDI (0, 0);
25202 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (2)), opval);
25203 written |= (1 << 21);
25204 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25206 frvbf_media_overflow (current_cpu, 2);
25210 UDI opval = tmp_tmp;
25211 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (2)), opval);
25212 written |= (1 << 21);
25213 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25220 tmp_tmp = ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (3))), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
25221 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
25224 UDI opval = MAKEDI (255, 0xffffffff);
25225 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (3)), opval);
25226 written |= (1 << 22);
25227 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25229 frvbf_media_overflow (current_cpu, 1);
25232 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
25235 UDI opval = MAKEDI (0, 0);
25236 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (3)), opval);
25237 written |= (1 << 22);
25238 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25240 frvbf_media_overflow (current_cpu, 1);
25244 UDI opval = tmp_tmp;
25245 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (3)), opval);
25246 written |= (1 << 22);
25247 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25257 abuf->written = written;
25262 /* mqxmachs: mqxmachs$pack $FRintieven,$FRintjeven,$ACC40Sk */
25265 SEM_FN_NAME (frvbf,mqxmachs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
25267 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
25268 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
25269 int UNUSED written = 0;
25270 IADDR UNUSED pc = abuf->addr;
25271 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
25273 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
25274 frvbf_media_acc_not_aligned (current_cpu);
25276 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
25277 frvbf_media_register_not_aligned (current_cpu);
25285 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25286 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25287 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25288 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25292 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (2))), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
25293 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25296 DI opval = MAKEDI (127, 0xffffffff);
25297 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25298 written |= (1 << 19);
25299 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25301 frvbf_media_overflow (current_cpu, 2);
25304 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25307 DI opval = MAKEDI (0xffffff80, 0);
25308 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25309 written |= (1 << 19);
25310 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25312 frvbf_media_overflow (current_cpu, 2);
25316 DI opval = tmp_tmp;
25317 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25318 written |= (1 << 19);
25319 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25326 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (3))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
25327 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25330 DI opval = MAKEDI (127, 0xffffffff);
25331 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25332 written |= (1 << 20);
25333 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25335 frvbf_media_overflow (current_cpu, 1);
25338 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25341 DI opval = MAKEDI (0xffffff80, 0);
25342 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25343 written |= (1 << 20);
25344 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25346 frvbf_media_overflow (current_cpu, 1);
25350 DI opval = tmp_tmp;
25351 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25352 written |= (1 << 20);
25353 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25359 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25360 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25361 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25362 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25366 tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
25367 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25370 DI opval = MAKEDI (127, 0xffffffff);
25371 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25372 written |= (1 << 17);
25373 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25375 frvbf_media_overflow (current_cpu, 8);
25378 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25381 DI opval = MAKEDI (0xffffff80, 0);
25382 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25383 written |= (1 << 17);
25384 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25386 frvbf_media_overflow (current_cpu, 8);
25390 DI opval = tmp_tmp;
25391 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25392 written |= (1 << 17);
25393 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25400 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (1))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
25401 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25404 DI opval = MAKEDI (127, 0xffffffff);
25405 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25406 written |= (1 << 18);
25407 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25409 frvbf_media_overflow (current_cpu, 4);
25412 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25415 DI opval = MAKEDI (0xffffff80, 0);
25416 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25417 written |= (1 << 18);
25418 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25420 frvbf_media_overflow (current_cpu, 4);
25424 DI opval = tmp_tmp;
25425 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25426 written |= (1 << 18);
25427 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25436 abuf->written = written;
25441 /* mqxmacxhs: mqxmacxhs$pack $FRintieven,$FRintjeven,$ACC40Sk */
25444 SEM_FN_NAME (frvbf,mqxmacxhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
25446 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
25447 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
25448 int UNUSED written = 0;
25449 IADDR UNUSED pc = abuf->addr;
25450 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
25452 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
25453 frvbf_media_acc_not_aligned (current_cpu);
25455 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
25456 frvbf_media_register_not_aligned (current_cpu);
25464 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25465 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25466 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25467 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25471 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (2))), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo)));
25472 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25475 DI opval = MAKEDI (127, 0xffffffff);
25476 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25477 written |= (1 << 19);
25478 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25480 frvbf_media_overflow (current_cpu, 2);
25483 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25486 DI opval = MAKEDI (0xffffff80, 0);
25487 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25488 written |= (1 << 19);
25489 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25491 frvbf_media_overflow (current_cpu, 2);
25495 DI opval = tmp_tmp;
25496 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25497 written |= (1 << 19);
25498 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25505 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (3))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi)));
25506 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25509 DI opval = MAKEDI (127, 0xffffffff);
25510 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25511 written |= (1 << 20);
25512 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25514 frvbf_media_overflow (current_cpu, 1);
25517 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25520 DI opval = MAKEDI (0xffffff80, 0);
25521 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25522 written |= (1 << 20);
25523 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25525 frvbf_media_overflow (current_cpu, 1);
25529 DI opval = tmp_tmp;
25530 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25531 written |= (1 << 20);
25532 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25538 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25539 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25540 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25541 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25545 tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo)));
25546 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25549 DI opval = MAKEDI (127, 0xffffffff);
25550 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25551 written |= (1 << 17);
25552 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25554 frvbf_media_overflow (current_cpu, 8);
25557 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25560 DI opval = MAKEDI (0xffffff80, 0);
25561 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25562 written |= (1 << 17);
25563 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25565 frvbf_media_overflow (current_cpu, 8);
25569 DI opval = tmp_tmp;
25570 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25571 written |= (1 << 17);
25572 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25579 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (1))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi)));
25580 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25583 DI opval = MAKEDI (127, 0xffffffff);
25584 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25585 written |= (1 << 18);
25586 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25588 frvbf_media_overflow (current_cpu, 4);
25591 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25594 DI opval = MAKEDI (0xffffff80, 0);
25595 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25596 written |= (1 << 18);
25597 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25599 frvbf_media_overflow (current_cpu, 4);
25603 DI opval = tmp_tmp;
25604 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25605 written |= (1 << 18);
25606 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25615 abuf->written = written;
25620 /* mqmacxhs: mqmacxhs$pack $FRintieven,$FRintjeven,$ACC40Sk */
25623 SEM_FN_NAME (frvbf,mqmacxhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
25625 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
25626 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
25627 int UNUSED written = 0;
25628 IADDR UNUSED pc = abuf->addr;
25629 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
25631 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
25632 frvbf_media_acc_not_aligned (current_cpu);
25634 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
25635 frvbf_media_register_not_aligned (current_cpu);
25643 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25644 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25645 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25646 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25650 tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo)));
25651 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25654 DI opval = MAKEDI (127, 0xffffffff);
25655 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25656 written |= (1 << 17);
25657 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25659 frvbf_media_overflow (current_cpu, 8);
25662 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25665 DI opval = MAKEDI (0xffffff80, 0);
25666 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25667 written |= (1 << 17);
25668 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25670 frvbf_media_overflow (current_cpu, 8);
25674 DI opval = tmp_tmp;
25675 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25676 written |= (1 << 17);
25677 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25684 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (1))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi)));
25685 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25688 DI opval = MAKEDI (127, 0xffffffff);
25689 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25690 written |= (1 << 18);
25691 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25693 frvbf_media_overflow (current_cpu, 4);
25696 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25699 DI opval = MAKEDI (0xffffff80, 0);
25700 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25701 written |= (1 << 18);
25702 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25704 frvbf_media_overflow (current_cpu, 4);
25708 DI opval = tmp_tmp;
25709 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25710 written |= (1 << 18);
25711 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25717 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25718 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25719 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25720 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25724 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (2))), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo)));
25725 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25728 DI opval = MAKEDI (127, 0xffffffff);
25729 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25730 written |= (1 << 19);
25731 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25733 frvbf_media_overflow (current_cpu, 2);
25736 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25739 DI opval = MAKEDI (0xffffff80, 0);
25740 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25741 written |= (1 << 19);
25742 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25744 frvbf_media_overflow (current_cpu, 2);
25748 DI opval = tmp_tmp;
25749 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25750 written |= (1 << 19);
25751 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25758 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (3))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi)));
25759 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25762 DI opval = MAKEDI (127, 0xffffffff);
25763 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25764 written |= (1 << 20);
25765 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25767 frvbf_media_overflow (current_cpu, 1);
25770 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25773 DI opval = MAKEDI (0xffffff80, 0);
25774 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25775 written |= (1 << 20);
25776 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25778 frvbf_media_overflow (current_cpu, 1);
25782 DI opval = tmp_tmp;
25783 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25784 written |= (1 << 20);
25785 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25794 abuf->written = written;
25799 /* mcpxrs: mcpxrs$pack $FRinti,$FRintj,$ACC40Sk */
25802 SEM_FN_NAME (frvbf,mcpxrs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
25804 #define FLD(f) abuf->fields.sfmt_cmmachs.f
25805 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
25806 int UNUSED written = 0;
25807 IADDR UNUSED pc = abuf->addr;
25808 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
25816 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25817 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25818 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25819 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25824 tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
25825 tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
25826 tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
25827 if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
25830 DI opval = MAKEDI (127, 0xffffffff);
25831 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25832 written |= (1 << 8);
25833 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25835 frvbf_media_overflow (current_cpu, 8);
25838 if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
25841 DI opval = MAKEDI (0xffffff80, 0);
25842 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25843 written |= (1 << 8);
25844 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25846 frvbf_media_overflow (current_cpu, 8);
25850 DI opval = tmp_tmp1;
25851 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25852 written |= (1 << 8);
25853 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25860 abuf->written = written;
25865 /* mcpxru: mcpxru$pack $FRinti,$FRintj,$ACC40Sk */
25868 SEM_FN_NAME (frvbf,mcpxru) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
25870 #define FLD(f) abuf->fields.sfmt_cmmachs.f
25871 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
25872 int UNUSED written = 0;
25873 IADDR UNUSED pc = abuf->addr;
25874 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
25882 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25883 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25884 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25885 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25890 tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
25891 tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
25892 tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
25893 if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
25896 DI opval = MAKEDI (255, 0xffffffff);
25897 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25898 written |= (1 << 8);
25899 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25901 frvbf_media_overflow (current_cpu, 8);
25904 if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
25907 DI opval = MAKEDI (0, 0);
25908 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25909 written |= (1 << 8);
25910 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25912 frvbf_media_overflow (current_cpu, 8);
25916 DI opval = tmp_tmp1;
25917 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25918 written |= (1 << 8);
25919 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25926 abuf->written = written;
25931 /* mcpxis: mcpxis$pack $FRinti,$FRintj,$ACC40Sk */
25934 SEM_FN_NAME (frvbf,mcpxis) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
25936 #define FLD(f) abuf->fields.sfmt_cmmachs.f
25937 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
25938 int UNUSED written = 0;
25939 IADDR UNUSED pc = abuf->addr;
25940 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
25948 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25949 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25950 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25951 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25956 tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
25957 tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
25958 tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
25959 if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
25962 DI opval = MAKEDI (127, 0xffffffff);
25963 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25964 written |= (1 << 8);
25965 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25967 frvbf_media_overflow (current_cpu, 8);
25970 if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
25973 DI opval = MAKEDI (0xffffff80, 0);
25974 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25975 written |= (1 << 8);
25976 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25978 frvbf_media_overflow (current_cpu, 8);
25982 DI opval = tmp_tmp1;
25983 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25984 written |= (1 << 8);
25985 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25992 abuf->written = written;
25997 /* mcpxiu: mcpxiu$pack $FRinti,$FRintj,$ACC40Sk */
26000 SEM_FN_NAME (frvbf,mcpxiu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26002 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26003 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26004 int UNUSED written = 0;
26005 IADDR UNUSED pc = abuf->addr;
26006 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26014 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26015 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26016 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26017 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26022 tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
26023 tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
26024 tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
26025 if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
26028 DI opval = MAKEDI (255, 0xffffffff);
26029 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26030 written |= (1 << 8);
26031 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26033 frvbf_media_overflow (current_cpu, 8);
26036 if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
26039 DI opval = MAKEDI (0, 0);
26040 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26041 written |= (1 << 8);
26042 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26044 frvbf_media_overflow (current_cpu, 8);
26048 DI opval = tmp_tmp1;
26049 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26050 written |= (1 << 8);
26051 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26058 abuf->written = written;
26063 /* cmcpxrs: cmcpxrs$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
26066 SEM_FN_NAME (frvbf,cmcpxrs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26068 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26069 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26070 int UNUSED written = 0;
26071 IADDR UNUSED pc = abuf->addr;
26072 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26074 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
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 << 10);
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 << 10);
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 << 10);
26118 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26126 abuf->written = written;
26131 /* cmcpxru: cmcpxru$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
26134 SEM_FN_NAME (frvbf,cmcpxru) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26136 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26137 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26138 int UNUSED written = 0;
26139 IADDR UNUSED pc = abuf->addr;
26140 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26142 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
26149 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26150 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26151 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26152 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26157 tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
26158 tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
26159 tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26160 if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
26163 DI opval = MAKEDI (255, 0xffffffff);
26164 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26165 written |= (1 << 10);
26166 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26168 frvbf_media_overflow (current_cpu, 8);
26171 if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
26174 DI opval = MAKEDI (0, 0);
26175 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26176 written |= (1 << 10);
26177 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26179 frvbf_media_overflow (current_cpu, 8);
26183 DI opval = tmp_tmp1;
26184 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26185 written |= (1 << 10);
26186 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26194 abuf->written = written;
26199 /* cmcpxis: cmcpxis$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
26202 SEM_FN_NAME (frvbf,cmcpxis) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26204 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26205 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26206 int UNUSED written = 0;
26207 IADDR UNUSED pc = abuf->addr;
26208 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26210 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
26217 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26218 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26219 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26220 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26225 tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
26226 tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
26227 tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
26228 if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26231 DI opval = MAKEDI (127, 0xffffffff);
26232 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26233 written |= (1 << 10);
26234 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26236 frvbf_media_overflow (current_cpu, 8);
26239 if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26242 DI opval = MAKEDI (0xffffff80, 0);
26243 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26244 written |= (1 << 10);
26245 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26247 frvbf_media_overflow (current_cpu, 8);
26251 DI opval = tmp_tmp1;
26252 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26253 written |= (1 << 10);
26254 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26262 abuf->written = written;
26267 /* cmcpxiu: cmcpxiu$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
26270 SEM_FN_NAME (frvbf,cmcpxiu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26272 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26273 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26274 int UNUSED written = 0;
26275 IADDR UNUSED pc = abuf->addr;
26276 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26278 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
26285 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26286 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26287 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26288 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26293 tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
26294 tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
26295 tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
26296 if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
26299 DI opval = MAKEDI (255, 0xffffffff);
26300 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26301 written |= (1 << 10);
26302 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26304 frvbf_media_overflow (current_cpu, 8);
26307 if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
26310 DI opval = MAKEDI (0, 0);
26311 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26312 written |= (1 << 10);
26313 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26315 frvbf_media_overflow (current_cpu, 8);
26319 DI opval = tmp_tmp1;
26320 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26321 written |= (1 << 10);
26322 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26330 abuf->written = written;
26335 /* mqcpxrs: mqcpxrs$pack $FRintieven,$FRintjeven,$ACC40Sk */
26338 SEM_FN_NAME (frvbf,mqcpxrs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26340 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
26341 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26342 int UNUSED written = 0;
26343 IADDR UNUSED pc = abuf->addr;
26344 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26346 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
26347 frvbf_media_acc_not_aligned (current_cpu);
26349 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
26350 frvbf_media_register_not_aligned (current_cpu);
26358 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26359 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26360 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26361 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26366 tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
26367 tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
26368 tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26369 if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26372 DI opval = MAKEDI (127, 0xffffffff);
26373 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26374 written |= (1 << 13);
26375 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26377 frvbf_media_overflow (current_cpu, 8);
26380 if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26383 DI opval = MAKEDI (0xffffff80, 0);
26384 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26385 written |= (1 << 13);
26386 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26388 frvbf_media_overflow (current_cpu, 8);
26392 DI opval = tmp_tmp1;
26393 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26394 written |= (1 << 13);
26395 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26401 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26402 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26403 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26404 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26409 tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
26410 tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
26411 tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26412 if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26415 DI opval = MAKEDI (127, 0xffffffff);
26416 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26417 written |= (1 << 14);
26418 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26420 frvbf_media_overflow (current_cpu, 4);
26423 if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26426 DI opval = MAKEDI (0xffffff80, 0);
26427 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26428 written |= (1 << 14);
26429 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26431 frvbf_media_overflow (current_cpu, 4);
26435 DI opval = tmp_tmp1;
26436 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26437 written |= (1 << 14);
26438 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26447 abuf->written = written;
26452 /* mqcpxru: mqcpxru$pack $FRintieven,$FRintjeven,$ACC40Sk */
26455 SEM_FN_NAME (frvbf,mqcpxru) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26457 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
26458 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26459 int UNUSED written = 0;
26460 IADDR UNUSED pc = abuf->addr;
26461 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26463 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
26464 frvbf_media_acc_not_aligned (current_cpu);
26466 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
26467 frvbf_media_register_not_aligned (current_cpu);
26475 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26476 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26477 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26478 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26483 tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
26484 tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
26485 tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26486 if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
26489 DI opval = MAKEDI (255, 0xffffffff);
26490 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26491 written |= (1 << 13);
26492 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26494 frvbf_media_overflow (current_cpu, 8);
26497 if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
26500 DI opval = MAKEDI (0, 0);
26501 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26502 written |= (1 << 13);
26503 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26505 frvbf_media_overflow (current_cpu, 8);
26509 DI opval = tmp_tmp1;
26510 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26511 written |= (1 << 13);
26512 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26518 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26519 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26520 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26521 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26526 tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
26527 tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
26528 tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26529 if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
26532 DI opval = MAKEDI (255, 0xffffffff);
26533 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26534 written |= (1 << 14);
26535 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26537 frvbf_media_overflow (current_cpu, 4);
26540 if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
26543 DI opval = MAKEDI (0, 0);
26544 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26545 written |= (1 << 14);
26546 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26548 frvbf_media_overflow (current_cpu, 4);
26552 DI opval = tmp_tmp1;
26553 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26554 written |= (1 << 14);
26555 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26564 abuf->written = written;
26569 /* mqcpxis: mqcpxis$pack $FRintieven,$FRintjeven,$ACC40Sk */
26572 SEM_FN_NAME (frvbf,mqcpxis) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26574 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
26575 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26576 int UNUSED written = 0;
26577 IADDR UNUSED pc = abuf->addr;
26578 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26580 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
26581 frvbf_media_acc_not_aligned (current_cpu);
26583 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
26584 frvbf_media_register_not_aligned (current_cpu);
26592 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26593 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26594 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26595 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26600 tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
26601 tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
26602 tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
26603 if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26606 DI opval = MAKEDI (127, 0xffffffff);
26607 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26608 written |= (1 << 13);
26609 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26611 frvbf_media_overflow (current_cpu, 8);
26614 if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26617 DI opval = MAKEDI (0xffffff80, 0);
26618 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26619 written |= (1 << 13);
26620 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26622 frvbf_media_overflow (current_cpu, 8);
26626 DI opval = tmp_tmp1;
26627 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26628 written |= (1 << 13);
26629 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26635 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26636 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26637 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26638 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26643 tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
26644 tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
26645 tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
26646 if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26649 DI opval = MAKEDI (127, 0xffffffff);
26650 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26651 written |= (1 << 14);
26652 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26654 frvbf_media_overflow (current_cpu, 4);
26657 if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26660 DI opval = MAKEDI (0xffffff80, 0);
26661 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26662 written |= (1 << 14);
26663 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26665 frvbf_media_overflow (current_cpu, 4);
26669 DI opval = tmp_tmp1;
26670 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26671 written |= (1 << 14);
26672 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26681 abuf->written = written;
26686 /* mqcpxiu: mqcpxiu$pack $FRintieven,$FRintjeven,$ACC40Sk */
26689 SEM_FN_NAME (frvbf,mqcpxiu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26691 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
26692 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26693 int UNUSED written = 0;
26694 IADDR UNUSED pc = abuf->addr;
26695 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26697 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
26698 frvbf_media_acc_not_aligned (current_cpu);
26700 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
26701 frvbf_media_register_not_aligned (current_cpu);
26709 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26710 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26711 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26712 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26717 tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
26718 tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
26719 tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
26720 if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
26723 DI opval = MAKEDI (255, 0xffffffff);
26724 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26725 written |= (1 << 13);
26726 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26728 frvbf_media_overflow (current_cpu, 8);
26731 if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
26734 DI opval = MAKEDI (0, 0);
26735 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26736 written |= (1 << 13);
26737 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26739 frvbf_media_overflow (current_cpu, 8);
26743 DI opval = tmp_tmp1;
26744 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26745 written |= (1 << 13);
26746 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26752 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26753 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26754 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26755 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26760 tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
26761 tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
26762 tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
26763 if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
26766 DI opval = MAKEDI (255, 0xffffffff);
26767 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26768 written |= (1 << 14);
26769 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26771 frvbf_media_overflow (current_cpu, 4);
26774 if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
26777 DI opval = MAKEDI (0, 0);
26778 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26779 written |= (1 << 14);
26780 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26782 frvbf_media_overflow (current_cpu, 4);
26786 DI opval = tmp_tmp1;
26787 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26788 written |= (1 << 14);
26789 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26798 abuf->written = written;
26803 /* mexpdhw: mexpdhw$pack $FRinti,$u6,$FRintk */
26806 SEM_FN_NAME (frvbf,mexpdhw) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26808 #define FLD(f) abuf->fields.sfmt_cmexpdhw.f
26809 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26810 int UNUSED written = 0;
26811 IADDR UNUSED pc = abuf->addr;
26812 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26816 if (ANDSI (FLD (f_u6), 1)) {
26817 tmp_tmp = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
26819 tmp_tmp = GET_H_FR_HI (((FLD (f_FRi)) + (0)));
26822 UHI opval = tmp_tmp;
26823 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
26824 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
26827 UHI opval = tmp_tmp;
26828 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
26829 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
26837 /* cmexpdhw: cmexpdhw$pack $FRinti,$u6,$FRintk,$CCi,$cond */
26840 SEM_FN_NAME (frvbf,cmexpdhw) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26842 #define FLD(f) abuf->fields.sfmt_cmexpdhw.f
26843 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26844 int UNUSED written = 0;
26845 IADDR UNUSED pc = abuf->addr;
26846 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26848 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
26851 if (ANDSI (FLD (f_u6), 1)) {
26852 tmp_tmp = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
26854 tmp_tmp = GET_H_FR_HI (((FLD (f_FRi)) + (0)));
26857 UHI opval = tmp_tmp;
26858 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
26859 written |= (1 << 7);
26860 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
26863 UHI opval = tmp_tmp;
26864 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
26865 written |= (1 << 8);
26866 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
26871 abuf->written = written;
26876 /* mexpdhd: mexpdhd$pack $FRinti,$u6,$FRintkeven */
26879 SEM_FN_NAME (frvbf,mexpdhd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26881 #define FLD(f) abuf->fields.sfmt_cmexpdhd.f
26882 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26883 int UNUSED written = 0;
26884 IADDR UNUSED pc = abuf->addr;
26885 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26887 if (ANDSI (FLD (f_FRk), SUBSI (2, 1))) {
26888 frvbf_media_register_not_aligned (current_cpu);
26893 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
26894 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
26895 written |= (1 << 6);
26896 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
26898 if (ANDSI (FLD (f_u6), 1)) {
26899 tmp_tmp = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
26901 tmp_tmp = GET_H_FR_HI (((FLD (f_FRi)) + (0)));
26904 UHI opval = tmp_tmp;
26905 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
26906 written |= (1 << 7);
26907 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
26910 UHI opval = tmp_tmp;
26911 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
26912 written |= (1 << 9);
26913 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
26916 UHI opval = tmp_tmp;
26917 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
26918 written |= (1 << 8);
26919 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
26922 UHI opval = tmp_tmp;
26923 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
26924 written |= (1 << 10);
26925 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
26930 abuf->written = written;
26935 /* cmexpdhd: cmexpdhd$pack $FRinti,$u6,$FRintkeven,$CCi,$cond */
26938 SEM_FN_NAME (frvbf,cmexpdhd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26940 #define FLD(f) abuf->fields.sfmt_cmexpdhd.f
26941 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26942 int UNUSED written = 0;
26943 IADDR UNUSED pc = abuf->addr;
26944 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26946 if (ANDSI (FLD (f_FRk), SUBSI (2, 1))) {
26947 frvbf_media_register_not_aligned (current_cpu);
26949 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
26953 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
26954 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
26955 written |= (1 << 8);
26956 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
26958 if (ANDSI (FLD (f_u6), 1)) {
26959 tmp_tmp = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
26961 tmp_tmp = GET_H_FR_HI (((FLD (f_FRi)) + (0)));
26964 UHI opval = tmp_tmp;
26965 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
26966 written |= (1 << 9);
26967 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
26970 UHI opval = tmp_tmp;
26971 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
26972 written |= (1 << 11);
26973 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
26976 UHI opval = tmp_tmp;
26977 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
26978 written |= (1 << 10);
26979 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
26982 UHI opval = tmp_tmp;
26983 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
26984 written |= (1 << 12);
26985 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
26991 abuf->written = written;
26996 /* mpackh: mpackh$pack $FRinti,$FRintj,$FRintk */
26999 SEM_FN_NAME (frvbf,mpackh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27001 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
27002 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27003 int UNUSED written = 0;
27004 IADDR UNUSED pc = abuf->addr;
27005 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27009 UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
27010 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27011 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27014 UHI opval = GET_H_FR_LO (((FLD (f_FRj)) + (0)));
27015 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27016 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27024 /* mdpackh: mdpackh$pack $FRintieven,$FRintjeven,$FRintkeven */
27027 SEM_FN_NAME (frvbf,mdpackh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27029 #define FLD(f) abuf->fields.sfmt_mdpackh.f
27030 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27031 int UNUSED written = 0;
27032 IADDR UNUSED pc = abuf->addr;
27033 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27035 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
27036 frvbf_media_register_not_aligned (current_cpu);
27040 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
27041 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
27042 written |= (1 << 10);
27043 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27046 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27047 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27048 written |= (1 << 11);
27049 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27052 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27053 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27054 written |= (1 << 12);
27055 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27059 UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
27060 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27061 written |= (1 << 13);
27062 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27065 UHI opval = GET_H_FR_LO (((FLD (f_FRj)) + (0)));
27066 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27067 written |= (1 << 15);
27068 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27073 UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (1)));
27074 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
27075 written |= (1 << 14);
27076 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27079 UHI opval = GET_H_FR_LO (((FLD (f_FRj)) + (1)));
27080 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
27081 written |= (1 << 16);
27082 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27088 abuf->written = written;
27093 /* munpackh: munpackh$pack $FRinti,$FRintkeven */
27096 SEM_FN_NAME (frvbf,munpackh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27098 #define FLD(f) abuf->fields.sfmt_munpackh.f
27099 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27100 int UNUSED written = 0;
27101 IADDR UNUSED pc = abuf->addr;
27102 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27104 if (ANDSI (FLD (f_FRk), SUBSI (2, 1))) {
27105 frvbf_media_register_not_aligned (current_cpu);
27109 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
27110 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
27111 written |= (1 << 6);
27112 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27115 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27116 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27117 written |= (1 << 7);
27118 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27122 UHI opval = GET_H_FR_HI (((FLD (f_FRi)) + (0)));
27123 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27124 written |= (1 << 8);
27125 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27128 UHI opval = GET_H_FR_HI (((FLD (f_FRi)) + (0)));
27129 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27130 written |= (1 << 10);
27131 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27134 UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
27135 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (ADDSI (0, 1))), opval);
27136 written |= (1 << 9);
27137 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27140 UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
27141 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (ADDSI (0, 1))), opval);
27142 written |= (1 << 11);
27143 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27149 abuf->written = written;
27154 /* mdunpackh: mdunpackh$pack $FRintieven,$FRintk */
27157 SEM_FN_NAME (frvbf,mdunpackh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27159 #define FLD(f) abuf->fields.sfmt_mdunpackh.f
27160 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27161 int UNUSED written = 0;
27162 IADDR UNUSED pc = abuf->addr;
27163 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27165 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (4, 1)))) {
27166 frvbf_media_register_not_aligned (current_cpu);
27170 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
27171 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
27172 written |= (1 << 8);
27173 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27176 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27177 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27178 written |= (1 << 9);
27179 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27183 UHI opval = GET_H_FR_HI (((FLD (f_FRi)) + (0)));
27184 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27185 written |= (1 << 10);
27186 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27189 UHI opval = GET_H_FR_HI (((FLD (f_FRi)) + (0)));
27190 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27191 written |= (1 << 14);
27192 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27195 UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
27196 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (ADDSI (0, 1))), opval);
27197 written |= (1 << 12);
27198 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27201 UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
27202 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (ADDSI (0, 1))), opval);
27203 written |= (1 << 16);
27204 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27209 UHI opval = GET_H_FR_HI (((FLD (f_FRi)) + (1)));
27210 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (2)), opval);
27211 written |= (1 << 11);
27212 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27215 UHI opval = GET_H_FR_HI (((FLD (f_FRi)) + (1)));
27216 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (2)), opval);
27217 written |= (1 << 15);
27218 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27221 UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (1)));
27222 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (ADDSI (2, 1))), opval);
27223 written |= (1 << 13);
27224 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27227 UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (1)));
27228 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (ADDSI (2, 1))), opval);
27229 written |= (1 << 17);
27230 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27236 abuf->written = written;
27241 /* mbtoh: mbtoh$pack $FRintj,$FRintkeven */
27244 SEM_FN_NAME (frvbf,mbtoh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27246 #define FLD(f) abuf->fields.sfmt_cmbtoh.f
27247 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27248 int UNUSED written = 0;
27249 IADDR UNUSED pc = abuf->addr;
27250 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27254 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27255 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27256 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27259 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27260 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27261 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27263 if (ANDSI (FLD (f_FRk), SUBSI (2, 1))) {
27264 frvbf_media_register_not_aligned (current_cpu);
27268 UHI opval = GET_H_FR_3 (((FLD (f_FRj)) + (0)));
27269 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27270 written |= (1 << 10);
27271 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27274 UHI opval = GET_H_FR_2 (((FLD (f_FRj)) + (0)));
27275 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27276 written |= (1 << 12);
27277 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27280 UHI opval = GET_H_FR_1 (((FLD (f_FRj)) + (0)));
27281 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
27282 written |= (1 << 11);
27283 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27286 UHI opval = GET_H_FR_0 (((FLD (f_FRj)) + (0)));
27287 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
27288 written |= (1 << 13);
27289 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27295 abuf->written = written;
27300 /* cmbtoh: cmbtoh$pack $FRintj,$FRintkeven,$CCi,$cond */
27303 SEM_FN_NAME (frvbf,cmbtoh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27305 #define FLD(f) abuf->fields.sfmt_cmbtoh.f
27306 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27307 int UNUSED written = 0;
27308 IADDR UNUSED pc = abuf->addr;
27309 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27313 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27314 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27315 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27318 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27319 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27320 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27322 if (ANDSI (FLD (f_FRk), SUBSI (2, 1))) {
27323 frvbf_media_register_not_aligned (current_cpu);
27325 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
27328 UHI opval = GET_H_FR_3 (((FLD (f_FRj)) + (0)));
27329 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27330 written |= (1 << 12);
27331 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27334 UHI opval = GET_H_FR_2 (((FLD (f_FRj)) + (0)));
27335 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27336 written |= (1 << 14);
27337 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27340 UHI opval = GET_H_FR_1 (((FLD (f_FRj)) + (0)));
27341 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
27342 written |= (1 << 13);
27343 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27346 UHI opval = GET_H_FR_0 (((FLD (f_FRj)) + (0)));
27347 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
27348 written |= (1 << 15);
27349 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27356 abuf->written = written;
27361 /* mhtob: mhtob$pack $FRintjeven,$FRintk */
27364 SEM_FN_NAME (frvbf,mhtob) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27366 #define FLD(f) abuf->fields.sfmt_cmhtob.f
27367 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27368 int UNUSED written = 0;
27369 IADDR UNUSED pc = abuf->addr;
27370 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27374 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27375 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27376 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27379 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27380 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27381 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27383 if (ANDSI (FLD (f_FRj), SUBSI (2, 1))) {
27384 frvbf_media_register_not_aligned (current_cpu);
27388 UHI opval = GET_H_FR_HI (((FLD (f_FRj)) + (0)));
27389 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_3_set, ((FLD (f_FRk)) + (0)), opval);
27390 written |= (1 << 13);
27391 TRACE_RESULT (current_cpu, abuf, "fr_3", 'x', opval);
27394 UHI opval = GET_H_FR_LO (((FLD (f_FRj)) + (0)));
27395 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_2_set, ((FLD (f_FRk)) + (0)), opval);
27396 written |= (1 << 12);
27397 TRACE_RESULT (current_cpu, abuf, "fr_2", 'x', opval);
27400 UHI opval = GET_H_FR_HI (((FLD (f_FRj)) + (1)));
27401 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_1_set, ((FLD (f_FRk)) + (0)), opval);
27402 written |= (1 << 11);
27403 TRACE_RESULT (current_cpu, abuf, "fr_1", 'x', opval);
27406 UHI opval = GET_H_FR_LO (((FLD (f_FRj)) + (1)));
27407 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_0_set, ((FLD (f_FRk)) + (0)), opval);
27408 written |= (1 << 10);
27409 TRACE_RESULT (current_cpu, abuf, "fr_0", 'x', opval);
27415 abuf->written = written;
27420 /* cmhtob: cmhtob$pack $FRintjeven,$FRintk,$CCi,$cond */
27423 SEM_FN_NAME (frvbf,cmhtob) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27425 #define FLD(f) abuf->fields.sfmt_cmhtob.f
27426 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27427 int UNUSED written = 0;
27428 IADDR UNUSED pc = abuf->addr;
27429 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27433 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27434 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27435 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27438 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27439 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27440 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27442 if (ANDSI (FLD (f_FRj), SUBSI (2, 1))) {
27443 frvbf_media_register_not_aligned (current_cpu);
27445 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
27448 UHI opval = GET_H_FR_HI (((FLD (f_FRj)) + (0)));
27449 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_3_set, ((FLD (f_FRk)) + (0)), opval);
27450 written |= (1 << 15);
27451 TRACE_RESULT (current_cpu, abuf, "fr_3", 'x', opval);
27454 UHI opval = GET_H_FR_LO (((FLD (f_FRj)) + (0)));
27455 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_2_set, ((FLD (f_FRk)) + (0)), opval);
27456 written |= (1 << 14);
27457 TRACE_RESULT (current_cpu, abuf, "fr_2", 'x', opval);
27460 UHI opval = GET_H_FR_HI (((FLD (f_FRj)) + (1)));
27461 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_1_set, ((FLD (f_FRk)) + (0)), opval);
27462 written |= (1 << 13);
27463 TRACE_RESULT (current_cpu, abuf, "fr_1", 'x', opval);
27466 UHI opval = GET_H_FR_LO (((FLD (f_FRj)) + (1)));
27467 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_0_set, ((FLD (f_FRk)) + (0)), opval);
27468 written |= (1 << 12);
27469 TRACE_RESULT (current_cpu, abuf, "fr_0", 'x', opval);
27476 abuf->written = written;
27481 /* mbtohe: mbtohe$pack $FRintj,$FRintk */
27484 SEM_FN_NAME (frvbf,mbtohe) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27486 #define FLD(f) abuf->fields.sfmt_cmbtohe.f
27487 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27488 int UNUSED written = 0;
27489 IADDR UNUSED pc = abuf->addr;
27490 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27494 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27495 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27496 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27499 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27500 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27501 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27503 if (ANDSI (FLD (f_FRk), SUBSI (4, 1))) {
27504 frvbf_media_register_not_aligned (current_cpu);
27508 UHI opval = GET_H_FR_3 (((FLD (f_FRj)) + (0)));
27509 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27510 written |= (1 << 10);
27511 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27514 UHI opval = GET_H_FR_3 (((FLD (f_FRj)) + (0)));
27515 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27516 written |= (1 << 14);
27517 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27520 UHI opval = GET_H_FR_2 (((FLD (f_FRj)) + (0)));
27521 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
27522 written |= (1 << 11);
27523 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27526 UHI opval = GET_H_FR_2 (((FLD (f_FRj)) + (0)));
27527 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
27528 written |= (1 << 15);
27529 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27532 UHI opval = GET_H_FR_1 (((FLD (f_FRj)) + (0)));
27533 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (2)), opval);
27534 written |= (1 << 12);
27535 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27538 UHI opval = GET_H_FR_1 (((FLD (f_FRj)) + (0)));
27539 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (2)), opval);
27540 written |= (1 << 16);
27541 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27544 UHI opval = GET_H_FR_0 (((FLD (f_FRj)) + (0)));
27545 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (3)), opval);
27546 written |= (1 << 13);
27547 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27550 UHI opval = GET_H_FR_0 (((FLD (f_FRj)) + (0)));
27551 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (3)), opval);
27552 written |= (1 << 17);
27553 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27559 abuf->written = written;
27564 /* cmbtohe: cmbtohe$pack $FRintj,$FRintk,$CCi,$cond */
27567 SEM_FN_NAME (frvbf,cmbtohe) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27569 #define FLD(f) abuf->fields.sfmt_cmbtohe.f
27570 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27571 int UNUSED written = 0;
27572 IADDR UNUSED pc = abuf->addr;
27573 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27577 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27578 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27579 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27582 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27583 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27584 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27586 if (ANDSI (FLD (f_FRk), SUBSI (4, 1))) {
27587 frvbf_media_register_not_aligned (current_cpu);
27589 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
27592 UHI opval = GET_H_FR_3 (((FLD (f_FRj)) + (0)));
27593 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27594 written |= (1 << 12);
27595 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27598 UHI opval = GET_H_FR_3 (((FLD (f_FRj)) + (0)));
27599 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27600 written |= (1 << 16);
27601 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27604 UHI opval = GET_H_FR_2 (((FLD (f_FRj)) + (0)));
27605 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
27606 written |= (1 << 13);
27607 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27610 UHI opval = GET_H_FR_2 (((FLD (f_FRj)) + (0)));
27611 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
27612 written |= (1 << 17);
27613 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27616 UHI opval = GET_H_FR_1 (((FLD (f_FRj)) + (0)));
27617 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (2)), opval);
27618 written |= (1 << 14);
27619 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27622 UHI opval = GET_H_FR_1 (((FLD (f_FRj)) + (0)));
27623 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (2)), opval);
27624 written |= (1 << 18);
27625 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27628 UHI opval = GET_H_FR_0 (((FLD (f_FRj)) + (0)));
27629 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (3)), opval);
27630 written |= (1 << 15);
27631 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27634 UHI opval = GET_H_FR_0 (((FLD (f_FRj)) + (0)));
27635 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (3)), opval);
27636 written |= (1 << 19);
27637 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27644 abuf->written = written;
27649 /* mnop: mnop$pack */
27652 SEM_FN_NAME (frvbf,mnop) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27654 #define FLD(f) abuf->fields.fmt_empty.f
27655 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27656 int UNUSED written = 0;
27657 IADDR UNUSED pc = abuf->addr;
27658 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27660 ((void) 0); /*nop*/
27666 /* mclracc-0: mclracc$pack $ACC40Sk,$A0 */
27669 SEM_FN_NAME (frvbf,mclracc_0) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27671 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
27672 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27673 int UNUSED written = 0;
27674 IADDR UNUSED pc = abuf->addr;
27675 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27677 frvbf_clear_accumulators (current_cpu, FLD (f_ACC40Sk), 0);
27683 /* mclracc-1: mclracc$pack $ACC40Sk,$A1 */
27686 SEM_FN_NAME (frvbf,mclracc_1) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27688 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
27689 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27690 int UNUSED written = 0;
27691 IADDR UNUSED pc = abuf->addr;
27692 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27694 frvbf_clear_accumulators (current_cpu, FLD (f_ACC40Sk), 1);
27700 /* mrdacc: mrdacc$pack $ACC40Si,$FRintk */
27703 SEM_FN_NAME (frvbf,mrdacc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27705 #define FLD(f) abuf->fields.sfmt_mcuti.f
27706 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27707 int UNUSED written = 0;
27708 IADDR UNUSED pc = abuf->addr;
27709 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27712 SI opval = GET_H_ACC40S (FLD (f_ACC40Si));
27713 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27714 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27721 /* mrdaccg: mrdaccg$pack $ACCGi,$FRintk */
27724 SEM_FN_NAME (frvbf,mrdaccg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27726 #define FLD(f) abuf->fields.sfmt_mrdaccg.f
27727 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27728 int UNUSED written = 0;
27729 IADDR UNUSED pc = abuf->addr;
27730 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27733 SI opval = GET_H_ACCG (FLD (f_ACCGi));
27734 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27735 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27742 /* mwtacc: mwtacc$pack $FRinti,$ACC40Sk */
27745 SEM_FN_NAME (frvbf,mwtacc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27747 #define FLD(f) abuf->fields.sfmt_cmmachs.f
27748 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27749 int UNUSED written = 0;
27750 IADDR UNUSED pc = abuf->addr;
27751 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27754 DI opval = ORDI (ANDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MAKEDI (0xffffffff, 0)), GET_H_FR_INT (FLD (f_FRi)));
27755 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
27756 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
27763 /* mwtaccg: mwtaccg$pack $FRinti,$ACCGk */
27766 SEM_FN_NAME (frvbf,mwtaccg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27768 #define FLD(f) abuf->fields.sfmt_mwtaccg.f
27769 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27770 int UNUSED written = 0;
27771 IADDR UNUSED pc = abuf->addr;
27772 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27775 USI opval = GET_H_FR_INT (FLD (f_FRi));
27776 sim_queue_fn_si_write (current_cpu, frvbf_h_accg_set, FLD (f_ACCGk), opval);
27777 TRACE_RESULT (current_cpu, abuf, "accg", 'x', opval);
27784 /* mcop1: mcop1$pack $FRi,$FRj,$FRk */
27787 SEM_FN_NAME (frvbf,mcop1) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27789 #define FLD(f) abuf->fields.fmt_empty.f
27790 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27791 int UNUSED written = 0;
27792 IADDR UNUSED pc = abuf->addr;
27793 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27795 frvbf_media_cop (current_cpu, 1);
27801 /* mcop2: mcop2$pack $FRi,$FRj,$FRk */
27804 SEM_FN_NAME (frvbf,mcop2) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27806 #define FLD(f) abuf->fields.fmt_empty.f
27807 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27808 int UNUSED written = 0;
27809 IADDR UNUSED pc = abuf->addr;
27810 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27812 frvbf_media_cop (current_cpu, 2);
27818 /* fnop: fnop$pack */
27821 SEM_FN_NAME (frvbf,fnop) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27823 #define FLD(f) abuf->fields.fmt_empty.f
27824 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27825 int UNUSED written = 0;
27826 IADDR UNUSED pc = abuf->addr;
27827 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27829 ((void) 0); /*nop*/
27835 /* Table of all semantic fns. */
27837 static const struct sem_fn_desc sem_fns[] = {
27838 { FRVBF_INSN_X_INVALID, SEM_FN_NAME (frvbf,x_invalid) },
27839 { FRVBF_INSN_X_AFTER, SEM_FN_NAME (frvbf,x_after) },
27840 { FRVBF_INSN_X_BEFORE, SEM_FN_NAME (frvbf,x_before) },
27841 { FRVBF_INSN_X_CTI_CHAIN, SEM_FN_NAME (frvbf,x_cti_chain) },
27842 { FRVBF_INSN_X_CHAIN, SEM_FN_NAME (frvbf,x_chain) },
27843 { FRVBF_INSN_X_BEGIN, SEM_FN_NAME (frvbf,x_begin) },
27844 { FRVBF_INSN_ADD, SEM_FN_NAME (frvbf,add) },
27845 { FRVBF_INSN_SUB, SEM_FN_NAME (frvbf,sub) },
27846 { FRVBF_INSN_AND, SEM_FN_NAME (frvbf,and) },
27847 { FRVBF_INSN_OR, SEM_FN_NAME (frvbf,or) },
27848 { FRVBF_INSN_XOR, SEM_FN_NAME (frvbf,xor) },
27849 { FRVBF_INSN_NOT, SEM_FN_NAME (frvbf,not) },
27850 { FRVBF_INSN_SDIV, SEM_FN_NAME (frvbf,sdiv) },
27851 { FRVBF_INSN_NSDIV, SEM_FN_NAME (frvbf,nsdiv) },
27852 { FRVBF_INSN_UDIV, SEM_FN_NAME (frvbf,udiv) },
27853 { FRVBF_INSN_NUDIV, SEM_FN_NAME (frvbf,nudiv) },
27854 { FRVBF_INSN_SMUL, SEM_FN_NAME (frvbf,smul) },
27855 { FRVBF_INSN_UMUL, SEM_FN_NAME (frvbf,umul) },
27856 { FRVBF_INSN_SLL, SEM_FN_NAME (frvbf,sll) },
27857 { FRVBF_INSN_SRL, SEM_FN_NAME (frvbf,srl) },
27858 { FRVBF_INSN_SRA, SEM_FN_NAME (frvbf,sra) },
27859 { FRVBF_INSN_SCAN, SEM_FN_NAME (frvbf,scan) },
27860 { FRVBF_INSN_CADD, SEM_FN_NAME (frvbf,cadd) },
27861 { FRVBF_INSN_CSUB, SEM_FN_NAME (frvbf,csub) },
27862 { FRVBF_INSN_CAND, SEM_FN_NAME (frvbf,cand) },
27863 { FRVBF_INSN_COR, SEM_FN_NAME (frvbf,cor) },
27864 { FRVBF_INSN_CXOR, SEM_FN_NAME (frvbf,cxor) },
27865 { FRVBF_INSN_CNOT, SEM_FN_NAME (frvbf,cnot) },
27866 { FRVBF_INSN_CSMUL, SEM_FN_NAME (frvbf,csmul) },
27867 { FRVBF_INSN_CSDIV, SEM_FN_NAME (frvbf,csdiv) },
27868 { FRVBF_INSN_CUDIV, SEM_FN_NAME (frvbf,cudiv) },
27869 { FRVBF_INSN_CSLL, SEM_FN_NAME (frvbf,csll) },
27870 { FRVBF_INSN_CSRL, SEM_FN_NAME (frvbf,csrl) },
27871 { FRVBF_INSN_CSRA, SEM_FN_NAME (frvbf,csra) },
27872 { FRVBF_INSN_CSCAN, SEM_FN_NAME (frvbf,cscan) },
27873 { FRVBF_INSN_ADDCC, SEM_FN_NAME (frvbf,addcc) },
27874 { FRVBF_INSN_SUBCC, SEM_FN_NAME (frvbf,subcc) },
27875 { FRVBF_INSN_ANDCC, SEM_FN_NAME (frvbf,andcc) },
27876 { FRVBF_INSN_ORCC, SEM_FN_NAME (frvbf,orcc) },
27877 { FRVBF_INSN_XORCC, SEM_FN_NAME (frvbf,xorcc) },
27878 { FRVBF_INSN_SLLCC, SEM_FN_NAME (frvbf,sllcc) },
27879 { FRVBF_INSN_SRLCC, SEM_FN_NAME (frvbf,srlcc) },
27880 { FRVBF_INSN_SRACC, SEM_FN_NAME (frvbf,sracc) },
27881 { FRVBF_INSN_SMULCC, SEM_FN_NAME (frvbf,smulcc) },
27882 { FRVBF_INSN_UMULCC, SEM_FN_NAME (frvbf,umulcc) },
27883 { FRVBF_INSN_CADDCC, SEM_FN_NAME (frvbf,caddcc) },
27884 { FRVBF_INSN_CSUBCC, SEM_FN_NAME (frvbf,csubcc) },
27885 { FRVBF_INSN_CSMULCC, SEM_FN_NAME (frvbf,csmulcc) },
27886 { FRVBF_INSN_CANDCC, SEM_FN_NAME (frvbf,candcc) },
27887 { FRVBF_INSN_CORCC, SEM_FN_NAME (frvbf,corcc) },
27888 { FRVBF_INSN_CXORCC, SEM_FN_NAME (frvbf,cxorcc) },
27889 { FRVBF_INSN_CSLLCC, SEM_FN_NAME (frvbf,csllcc) },
27890 { FRVBF_INSN_CSRLCC, SEM_FN_NAME (frvbf,csrlcc) },
27891 { FRVBF_INSN_CSRACC, SEM_FN_NAME (frvbf,csracc) },
27892 { FRVBF_INSN_ADDX, SEM_FN_NAME (frvbf,addx) },
27893 { FRVBF_INSN_SUBX, SEM_FN_NAME (frvbf,subx) },
27894 { FRVBF_INSN_ADDXCC, SEM_FN_NAME (frvbf,addxcc) },
27895 { FRVBF_INSN_SUBXCC, SEM_FN_NAME (frvbf,subxcc) },
27896 { FRVBF_INSN_ADDI, SEM_FN_NAME (frvbf,addi) },
27897 { FRVBF_INSN_SUBI, SEM_FN_NAME (frvbf,subi) },
27898 { FRVBF_INSN_ANDI, SEM_FN_NAME (frvbf,andi) },
27899 { FRVBF_INSN_ORI, SEM_FN_NAME (frvbf,ori) },
27900 { FRVBF_INSN_XORI, SEM_FN_NAME (frvbf,xori) },
27901 { FRVBF_INSN_SDIVI, SEM_FN_NAME (frvbf,sdivi) },
27902 { FRVBF_INSN_NSDIVI, SEM_FN_NAME (frvbf,nsdivi) },
27903 { FRVBF_INSN_UDIVI, SEM_FN_NAME (frvbf,udivi) },
27904 { FRVBF_INSN_NUDIVI, SEM_FN_NAME (frvbf,nudivi) },
27905 { FRVBF_INSN_SMULI, SEM_FN_NAME (frvbf,smuli) },
27906 { FRVBF_INSN_UMULI, SEM_FN_NAME (frvbf,umuli) },
27907 { FRVBF_INSN_SLLI, SEM_FN_NAME (frvbf,slli) },
27908 { FRVBF_INSN_SRLI, SEM_FN_NAME (frvbf,srli) },
27909 { FRVBF_INSN_SRAI, SEM_FN_NAME (frvbf,srai) },
27910 { FRVBF_INSN_SCANI, SEM_FN_NAME (frvbf,scani) },
27911 { FRVBF_INSN_ADDICC, SEM_FN_NAME (frvbf,addicc) },
27912 { FRVBF_INSN_SUBICC, SEM_FN_NAME (frvbf,subicc) },
27913 { FRVBF_INSN_ANDICC, SEM_FN_NAME (frvbf,andicc) },
27914 { FRVBF_INSN_ORICC, SEM_FN_NAME (frvbf,oricc) },
27915 { FRVBF_INSN_XORICC, SEM_FN_NAME (frvbf,xoricc) },
27916 { FRVBF_INSN_SMULICC, SEM_FN_NAME (frvbf,smulicc) },
27917 { FRVBF_INSN_UMULICC, SEM_FN_NAME (frvbf,umulicc) },
27918 { FRVBF_INSN_SLLICC, SEM_FN_NAME (frvbf,sllicc) },
27919 { FRVBF_INSN_SRLICC, SEM_FN_NAME (frvbf,srlicc) },
27920 { FRVBF_INSN_SRAICC, SEM_FN_NAME (frvbf,sraicc) },
27921 { FRVBF_INSN_ADDXI, SEM_FN_NAME (frvbf,addxi) },
27922 { FRVBF_INSN_SUBXI, SEM_FN_NAME (frvbf,subxi) },
27923 { FRVBF_INSN_ADDXICC, SEM_FN_NAME (frvbf,addxicc) },
27924 { FRVBF_INSN_SUBXICC, SEM_FN_NAME (frvbf,subxicc) },
27925 { FRVBF_INSN_CMPB, SEM_FN_NAME (frvbf,cmpb) },
27926 { FRVBF_INSN_CMPBA, SEM_FN_NAME (frvbf,cmpba) },
27927 { FRVBF_INSN_SETLO, SEM_FN_NAME (frvbf,setlo) },
27928 { FRVBF_INSN_SETHI, SEM_FN_NAME (frvbf,sethi) },
27929 { FRVBF_INSN_SETLOS, SEM_FN_NAME (frvbf,setlos) },
27930 { FRVBF_INSN_LDSB, SEM_FN_NAME (frvbf,ldsb) },
27931 { FRVBF_INSN_LDUB, SEM_FN_NAME (frvbf,ldub) },
27932 { FRVBF_INSN_LDSH, SEM_FN_NAME (frvbf,ldsh) },
27933 { FRVBF_INSN_LDUH, SEM_FN_NAME (frvbf,lduh) },
27934 { FRVBF_INSN_LD, SEM_FN_NAME (frvbf,ld) },
27935 { FRVBF_INSN_LDBF, SEM_FN_NAME (frvbf,ldbf) },
27936 { FRVBF_INSN_LDHF, SEM_FN_NAME (frvbf,ldhf) },
27937 { FRVBF_INSN_LDF, SEM_FN_NAME (frvbf,ldf) },
27938 { FRVBF_INSN_LDC, SEM_FN_NAME (frvbf,ldc) },
27939 { FRVBF_INSN_NLDSB, SEM_FN_NAME (frvbf,nldsb) },
27940 { FRVBF_INSN_NLDUB, SEM_FN_NAME (frvbf,nldub) },
27941 { FRVBF_INSN_NLDSH, SEM_FN_NAME (frvbf,nldsh) },
27942 { FRVBF_INSN_NLDUH, SEM_FN_NAME (frvbf,nlduh) },
27943 { FRVBF_INSN_NLD, SEM_FN_NAME (frvbf,nld) },
27944 { FRVBF_INSN_NLDBF, SEM_FN_NAME (frvbf,nldbf) },
27945 { FRVBF_INSN_NLDHF, SEM_FN_NAME (frvbf,nldhf) },
27946 { FRVBF_INSN_NLDF, SEM_FN_NAME (frvbf,nldf) },
27947 { FRVBF_INSN_LDD, SEM_FN_NAME (frvbf,ldd) },
27948 { FRVBF_INSN_LDDF, SEM_FN_NAME (frvbf,lddf) },
27949 { FRVBF_INSN_LDDC, SEM_FN_NAME (frvbf,lddc) },
27950 { FRVBF_INSN_NLDD, SEM_FN_NAME (frvbf,nldd) },
27951 { FRVBF_INSN_NLDDF, SEM_FN_NAME (frvbf,nlddf) },
27952 { FRVBF_INSN_LDQ, SEM_FN_NAME (frvbf,ldq) },
27953 { FRVBF_INSN_LDQF, SEM_FN_NAME (frvbf,ldqf) },
27954 { FRVBF_INSN_LDQC, SEM_FN_NAME (frvbf,ldqc) },
27955 { FRVBF_INSN_NLDQ, SEM_FN_NAME (frvbf,nldq) },
27956 { FRVBF_INSN_NLDQF, SEM_FN_NAME (frvbf,nldqf) },
27957 { FRVBF_INSN_LDSBU, SEM_FN_NAME (frvbf,ldsbu) },
27958 { FRVBF_INSN_LDUBU, SEM_FN_NAME (frvbf,ldubu) },
27959 { FRVBF_INSN_LDSHU, SEM_FN_NAME (frvbf,ldshu) },
27960 { FRVBF_INSN_LDUHU, SEM_FN_NAME (frvbf,lduhu) },
27961 { FRVBF_INSN_LDU, SEM_FN_NAME (frvbf,ldu) },
27962 { FRVBF_INSN_NLDSBU, SEM_FN_NAME (frvbf,nldsbu) },
27963 { FRVBF_INSN_NLDUBU, SEM_FN_NAME (frvbf,nldubu) },
27964 { FRVBF_INSN_NLDSHU, SEM_FN_NAME (frvbf,nldshu) },
27965 { FRVBF_INSN_NLDUHU, SEM_FN_NAME (frvbf,nlduhu) },
27966 { FRVBF_INSN_NLDU, SEM_FN_NAME (frvbf,nldu) },
27967 { FRVBF_INSN_LDBFU, SEM_FN_NAME (frvbf,ldbfu) },
27968 { FRVBF_INSN_LDHFU, SEM_FN_NAME (frvbf,ldhfu) },
27969 { FRVBF_INSN_LDFU, SEM_FN_NAME (frvbf,ldfu) },
27970 { FRVBF_INSN_LDCU, SEM_FN_NAME (frvbf,ldcu) },
27971 { FRVBF_INSN_NLDBFU, SEM_FN_NAME (frvbf,nldbfu) },
27972 { FRVBF_INSN_NLDHFU, SEM_FN_NAME (frvbf,nldhfu) },
27973 { FRVBF_INSN_NLDFU, SEM_FN_NAME (frvbf,nldfu) },
27974 { FRVBF_INSN_LDDU, SEM_FN_NAME (frvbf,lddu) },
27975 { FRVBF_INSN_NLDDU, SEM_FN_NAME (frvbf,nlddu) },
27976 { FRVBF_INSN_LDDFU, SEM_FN_NAME (frvbf,lddfu) },
27977 { FRVBF_INSN_LDDCU, SEM_FN_NAME (frvbf,lddcu) },
27978 { FRVBF_INSN_NLDDFU, SEM_FN_NAME (frvbf,nlddfu) },
27979 { FRVBF_INSN_LDQU, SEM_FN_NAME (frvbf,ldqu) },
27980 { FRVBF_INSN_NLDQU, SEM_FN_NAME (frvbf,nldqu) },
27981 { FRVBF_INSN_LDQFU, SEM_FN_NAME (frvbf,ldqfu) },
27982 { FRVBF_INSN_LDQCU, SEM_FN_NAME (frvbf,ldqcu) },
27983 { FRVBF_INSN_NLDQFU, SEM_FN_NAME (frvbf,nldqfu) },
27984 { FRVBF_INSN_LDSBI, SEM_FN_NAME (frvbf,ldsbi) },
27985 { FRVBF_INSN_LDSHI, SEM_FN_NAME (frvbf,ldshi) },
27986 { FRVBF_INSN_LDI, SEM_FN_NAME (frvbf,ldi) },
27987 { FRVBF_INSN_LDUBI, SEM_FN_NAME (frvbf,ldubi) },
27988 { FRVBF_INSN_LDUHI, SEM_FN_NAME (frvbf,lduhi) },
27989 { FRVBF_INSN_LDBFI, SEM_FN_NAME (frvbf,ldbfi) },
27990 { FRVBF_INSN_LDHFI, SEM_FN_NAME (frvbf,ldhfi) },
27991 { FRVBF_INSN_LDFI, SEM_FN_NAME (frvbf,ldfi) },
27992 { FRVBF_INSN_NLDSBI, SEM_FN_NAME (frvbf,nldsbi) },
27993 { FRVBF_INSN_NLDUBI, SEM_FN_NAME (frvbf,nldubi) },
27994 { FRVBF_INSN_NLDSHI, SEM_FN_NAME (frvbf,nldshi) },
27995 { FRVBF_INSN_NLDUHI, SEM_FN_NAME (frvbf,nlduhi) },
27996 { FRVBF_INSN_NLDI, SEM_FN_NAME (frvbf,nldi) },
27997 { FRVBF_INSN_NLDBFI, SEM_FN_NAME (frvbf,nldbfi) },
27998 { FRVBF_INSN_NLDHFI, SEM_FN_NAME (frvbf,nldhfi) },
27999 { FRVBF_INSN_NLDFI, SEM_FN_NAME (frvbf,nldfi) },
28000 { FRVBF_INSN_LDDI, SEM_FN_NAME (frvbf,lddi) },
28001 { FRVBF_INSN_LDDFI, SEM_FN_NAME (frvbf,lddfi) },
28002 { FRVBF_INSN_NLDDI, SEM_FN_NAME (frvbf,nlddi) },
28003 { FRVBF_INSN_NLDDFI, SEM_FN_NAME (frvbf,nlddfi) },
28004 { FRVBF_INSN_LDQI, SEM_FN_NAME (frvbf,ldqi) },
28005 { FRVBF_INSN_LDQFI, SEM_FN_NAME (frvbf,ldqfi) },
28006 { FRVBF_INSN_NLDQI, SEM_FN_NAME (frvbf,nldqi) },
28007 { FRVBF_INSN_NLDQFI, SEM_FN_NAME (frvbf,nldqfi) },
28008 { FRVBF_INSN_STB, SEM_FN_NAME (frvbf,stb) },
28009 { FRVBF_INSN_STH, SEM_FN_NAME (frvbf,sth) },
28010 { FRVBF_INSN_ST, SEM_FN_NAME (frvbf,st) },
28011 { FRVBF_INSN_STBF, SEM_FN_NAME (frvbf,stbf) },
28012 { FRVBF_INSN_STHF, SEM_FN_NAME (frvbf,sthf) },
28013 { FRVBF_INSN_STF, SEM_FN_NAME (frvbf,stf) },
28014 { FRVBF_INSN_STC, SEM_FN_NAME (frvbf,stc) },
28015 { FRVBF_INSN_RSTB, SEM_FN_NAME (frvbf,rstb) },
28016 { FRVBF_INSN_RSTH, SEM_FN_NAME (frvbf,rsth) },
28017 { FRVBF_INSN_RST, SEM_FN_NAME (frvbf,rst) },
28018 { FRVBF_INSN_RSTBF, SEM_FN_NAME (frvbf,rstbf) },
28019 { FRVBF_INSN_RSTHF, SEM_FN_NAME (frvbf,rsthf) },
28020 { FRVBF_INSN_RSTF, SEM_FN_NAME (frvbf,rstf) },
28021 { FRVBF_INSN_STD, SEM_FN_NAME (frvbf,std) },
28022 { FRVBF_INSN_STDF, SEM_FN_NAME (frvbf,stdf) },
28023 { FRVBF_INSN_STDC, SEM_FN_NAME (frvbf,stdc) },
28024 { FRVBF_INSN_RSTD, SEM_FN_NAME (frvbf,rstd) },
28025 { FRVBF_INSN_RSTDF, SEM_FN_NAME (frvbf,rstdf) },
28026 { FRVBF_INSN_STQ, SEM_FN_NAME (frvbf,stq) },
28027 { FRVBF_INSN_STQF, SEM_FN_NAME (frvbf,stqf) },
28028 { FRVBF_INSN_STQC, SEM_FN_NAME (frvbf,stqc) },
28029 { FRVBF_INSN_RSTQ, SEM_FN_NAME (frvbf,rstq) },
28030 { FRVBF_INSN_RSTQF, SEM_FN_NAME (frvbf,rstqf) },
28031 { FRVBF_INSN_STBU, SEM_FN_NAME (frvbf,stbu) },
28032 { FRVBF_INSN_STHU, SEM_FN_NAME (frvbf,sthu) },
28033 { FRVBF_INSN_STU, SEM_FN_NAME (frvbf,stu) },
28034 { FRVBF_INSN_STBFU, SEM_FN_NAME (frvbf,stbfu) },
28035 { FRVBF_INSN_STHFU, SEM_FN_NAME (frvbf,sthfu) },
28036 { FRVBF_INSN_STFU, SEM_FN_NAME (frvbf,stfu) },
28037 { FRVBF_INSN_STCU, SEM_FN_NAME (frvbf,stcu) },
28038 { FRVBF_INSN_STDU, SEM_FN_NAME (frvbf,stdu) },
28039 { FRVBF_INSN_STDFU, SEM_FN_NAME (frvbf,stdfu) },
28040 { FRVBF_INSN_STDCU, SEM_FN_NAME (frvbf,stdcu) },
28041 { FRVBF_INSN_STQU, SEM_FN_NAME (frvbf,stqu) },
28042 { FRVBF_INSN_STQFU, SEM_FN_NAME (frvbf,stqfu) },
28043 { FRVBF_INSN_STQCU, SEM_FN_NAME (frvbf,stqcu) },
28044 { FRVBF_INSN_CLDSB, SEM_FN_NAME (frvbf,cldsb) },
28045 { FRVBF_INSN_CLDUB, SEM_FN_NAME (frvbf,cldub) },
28046 { FRVBF_INSN_CLDSH, SEM_FN_NAME (frvbf,cldsh) },
28047 { FRVBF_INSN_CLDUH, SEM_FN_NAME (frvbf,clduh) },
28048 { FRVBF_INSN_CLD, SEM_FN_NAME (frvbf,cld) },
28049 { FRVBF_INSN_CLDBF, SEM_FN_NAME (frvbf,cldbf) },
28050 { FRVBF_INSN_CLDHF, SEM_FN_NAME (frvbf,cldhf) },
28051 { FRVBF_INSN_CLDF, SEM_FN_NAME (frvbf,cldf) },
28052 { FRVBF_INSN_CLDD, SEM_FN_NAME (frvbf,cldd) },
28053 { FRVBF_INSN_CLDDF, SEM_FN_NAME (frvbf,clddf) },
28054 { FRVBF_INSN_CLDQ, SEM_FN_NAME (frvbf,cldq) },
28055 { FRVBF_INSN_CLDSBU, SEM_FN_NAME (frvbf,cldsbu) },
28056 { FRVBF_INSN_CLDUBU, SEM_FN_NAME (frvbf,cldubu) },
28057 { FRVBF_INSN_CLDSHU, SEM_FN_NAME (frvbf,cldshu) },
28058 { FRVBF_INSN_CLDUHU, SEM_FN_NAME (frvbf,clduhu) },
28059 { FRVBF_INSN_CLDU, SEM_FN_NAME (frvbf,cldu) },
28060 { FRVBF_INSN_CLDBFU, SEM_FN_NAME (frvbf,cldbfu) },
28061 { FRVBF_INSN_CLDHFU, SEM_FN_NAME (frvbf,cldhfu) },
28062 { FRVBF_INSN_CLDFU, SEM_FN_NAME (frvbf,cldfu) },
28063 { FRVBF_INSN_CLDDU, SEM_FN_NAME (frvbf,clddu) },
28064 { FRVBF_INSN_CLDDFU, SEM_FN_NAME (frvbf,clddfu) },
28065 { FRVBF_INSN_CLDQU, SEM_FN_NAME (frvbf,cldqu) },
28066 { FRVBF_INSN_CSTB, SEM_FN_NAME (frvbf,cstb) },
28067 { FRVBF_INSN_CSTH, SEM_FN_NAME (frvbf,csth) },
28068 { FRVBF_INSN_CST, SEM_FN_NAME (frvbf,cst) },
28069 { FRVBF_INSN_CSTBF, SEM_FN_NAME (frvbf,cstbf) },
28070 { FRVBF_INSN_CSTHF, SEM_FN_NAME (frvbf,csthf) },
28071 { FRVBF_INSN_CSTF, SEM_FN_NAME (frvbf,cstf) },
28072 { FRVBF_INSN_CSTD, SEM_FN_NAME (frvbf,cstd) },
28073 { FRVBF_INSN_CSTDF, SEM_FN_NAME (frvbf,cstdf) },
28074 { FRVBF_INSN_CSTQ, SEM_FN_NAME (frvbf,cstq) },
28075 { FRVBF_INSN_CSTBU, SEM_FN_NAME (frvbf,cstbu) },
28076 { FRVBF_INSN_CSTHU, SEM_FN_NAME (frvbf,csthu) },
28077 { FRVBF_INSN_CSTU, SEM_FN_NAME (frvbf,cstu) },
28078 { FRVBF_INSN_CSTBFU, SEM_FN_NAME (frvbf,cstbfu) },
28079 { FRVBF_INSN_CSTHFU, SEM_FN_NAME (frvbf,csthfu) },
28080 { FRVBF_INSN_CSTFU, SEM_FN_NAME (frvbf,cstfu) },
28081 { FRVBF_INSN_CSTDU, SEM_FN_NAME (frvbf,cstdu) },
28082 { FRVBF_INSN_CSTDFU, SEM_FN_NAME (frvbf,cstdfu) },
28083 { FRVBF_INSN_STBI, SEM_FN_NAME (frvbf,stbi) },
28084 { FRVBF_INSN_STHI, SEM_FN_NAME (frvbf,sthi) },
28085 { FRVBF_INSN_STI, SEM_FN_NAME (frvbf,sti) },
28086 { FRVBF_INSN_STBFI, SEM_FN_NAME (frvbf,stbfi) },
28087 { FRVBF_INSN_STHFI, SEM_FN_NAME (frvbf,sthfi) },
28088 { FRVBF_INSN_STFI, SEM_FN_NAME (frvbf,stfi) },
28089 { FRVBF_INSN_STDI, SEM_FN_NAME (frvbf,stdi) },
28090 { FRVBF_INSN_STDFI, SEM_FN_NAME (frvbf,stdfi) },
28091 { FRVBF_INSN_STQI, SEM_FN_NAME (frvbf,stqi) },
28092 { FRVBF_INSN_STQFI, SEM_FN_NAME (frvbf,stqfi) },
28093 { FRVBF_INSN_SWAP, SEM_FN_NAME (frvbf,swap) },
28094 { FRVBF_INSN_SWAPI, SEM_FN_NAME (frvbf,swapi) },
28095 { FRVBF_INSN_CSWAP, SEM_FN_NAME (frvbf,cswap) },
28096 { FRVBF_INSN_MOVGF, SEM_FN_NAME (frvbf,movgf) },
28097 { FRVBF_INSN_MOVFG, SEM_FN_NAME (frvbf,movfg) },
28098 { FRVBF_INSN_MOVGFD, SEM_FN_NAME (frvbf,movgfd) },
28099 { FRVBF_INSN_MOVFGD, SEM_FN_NAME (frvbf,movfgd) },
28100 { FRVBF_INSN_MOVGFQ, SEM_FN_NAME (frvbf,movgfq) },
28101 { FRVBF_INSN_MOVFGQ, SEM_FN_NAME (frvbf,movfgq) },
28102 { FRVBF_INSN_CMOVGF, SEM_FN_NAME (frvbf,cmovgf) },
28103 { FRVBF_INSN_CMOVFG, SEM_FN_NAME (frvbf,cmovfg) },
28104 { FRVBF_INSN_CMOVGFD, SEM_FN_NAME (frvbf,cmovgfd) },
28105 { FRVBF_INSN_CMOVFGD, SEM_FN_NAME (frvbf,cmovfgd) },
28106 { FRVBF_INSN_MOVGS, SEM_FN_NAME (frvbf,movgs) },
28107 { FRVBF_INSN_MOVSG, SEM_FN_NAME (frvbf,movsg) },
28108 { FRVBF_INSN_BRA, SEM_FN_NAME (frvbf,bra) },
28109 { FRVBF_INSN_BNO, SEM_FN_NAME (frvbf,bno) },
28110 { FRVBF_INSN_BEQ, SEM_FN_NAME (frvbf,beq) },
28111 { FRVBF_INSN_BNE, SEM_FN_NAME (frvbf,bne) },
28112 { FRVBF_INSN_BLE, SEM_FN_NAME (frvbf,ble) },
28113 { FRVBF_INSN_BGT, SEM_FN_NAME (frvbf,bgt) },
28114 { FRVBF_INSN_BLT, SEM_FN_NAME (frvbf,blt) },
28115 { FRVBF_INSN_BGE, SEM_FN_NAME (frvbf,bge) },
28116 { FRVBF_INSN_BLS, SEM_FN_NAME (frvbf,bls) },
28117 { FRVBF_INSN_BHI, SEM_FN_NAME (frvbf,bhi) },
28118 { FRVBF_INSN_BC, SEM_FN_NAME (frvbf,bc) },
28119 { FRVBF_INSN_BNC, SEM_FN_NAME (frvbf,bnc) },
28120 { FRVBF_INSN_BN, SEM_FN_NAME (frvbf,bn) },
28121 { FRVBF_INSN_BP, SEM_FN_NAME (frvbf,bp) },
28122 { FRVBF_INSN_BV, SEM_FN_NAME (frvbf,bv) },
28123 { FRVBF_INSN_BNV, SEM_FN_NAME (frvbf,bnv) },
28124 { FRVBF_INSN_FBRA, SEM_FN_NAME (frvbf,fbra) },
28125 { FRVBF_INSN_FBNO, SEM_FN_NAME (frvbf,fbno) },
28126 { FRVBF_INSN_FBNE, SEM_FN_NAME (frvbf,fbne) },
28127 { FRVBF_INSN_FBEQ, SEM_FN_NAME (frvbf,fbeq) },
28128 { FRVBF_INSN_FBLG, SEM_FN_NAME (frvbf,fblg) },
28129 { FRVBF_INSN_FBUE, SEM_FN_NAME (frvbf,fbue) },
28130 { FRVBF_INSN_FBUL, SEM_FN_NAME (frvbf,fbul) },
28131 { FRVBF_INSN_FBGE, SEM_FN_NAME (frvbf,fbge) },
28132 { FRVBF_INSN_FBLT, SEM_FN_NAME (frvbf,fblt) },
28133 { FRVBF_INSN_FBUGE, SEM_FN_NAME (frvbf,fbuge) },
28134 { FRVBF_INSN_FBUG, SEM_FN_NAME (frvbf,fbug) },
28135 { FRVBF_INSN_FBLE, SEM_FN_NAME (frvbf,fble) },
28136 { FRVBF_INSN_FBGT, SEM_FN_NAME (frvbf,fbgt) },
28137 { FRVBF_INSN_FBULE, SEM_FN_NAME (frvbf,fbule) },
28138 { FRVBF_INSN_FBU, SEM_FN_NAME (frvbf,fbu) },
28139 { FRVBF_INSN_FBO, SEM_FN_NAME (frvbf,fbo) },
28140 { FRVBF_INSN_BCTRLR, SEM_FN_NAME (frvbf,bctrlr) },
28141 { FRVBF_INSN_BRALR, SEM_FN_NAME (frvbf,bralr) },
28142 { FRVBF_INSN_BNOLR, SEM_FN_NAME (frvbf,bnolr) },
28143 { FRVBF_INSN_BEQLR, SEM_FN_NAME (frvbf,beqlr) },
28144 { FRVBF_INSN_BNELR, SEM_FN_NAME (frvbf,bnelr) },
28145 { FRVBF_INSN_BLELR, SEM_FN_NAME (frvbf,blelr) },
28146 { FRVBF_INSN_BGTLR, SEM_FN_NAME (frvbf,bgtlr) },
28147 { FRVBF_INSN_BLTLR, SEM_FN_NAME (frvbf,bltlr) },
28148 { FRVBF_INSN_BGELR, SEM_FN_NAME (frvbf,bgelr) },
28149 { FRVBF_INSN_BLSLR, SEM_FN_NAME (frvbf,blslr) },
28150 { FRVBF_INSN_BHILR, SEM_FN_NAME (frvbf,bhilr) },
28151 { FRVBF_INSN_BCLR, SEM_FN_NAME (frvbf,bclr) },
28152 { FRVBF_INSN_BNCLR, SEM_FN_NAME (frvbf,bnclr) },
28153 { FRVBF_INSN_BNLR, SEM_FN_NAME (frvbf,bnlr) },
28154 { FRVBF_INSN_BPLR, SEM_FN_NAME (frvbf,bplr) },
28155 { FRVBF_INSN_BVLR, SEM_FN_NAME (frvbf,bvlr) },
28156 { FRVBF_INSN_BNVLR, SEM_FN_NAME (frvbf,bnvlr) },
28157 { FRVBF_INSN_FBRALR, SEM_FN_NAME (frvbf,fbralr) },
28158 { FRVBF_INSN_FBNOLR, SEM_FN_NAME (frvbf,fbnolr) },
28159 { FRVBF_INSN_FBEQLR, SEM_FN_NAME (frvbf,fbeqlr) },
28160 { FRVBF_INSN_FBNELR, SEM_FN_NAME (frvbf,fbnelr) },
28161 { FRVBF_INSN_FBLGLR, SEM_FN_NAME (frvbf,fblglr) },
28162 { FRVBF_INSN_FBUELR, SEM_FN_NAME (frvbf,fbuelr) },
28163 { FRVBF_INSN_FBULLR, SEM_FN_NAME (frvbf,fbullr) },
28164 { FRVBF_INSN_FBGELR, SEM_FN_NAME (frvbf,fbgelr) },
28165 { FRVBF_INSN_FBLTLR, SEM_FN_NAME (frvbf,fbltlr) },
28166 { FRVBF_INSN_FBUGELR, SEM_FN_NAME (frvbf,fbugelr) },
28167 { FRVBF_INSN_FBUGLR, SEM_FN_NAME (frvbf,fbuglr) },
28168 { FRVBF_INSN_FBLELR, SEM_FN_NAME (frvbf,fblelr) },
28169 { FRVBF_INSN_FBGTLR, SEM_FN_NAME (frvbf,fbgtlr) },
28170 { FRVBF_INSN_FBULELR, SEM_FN_NAME (frvbf,fbulelr) },
28171 { FRVBF_INSN_FBULR, SEM_FN_NAME (frvbf,fbulr) },
28172 { FRVBF_INSN_FBOLR, SEM_FN_NAME (frvbf,fbolr) },
28173 { FRVBF_INSN_BCRALR, SEM_FN_NAME (frvbf,bcralr) },
28174 { FRVBF_INSN_BCNOLR, SEM_FN_NAME (frvbf,bcnolr) },
28175 { FRVBF_INSN_BCEQLR, SEM_FN_NAME (frvbf,bceqlr) },
28176 { FRVBF_INSN_BCNELR, SEM_FN_NAME (frvbf,bcnelr) },
28177 { FRVBF_INSN_BCLELR, SEM_FN_NAME (frvbf,bclelr) },
28178 { FRVBF_INSN_BCGTLR, SEM_FN_NAME (frvbf,bcgtlr) },
28179 { FRVBF_INSN_BCLTLR, SEM_FN_NAME (frvbf,bcltlr) },
28180 { FRVBF_INSN_BCGELR, SEM_FN_NAME (frvbf,bcgelr) },
28181 { FRVBF_INSN_BCLSLR, SEM_FN_NAME (frvbf,bclslr) },
28182 { FRVBF_INSN_BCHILR, SEM_FN_NAME (frvbf,bchilr) },
28183 { FRVBF_INSN_BCCLR, SEM_FN_NAME (frvbf,bcclr) },
28184 { FRVBF_INSN_BCNCLR, SEM_FN_NAME (frvbf,bcnclr) },
28185 { FRVBF_INSN_BCNLR, SEM_FN_NAME (frvbf,bcnlr) },
28186 { FRVBF_INSN_BCPLR, SEM_FN_NAME (frvbf,bcplr) },
28187 { FRVBF_INSN_BCVLR, SEM_FN_NAME (frvbf,bcvlr) },
28188 { FRVBF_INSN_BCNVLR, SEM_FN_NAME (frvbf,bcnvlr) },
28189 { FRVBF_INSN_FCBRALR, SEM_FN_NAME (frvbf,fcbralr) },
28190 { FRVBF_INSN_FCBNOLR, SEM_FN_NAME (frvbf,fcbnolr) },
28191 { FRVBF_INSN_FCBEQLR, SEM_FN_NAME (frvbf,fcbeqlr) },
28192 { FRVBF_INSN_FCBNELR, SEM_FN_NAME (frvbf,fcbnelr) },
28193 { FRVBF_INSN_FCBLGLR, SEM_FN_NAME (frvbf,fcblglr) },
28194 { FRVBF_INSN_FCBUELR, SEM_FN_NAME (frvbf,fcbuelr) },
28195 { FRVBF_INSN_FCBULLR, SEM_FN_NAME (frvbf,fcbullr) },
28196 { FRVBF_INSN_FCBGELR, SEM_FN_NAME (frvbf,fcbgelr) },
28197 { FRVBF_INSN_FCBLTLR, SEM_FN_NAME (frvbf,fcbltlr) },
28198 { FRVBF_INSN_FCBUGELR, SEM_FN_NAME (frvbf,fcbugelr) },
28199 { FRVBF_INSN_FCBUGLR, SEM_FN_NAME (frvbf,fcbuglr) },
28200 { FRVBF_INSN_FCBLELR, SEM_FN_NAME (frvbf,fcblelr) },
28201 { FRVBF_INSN_FCBGTLR, SEM_FN_NAME (frvbf,fcbgtlr) },
28202 { FRVBF_INSN_FCBULELR, SEM_FN_NAME (frvbf,fcbulelr) },
28203 { FRVBF_INSN_FCBULR, SEM_FN_NAME (frvbf,fcbulr) },
28204 { FRVBF_INSN_FCBOLR, SEM_FN_NAME (frvbf,fcbolr) },
28205 { FRVBF_INSN_JMPL, SEM_FN_NAME (frvbf,jmpl) },
28206 { FRVBF_INSN_CALLL, SEM_FN_NAME (frvbf,calll) },
28207 { FRVBF_INSN_JMPIL, SEM_FN_NAME (frvbf,jmpil) },
28208 { FRVBF_INSN_CALLIL, SEM_FN_NAME (frvbf,callil) },
28209 { FRVBF_INSN_CALL, SEM_FN_NAME (frvbf,call) },
28210 { FRVBF_INSN_RETT, SEM_FN_NAME (frvbf,rett) },
28211 { FRVBF_INSN_REI, SEM_FN_NAME (frvbf,rei) },
28212 { FRVBF_INSN_TRA, SEM_FN_NAME (frvbf,tra) },
28213 { FRVBF_INSN_TNO, SEM_FN_NAME (frvbf,tno) },
28214 { FRVBF_INSN_TEQ, SEM_FN_NAME (frvbf,teq) },
28215 { FRVBF_INSN_TNE, SEM_FN_NAME (frvbf,tne) },
28216 { FRVBF_INSN_TLE, SEM_FN_NAME (frvbf,tle) },
28217 { FRVBF_INSN_TGT, SEM_FN_NAME (frvbf,tgt) },
28218 { FRVBF_INSN_TLT, SEM_FN_NAME (frvbf,tlt) },
28219 { FRVBF_INSN_TGE, SEM_FN_NAME (frvbf,tge) },
28220 { FRVBF_INSN_TLS, SEM_FN_NAME (frvbf,tls) },
28221 { FRVBF_INSN_THI, SEM_FN_NAME (frvbf,thi) },
28222 { FRVBF_INSN_TC, SEM_FN_NAME (frvbf,tc) },
28223 { FRVBF_INSN_TNC, SEM_FN_NAME (frvbf,tnc) },
28224 { FRVBF_INSN_TN, SEM_FN_NAME (frvbf,tn) },
28225 { FRVBF_INSN_TP, SEM_FN_NAME (frvbf,tp) },
28226 { FRVBF_INSN_TV, SEM_FN_NAME (frvbf,tv) },
28227 { FRVBF_INSN_TNV, SEM_FN_NAME (frvbf,tnv) },
28228 { FRVBF_INSN_FTRA, SEM_FN_NAME (frvbf,ftra) },
28229 { FRVBF_INSN_FTNO, SEM_FN_NAME (frvbf,ftno) },
28230 { FRVBF_INSN_FTNE, SEM_FN_NAME (frvbf,ftne) },
28231 { FRVBF_INSN_FTEQ, SEM_FN_NAME (frvbf,fteq) },
28232 { FRVBF_INSN_FTLG, SEM_FN_NAME (frvbf,ftlg) },
28233 { FRVBF_INSN_FTUE, SEM_FN_NAME (frvbf,ftue) },
28234 { FRVBF_INSN_FTUL, SEM_FN_NAME (frvbf,ftul) },
28235 { FRVBF_INSN_FTGE, SEM_FN_NAME (frvbf,ftge) },
28236 { FRVBF_INSN_FTLT, SEM_FN_NAME (frvbf,ftlt) },
28237 { FRVBF_INSN_FTUGE, SEM_FN_NAME (frvbf,ftuge) },
28238 { FRVBF_INSN_FTUG, SEM_FN_NAME (frvbf,ftug) },
28239 { FRVBF_INSN_FTLE, SEM_FN_NAME (frvbf,ftle) },
28240 { FRVBF_INSN_FTGT, SEM_FN_NAME (frvbf,ftgt) },
28241 { FRVBF_INSN_FTULE, SEM_FN_NAME (frvbf,ftule) },
28242 { FRVBF_INSN_FTU, SEM_FN_NAME (frvbf,ftu) },
28243 { FRVBF_INSN_FTO, SEM_FN_NAME (frvbf,fto) },
28244 { FRVBF_INSN_TIRA, SEM_FN_NAME (frvbf,tira) },
28245 { FRVBF_INSN_TINO, SEM_FN_NAME (frvbf,tino) },
28246 { FRVBF_INSN_TIEQ, SEM_FN_NAME (frvbf,tieq) },
28247 { FRVBF_INSN_TINE, SEM_FN_NAME (frvbf,tine) },
28248 { FRVBF_INSN_TILE, SEM_FN_NAME (frvbf,tile) },
28249 { FRVBF_INSN_TIGT, SEM_FN_NAME (frvbf,tigt) },
28250 { FRVBF_INSN_TILT, SEM_FN_NAME (frvbf,tilt) },
28251 { FRVBF_INSN_TIGE, SEM_FN_NAME (frvbf,tige) },
28252 { FRVBF_INSN_TILS, SEM_FN_NAME (frvbf,tils) },
28253 { FRVBF_INSN_TIHI, SEM_FN_NAME (frvbf,tihi) },
28254 { FRVBF_INSN_TIC, SEM_FN_NAME (frvbf,tic) },
28255 { FRVBF_INSN_TINC, SEM_FN_NAME (frvbf,tinc) },
28256 { FRVBF_INSN_TIN, SEM_FN_NAME (frvbf,tin) },
28257 { FRVBF_INSN_TIP, SEM_FN_NAME (frvbf,tip) },
28258 { FRVBF_INSN_TIV, SEM_FN_NAME (frvbf,tiv) },
28259 { FRVBF_INSN_TINV, SEM_FN_NAME (frvbf,tinv) },
28260 { FRVBF_INSN_FTIRA, SEM_FN_NAME (frvbf,ftira) },
28261 { FRVBF_INSN_FTINO, SEM_FN_NAME (frvbf,ftino) },
28262 { FRVBF_INSN_FTINE, SEM_FN_NAME (frvbf,ftine) },
28263 { FRVBF_INSN_FTIEQ, SEM_FN_NAME (frvbf,ftieq) },
28264 { FRVBF_INSN_FTILG, SEM_FN_NAME (frvbf,ftilg) },
28265 { FRVBF_INSN_FTIUE, SEM_FN_NAME (frvbf,ftiue) },
28266 { FRVBF_INSN_FTIUL, SEM_FN_NAME (frvbf,ftiul) },
28267 { FRVBF_INSN_FTIGE, SEM_FN_NAME (frvbf,ftige) },
28268 { FRVBF_INSN_FTILT, SEM_FN_NAME (frvbf,ftilt) },
28269 { FRVBF_INSN_FTIUGE, SEM_FN_NAME (frvbf,ftiuge) },
28270 { FRVBF_INSN_FTIUG, SEM_FN_NAME (frvbf,ftiug) },
28271 { FRVBF_INSN_FTILE, SEM_FN_NAME (frvbf,ftile) },
28272 { FRVBF_INSN_FTIGT, SEM_FN_NAME (frvbf,ftigt) },
28273 { FRVBF_INSN_FTIULE, SEM_FN_NAME (frvbf,ftiule) },
28274 { FRVBF_INSN_FTIU, SEM_FN_NAME (frvbf,ftiu) },
28275 { FRVBF_INSN_FTIO, SEM_FN_NAME (frvbf,ftio) },
28276 { FRVBF_INSN_BREAK, SEM_FN_NAME (frvbf,break) },
28277 { FRVBF_INSN_MTRAP, SEM_FN_NAME (frvbf,mtrap) },
28278 { FRVBF_INSN_ANDCR, SEM_FN_NAME (frvbf,andcr) },
28279 { FRVBF_INSN_ORCR, SEM_FN_NAME (frvbf,orcr) },
28280 { FRVBF_INSN_XORCR, SEM_FN_NAME (frvbf,xorcr) },
28281 { FRVBF_INSN_NANDCR, SEM_FN_NAME (frvbf,nandcr) },
28282 { FRVBF_INSN_NORCR, SEM_FN_NAME (frvbf,norcr) },
28283 { FRVBF_INSN_ANDNCR, SEM_FN_NAME (frvbf,andncr) },
28284 { FRVBF_INSN_ORNCR, SEM_FN_NAME (frvbf,orncr) },
28285 { FRVBF_INSN_NANDNCR, SEM_FN_NAME (frvbf,nandncr) },
28286 { FRVBF_INSN_NORNCR, SEM_FN_NAME (frvbf,norncr) },
28287 { FRVBF_INSN_NOTCR, SEM_FN_NAME (frvbf,notcr) },
28288 { FRVBF_INSN_CKRA, SEM_FN_NAME (frvbf,ckra) },
28289 { FRVBF_INSN_CKNO, SEM_FN_NAME (frvbf,ckno) },
28290 { FRVBF_INSN_CKEQ, SEM_FN_NAME (frvbf,ckeq) },
28291 { FRVBF_INSN_CKNE, SEM_FN_NAME (frvbf,ckne) },
28292 { FRVBF_INSN_CKLE, SEM_FN_NAME (frvbf,ckle) },
28293 { FRVBF_INSN_CKGT, SEM_FN_NAME (frvbf,ckgt) },
28294 { FRVBF_INSN_CKLT, SEM_FN_NAME (frvbf,cklt) },
28295 { FRVBF_INSN_CKGE, SEM_FN_NAME (frvbf,ckge) },
28296 { FRVBF_INSN_CKLS, SEM_FN_NAME (frvbf,ckls) },
28297 { FRVBF_INSN_CKHI, SEM_FN_NAME (frvbf,ckhi) },
28298 { FRVBF_INSN_CKC, SEM_FN_NAME (frvbf,ckc) },
28299 { FRVBF_INSN_CKNC, SEM_FN_NAME (frvbf,cknc) },
28300 { FRVBF_INSN_CKN, SEM_FN_NAME (frvbf,ckn) },
28301 { FRVBF_INSN_CKP, SEM_FN_NAME (frvbf,ckp) },
28302 { FRVBF_INSN_CKV, SEM_FN_NAME (frvbf,ckv) },
28303 { FRVBF_INSN_CKNV, SEM_FN_NAME (frvbf,cknv) },
28304 { FRVBF_INSN_FCKRA, SEM_FN_NAME (frvbf,fckra) },
28305 { FRVBF_INSN_FCKNO, SEM_FN_NAME (frvbf,fckno) },
28306 { FRVBF_INSN_FCKNE, SEM_FN_NAME (frvbf,fckne) },
28307 { FRVBF_INSN_FCKEQ, SEM_FN_NAME (frvbf,fckeq) },
28308 { FRVBF_INSN_FCKLG, SEM_FN_NAME (frvbf,fcklg) },
28309 { FRVBF_INSN_FCKUE, SEM_FN_NAME (frvbf,fckue) },
28310 { FRVBF_INSN_FCKUL, SEM_FN_NAME (frvbf,fckul) },
28311 { FRVBF_INSN_FCKGE, SEM_FN_NAME (frvbf,fckge) },
28312 { FRVBF_INSN_FCKLT, SEM_FN_NAME (frvbf,fcklt) },
28313 { FRVBF_INSN_FCKUGE, SEM_FN_NAME (frvbf,fckuge) },
28314 { FRVBF_INSN_FCKUG, SEM_FN_NAME (frvbf,fckug) },
28315 { FRVBF_INSN_FCKLE, SEM_FN_NAME (frvbf,fckle) },
28316 { FRVBF_INSN_FCKGT, SEM_FN_NAME (frvbf,fckgt) },
28317 { FRVBF_INSN_FCKULE, SEM_FN_NAME (frvbf,fckule) },
28318 { FRVBF_INSN_FCKU, SEM_FN_NAME (frvbf,fcku) },
28319 { FRVBF_INSN_FCKO, SEM_FN_NAME (frvbf,fcko) },
28320 { FRVBF_INSN_CCKRA, SEM_FN_NAME (frvbf,cckra) },
28321 { FRVBF_INSN_CCKNO, SEM_FN_NAME (frvbf,cckno) },
28322 { FRVBF_INSN_CCKEQ, SEM_FN_NAME (frvbf,cckeq) },
28323 { FRVBF_INSN_CCKNE, SEM_FN_NAME (frvbf,cckne) },
28324 { FRVBF_INSN_CCKLE, SEM_FN_NAME (frvbf,cckle) },
28325 { FRVBF_INSN_CCKGT, SEM_FN_NAME (frvbf,cckgt) },
28326 { FRVBF_INSN_CCKLT, SEM_FN_NAME (frvbf,ccklt) },
28327 { FRVBF_INSN_CCKGE, SEM_FN_NAME (frvbf,cckge) },
28328 { FRVBF_INSN_CCKLS, SEM_FN_NAME (frvbf,cckls) },
28329 { FRVBF_INSN_CCKHI, SEM_FN_NAME (frvbf,cckhi) },
28330 { FRVBF_INSN_CCKC, SEM_FN_NAME (frvbf,cckc) },
28331 { FRVBF_INSN_CCKNC, SEM_FN_NAME (frvbf,ccknc) },
28332 { FRVBF_INSN_CCKN, SEM_FN_NAME (frvbf,cckn) },
28333 { FRVBF_INSN_CCKP, SEM_FN_NAME (frvbf,cckp) },
28334 { FRVBF_INSN_CCKV, SEM_FN_NAME (frvbf,cckv) },
28335 { FRVBF_INSN_CCKNV, SEM_FN_NAME (frvbf,ccknv) },
28336 { FRVBF_INSN_CFCKRA, SEM_FN_NAME (frvbf,cfckra) },
28337 { FRVBF_INSN_CFCKNO, SEM_FN_NAME (frvbf,cfckno) },
28338 { FRVBF_INSN_CFCKNE, SEM_FN_NAME (frvbf,cfckne) },
28339 { FRVBF_INSN_CFCKEQ, SEM_FN_NAME (frvbf,cfckeq) },
28340 { FRVBF_INSN_CFCKLG, SEM_FN_NAME (frvbf,cfcklg) },
28341 { FRVBF_INSN_CFCKUE, SEM_FN_NAME (frvbf,cfckue) },
28342 { FRVBF_INSN_CFCKUL, SEM_FN_NAME (frvbf,cfckul) },
28343 { FRVBF_INSN_CFCKGE, SEM_FN_NAME (frvbf,cfckge) },
28344 { FRVBF_INSN_CFCKLT, SEM_FN_NAME (frvbf,cfcklt) },
28345 { FRVBF_INSN_CFCKUGE, SEM_FN_NAME (frvbf,cfckuge) },
28346 { FRVBF_INSN_CFCKUG, SEM_FN_NAME (frvbf,cfckug) },
28347 { FRVBF_INSN_CFCKLE, SEM_FN_NAME (frvbf,cfckle) },
28348 { FRVBF_INSN_CFCKGT, SEM_FN_NAME (frvbf,cfckgt) },
28349 { FRVBF_INSN_CFCKULE, SEM_FN_NAME (frvbf,cfckule) },
28350 { FRVBF_INSN_CFCKU, SEM_FN_NAME (frvbf,cfcku) },
28351 { FRVBF_INSN_CFCKO, SEM_FN_NAME (frvbf,cfcko) },
28352 { FRVBF_INSN_CJMPL, SEM_FN_NAME (frvbf,cjmpl) },
28353 { FRVBF_INSN_CCALLL, SEM_FN_NAME (frvbf,ccalll) },
28354 { FRVBF_INSN_ICI, SEM_FN_NAME (frvbf,ici) },
28355 { FRVBF_INSN_DCI, SEM_FN_NAME (frvbf,dci) },
28356 { FRVBF_INSN_ICEI, SEM_FN_NAME (frvbf,icei) },
28357 { FRVBF_INSN_DCEI, SEM_FN_NAME (frvbf,dcei) },
28358 { FRVBF_INSN_DCF, SEM_FN_NAME (frvbf,dcf) },
28359 { FRVBF_INSN_DCEF, SEM_FN_NAME (frvbf,dcef) },
28360 { FRVBF_INSN_WITLB, SEM_FN_NAME (frvbf,witlb) },
28361 { FRVBF_INSN_WDTLB, SEM_FN_NAME (frvbf,wdtlb) },
28362 { FRVBF_INSN_ITLBI, SEM_FN_NAME (frvbf,itlbi) },
28363 { FRVBF_INSN_DTLBI, SEM_FN_NAME (frvbf,dtlbi) },
28364 { FRVBF_INSN_ICPL, SEM_FN_NAME (frvbf,icpl) },
28365 { FRVBF_INSN_DCPL, SEM_FN_NAME (frvbf,dcpl) },
28366 { FRVBF_INSN_ICUL, SEM_FN_NAME (frvbf,icul) },
28367 { FRVBF_INSN_DCUL, SEM_FN_NAME (frvbf,dcul) },
28368 { FRVBF_INSN_BAR, SEM_FN_NAME (frvbf,bar) },
28369 { FRVBF_INSN_MEMBAR, SEM_FN_NAME (frvbf,membar) },
28370 { FRVBF_INSN_COP1, SEM_FN_NAME (frvbf,cop1) },
28371 { FRVBF_INSN_COP2, SEM_FN_NAME (frvbf,cop2) },
28372 { FRVBF_INSN_CLRGR, SEM_FN_NAME (frvbf,clrgr) },
28373 { FRVBF_INSN_CLRFR, SEM_FN_NAME (frvbf,clrfr) },
28374 { FRVBF_INSN_CLRGA, SEM_FN_NAME (frvbf,clrga) },
28375 { FRVBF_INSN_CLRFA, SEM_FN_NAME (frvbf,clrfa) },
28376 { FRVBF_INSN_COMMITGR, SEM_FN_NAME (frvbf,commitgr) },
28377 { FRVBF_INSN_COMMITFR, SEM_FN_NAME (frvbf,commitfr) },
28378 { FRVBF_INSN_COMMITGA, SEM_FN_NAME (frvbf,commitga) },
28379 { FRVBF_INSN_COMMITFA, SEM_FN_NAME (frvbf,commitfa) },
28380 { FRVBF_INSN_FITOS, SEM_FN_NAME (frvbf,fitos) },
28381 { FRVBF_INSN_FSTOI, SEM_FN_NAME (frvbf,fstoi) },
28382 { FRVBF_INSN_FITOD, SEM_FN_NAME (frvbf,fitod) },
28383 { FRVBF_INSN_FDTOI, SEM_FN_NAME (frvbf,fdtoi) },
28384 { FRVBF_INSN_FDITOS, SEM_FN_NAME (frvbf,fditos) },
28385 { FRVBF_INSN_FDSTOI, SEM_FN_NAME (frvbf,fdstoi) },
28386 { FRVBF_INSN_NFDITOS, SEM_FN_NAME (frvbf,nfditos) },
28387 { FRVBF_INSN_NFDSTOI, SEM_FN_NAME (frvbf,nfdstoi) },
28388 { FRVBF_INSN_CFITOS, SEM_FN_NAME (frvbf,cfitos) },
28389 { FRVBF_INSN_CFSTOI, SEM_FN_NAME (frvbf,cfstoi) },
28390 { FRVBF_INSN_NFITOS, SEM_FN_NAME (frvbf,nfitos) },
28391 { FRVBF_INSN_NFSTOI, SEM_FN_NAME (frvbf,nfstoi) },
28392 { FRVBF_INSN_FMOVS, SEM_FN_NAME (frvbf,fmovs) },
28393 { FRVBF_INSN_FMOVD, SEM_FN_NAME (frvbf,fmovd) },
28394 { FRVBF_INSN_FDMOVS, SEM_FN_NAME (frvbf,fdmovs) },
28395 { FRVBF_INSN_CFMOVS, SEM_FN_NAME (frvbf,cfmovs) },
28396 { FRVBF_INSN_FNEGS, SEM_FN_NAME (frvbf,fnegs) },
28397 { FRVBF_INSN_FNEGD, SEM_FN_NAME (frvbf,fnegd) },
28398 { FRVBF_INSN_FDNEGS, SEM_FN_NAME (frvbf,fdnegs) },
28399 { FRVBF_INSN_CFNEGS, SEM_FN_NAME (frvbf,cfnegs) },
28400 { FRVBF_INSN_FABSS, SEM_FN_NAME (frvbf,fabss) },
28401 { FRVBF_INSN_FABSD, SEM_FN_NAME (frvbf,fabsd) },
28402 { FRVBF_INSN_FDABSS, SEM_FN_NAME (frvbf,fdabss) },
28403 { FRVBF_INSN_CFABSS, SEM_FN_NAME (frvbf,cfabss) },
28404 { FRVBF_INSN_FSQRTS, SEM_FN_NAME (frvbf,fsqrts) },
28405 { FRVBF_INSN_FDSQRTS, SEM_FN_NAME (frvbf,fdsqrts) },
28406 { FRVBF_INSN_NFDSQRTS, SEM_FN_NAME (frvbf,nfdsqrts) },
28407 { FRVBF_INSN_FSQRTD, SEM_FN_NAME (frvbf,fsqrtd) },
28408 { FRVBF_INSN_CFSQRTS, SEM_FN_NAME (frvbf,cfsqrts) },
28409 { FRVBF_INSN_NFSQRTS, SEM_FN_NAME (frvbf,nfsqrts) },
28410 { FRVBF_INSN_FADDS, SEM_FN_NAME (frvbf,fadds) },
28411 { FRVBF_INSN_FSUBS, SEM_FN_NAME (frvbf,fsubs) },
28412 { FRVBF_INSN_FMULS, SEM_FN_NAME (frvbf,fmuls) },
28413 { FRVBF_INSN_FDIVS, SEM_FN_NAME (frvbf,fdivs) },
28414 { FRVBF_INSN_FADDD, SEM_FN_NAME (frvbf,faddd) },
28415 { FRVBF_INSN_FSUBD, SEM_FN_NAME (frvbf,fsubd) },
28416 { FRVBF_INSN_FMULD, SEM_FN_NAME (frvbf,fmuld) },
28417 { FRVBF_INSN_FDIVD, SEM_FN_NAME (frvbf,fdivd) },
28418 { FRVBF_INSN_CFADDS, SEM_FN_NAME (frvbf,cfadds) },
28419 { FRVBF_INSN_CFSUBS, SEM_FN_NAME (frvbf,cfsubs) },
28420 { FRVBF_INSN_CFMULS, SEM_FN_NAME (frvbf,cfmuls) },
28421 { FRVBF_INSN_CFDIVS, SEM_FN_NAME (frvbf,cfdivs) },
28422 { FRVBF_INSN_NFADDS, SEM_FN_NAME (frvbf,nfadds) },
28423 { FRVBF_INSN_NFSUBS, SEM_FN_NAME (frvbf,nfsubs) },
28424 { FRVBF_INSN_NFMULS, SEM_FN_NAME (frvbf,nfmuls) },
28425 { FRVBF_INSN_NFDIVS, SEM_FN_NAME (frvbf,nfdivs) },
28426 { FRVBF_INSN_FCMPS, SEM_FN_NAME (frvbf,fcmps) },
28427 { FRVBF_INSN_FCMPD, SEM_FN_NAME (frvbf,fcmpd) },
28428 { FRVBF_INSN_CFCMPS, SEM_FN_NAME (frvbf,cfcmps) },
28429 { FRVBF_INSN_FDCMPS, SEM_FN_NAME (frvbf,fdcmps) },
28430 { FRVBF_INSN_FMADDS, SEM_FN_NAME (frvbf,fmadds) },
28431 { FRVBF_INSN_FMSUBS, SEM_FN_NAME (frvbf,fmsubs) },
28432 { FRVBF_INSN_FMADDD, SEM_FN_NAME (frvbf,fmaddd) },
28433 { FRVBF_INSN_FMSUBD, SEM_FN_NAME (frvbf,fmsubd) },
28434 { FRVBF_INSN_FDMADDS, SEM_FN_NAME (frvbf,fdmadds) },
28435 { FRVBF_INSN_NFDMADDS, SEM_FN_NAME (frvbf,nfdmadds) },
28436 { FRVBF_INSN_CFMADDS, SEM_FN_NAME (frvbf,cfmadds) },
28437 { FRVBF_INSN_CFMSUBS, SEM_FN_NAME (frvbf,cfmsubs) },
28438 { FRVBF_INSN_NFMADDS, SEM_FN_NAME (frvbf,nfmadds) },
28439 { FRVBF_INSN_NFMSUBS, SEM_FN_NAME (frvbf,nfmsubs) },
28440 { FRVBF_INSN_FMAS, SEM_FN_NAME (frvbf,fmas) },
28441 { FRVBF_INSN_FMSS, SEM_FN_NAME (frvbf,fmss) },
28442 { FRVBF_INSN_FDMAS, SEM_FN_NAME (frvbf,fdmas) },
28443 { FRVBF_INSN_FDMSS, SEM_FN_NAME (frvbf,fdmss) },
28444 { FRVBF_INSN_NFDMAS, SEM_FN_NAME (frvbf,nfdmas) },
28445 { FRVBF_INSN_NFDMSS, SEM_FN_NAME (frvbf,nfdmss) },
28446 { FRVBF_INSN_CFMAS, SEM_FN_NAME (frvbf,cfmas) },
28447 { FRVBF_INSN_CFMSS, SEM_FN_NAME (frvbf,cfmss) },
28448 { FRVBF_INSN_FMAD, SEM_FN_NAME (frvbf,fmad) },
28449 { FRVBF_INSN_FMSD, SEM_FN_NAME (frvbf,fmsd) },
28450 { FRVBF_INSN_NFMAS, SEM_FN_NAME (frvbf,nfmas) },
28451 { FRVBF_INSN_NFMSS, SEM_FN_NAME (frvbf,nfmss) },
28452 { FRVBF_INSN_FDADDS, SEM_FN_NAME (frvbf,fdadds) },
28453 { FRVBF_INSN_FDSUBS, SEM_FN_NAME (frvbf,fdsubs) },
28454 { FRVBF_INSN_FDMULS, SEM_FN_NAME (frvbf,fdmuls) },
28455 { FRVBF_INSN_FDDIVS, SEM_FN_NAME (frvbf,fddivs) },
28456 { FRVBF_INSN_FDSADS, SEM_FN_NAME (frvbf,fdsads) },
28457 { FRVBF_INSN_FDMULCS, SEM_FN_NAME (frvbf,fdmulcs) },
28458 { FRVBF_INSN_NFDMULCS, SEM_FN_NAME (frvbf,nfdmulcs) },
28459 { FRVBF_INSN_NFDADDS, SEM_FN_NAME (frvbf,nfdadds) },
28460 { FRVBF_INSN_NFDSUBS, SEM_FN_NAME (frvbf,nfdsubs) },
28461 { FRVBF_INSN_NFDMULS, SEM_FN_NAME (frvbf,nfdmuls) },
28462 { FRVBF_INSN_NFDDIVS, SEM_FN_NAME (frvbf,nfddivs) },
28463 { FRVBF_INSN_NFDSADS, SEM_FN_NAME (frvbf,nfdsads) },
28464 { FRVBF_INSN_NFDCMPS, SEM_FN_NAME (frvbf,nfdcmps) },
28465 { FRVBF_INSN_MHSETLOS, SEM_FN_NAME (frvbf,mhsetlos) },
28466 { FRVBF_INSN_MHSETHIS, SEM_FN_NAME (frvbf,mhsethis) },
28467 { FRVBF_INSN_MHDSETS, SEM_FN_NAME (frvbf,mhdsets) },
28468 { FRVBF_INSN_MHSETLOH, SEM_FN_NAME (frvbf,mhsetloh) },
28469 { FRVBF_INSN_MHSETHIH, SEM_FN_NAME (frvbf,mhsethih) },
28470 { FRVBF_INSN_MHDSETH, SEM_FN_NAME (frvbf,mhdseth) },
28471 { FRVBF_INSN_MAND, SEM_FN_NAME (frvbf,mand) },
28472 { FRVBF_INSN_MOR, SEM_FN_NAME (frvbf,mor) },
28473 { FRVBF_INSN_MXOR, SEM_FN_NAME (frvbf,mxor) },
28474 { FRVBF_INSN_CMAND, SEM_FN_NAME (frvbf,cmand) },
28475 { FRVBF_INSN_CMOR, SEM_FN_NAME (frvbf,cmor) },
28476 { FRVBF_INSN_CMXOR, SEM_FN_NAME (frvbf,cmxor) },
28477 { FRVBF_INSN_MNOT, SEM_FN_NAME (frvbf,mnot) },
28478 { FRVBF_INSN_CMNOT, SEM_FN_NAME (frvbf,cmnot) },
28479 { FRVBF_INSN_MROTLI, SEM_FN_NAME (frvbf,mrotli) },
28480 { FRVBF_INSN_MROTRI, SEM_FN_NAME (frvbf,mrotri) },
28481 { FRVBF_INSN_MWCUT, SEM_FN_NAME (frvbf,mwcut) },
28482 { FRVBF_INSN_MWCUTI, SEM_FN_NAME (frvbf,mwcuti) },
28483 { FRVBF_INSN_MCUT, SEM_FN_NAME (frvbf,mcut) },
28484 { FRVBF_INSN_MCUTI, SEM_FN_NAME (frvbf,mcuti) },
28485 { FRVBF_INSN_MCUTSS, SEM_FN_NAME (frvbf,mcutss) },
28486 { FRVBF_INSN_MCUTSSI, SEM_FN_NAME (frvbf,mcutssi) },
28487 { FRVBF_INSN_MDCUTSSI, SEM_FN_NAME (frvbf,mdcutssi) },
28488 { FRVBF_INSN_MAVEH, SEM_FN_NAME (frvbf,maveh) },
28489 { FRVBF_INSN_MSLLHI, SEM_FN_NAME (frvbf,msllhi) },
28490 { FRVBF_INSN_MSRLHI, SEM_FN_NAME (frvbf,msrlhi) },
28491 { FRVBF_INSN_MSRAHI, SEM_FN_NAME (frvbf,msrahi) },
28492 { FRVBF_INSN_MDROTLI, SEM_FN_NAME (frvbf,mdrotli) },
28493 { FRVBF_INSN_MCPLHI, SEM_FN_NAME (frvbf,mcplhi) },
28494 { FRVBF_INSN_MCPLI, SEM_FN_NAME (frvbf,mcpli) },
28495 { FRVBF_INSN_MSATHS, SEM_FN_NAME (frvbf,msaths) },
28496 { FRVBF_INSN_MQSATHS, SEM_FN_NAME (frvbf,mqsaths) },
28497 { FRVBF_INSN_MSATHU, SEM_FN_NAME (frvbf,msathu) },
28498 { FRVBF_INSN_MCMPSH, SEM_FN_NAME (frvbf,mcmpsh) },
28499 { FRVBF_INSN_MCMPUH, SEM_FN_NAME (frvbf,mcmpuh) },
28500 { FRVBF_INSN_MABSHS, SEM_FN_NAME (frvbf,mabshs) },
28501 { FRVBF_INSN_MADDHSS, SEM_FN_NAME (frvbf,maddhss) },
28502 { FRVBF_INSN_MADDHUS, SEM_FN_NAME (frvbf,maddhus) },
28503 { FRVBF_INSN_MSUBHSS, SEM_FN_NAME (frvbf,msubhss) },
28504 { FRVBF_INSN_MSUBHUS, SEM_FN_NAME (frvbf,msubhus) },
28505 { FRVBF_INSN_CMADDHSS, SEM_FN_NAME (frvbf,cmaddhss) },
28506 { FRVBF_INSN_CMADDHUS, SEM_FN_NAME (frvbf,cmaddhus) },
28507 { FRVBF_INSN_CMSUBHSS, SEM_FN_NAME (frvbf,cmsubhss) },
28508 { FRVBF_INSN_CMSUBHUS, SEM_FN_NAME (frvbf,cmsubhus) },
28509 { FRVBF_INSN_MQADDHSS, SEM_FN_NAME (frvbf,mqaddhss) },
28510 { FRVBF_INSN_MQADDHUS, SEM_FN_NAME (frvbf,mqaddhus) },
28511 { FRVBF_INSN_MQSUBHSS, SEM_FN_NAME (frvbf,mqsubhss) },
28512 { FRVBF_INSN_MQSUBHUS, SEM_FN_NAME (frvbf,mqsubhus) },
28513 { FRVBF_INSN_CMQADDHSS, SEM_FN_NAME (frvbf,cmqaddhss) },
28514 { FRVBF_INSN_CMQADDHUS, SEM_FN_NAME (frvbf,cmqaddhus) },
28515 { FRVBF_INSN_CMQSUBHSS, SEM_FN_NAME (frvbf,cmqsubhss) },
28516 { FRVBF_INSN_CMQSUBHUS, SEM_FN_NAME (frvbf,cmqsubhus) },
28517 { FRVBF_INSN_MADDACCS, SEM_FN_NAME (frvbf,maddaccs) },
28518 { FRVBF_INSN_MSUBACCS, SEM_FN_NAME (frvbf,msubaccs) },
28519 { FRVBF_INSN_MDADDACCS, SEM_FN_NAME (frvbf,mdaddaccs) },
28520 { FRVBF_INSN_MDSUBACCS, SEM_FN_NAME (frvbf,mdsubaccs) },
28521 { FRVBF_INSN_MASACCS, SEM_FN_NAME (frvbf,masaccs) },
28522 { FRVBF_INSN_MDASACCS, SEM_FN_NAME (frvbf,mdasaccs) },
28523 { FRVBF_INSN_MMULHS, SEM_FN_NAME (frvbf,mmulhs) },
28524 { FRVBF_INSN_MMULHU, SEM_FN_NAME (frvbf,mmulhu) },
28525 { FRVBF_INSN_MMULXHS, SEM_FN_NAME (frvbf,mmulxhs) },
28526 { FRVBF_INSN_MMULXHU, SEM_FN_NAME (frvbf,mmulxhu) },
28527 { FRVBF_INSN_CMMULHS, SEM_FN_NAME (frvbf,cmmulhs) },
28528 { FRVBF_INSN_CMMULHU, SEM_FN_NAME (frvbf,cmmulhu) },
28529 { FRVBF_INSN_MQMULHS, SEM_FN_NAME (frvbf,mqmulhs) },
28530 { FRVBF_INSN_MQMULHU, SEM_FN_NAME (frvbf,mqmulhu) },
28531 { FRVBF_INSN_MQMULXHS, SEM_FN_NAME (frvbf,mqmulxhs) },
28532 { FRVBF_INSN_MQMULXHU, SEM_FN_NAME (frvbf,mqmulxhu) },
28533 { FRVBF_INSN_CMQMULHS, SEM_FN_NAME (frvbf,cmqmulhs) },
28534 { FRVBF_INSN_CMQMULHU, SEM_FN_NAME (frvbf,cmqmulhu) },
28535 { FRVBF_INSN_MMACHS, SEM_FN_NAME (frvbf,mmachs) },
28536 { FRVBF_INSN_MMACHU, SEM_FN_NAME (frvbf,mmachu) },
28537 { FRVBF_INSN_MMRDHS, SEM_FN_NAME (frvbf,mmrdhs) },
28538 { FRVBF_INSN_MMRDHU, SEM_FN_NAME (frvbf,mmrdhu) },
28539 { FRVBF_INSN_CMMACHS, SEM_FN_NAME (frvbf,cmmachs) },
28540 { FRVBF_INSN_CMMACHU, SEM_FN_NAME (frvbf,cmmachu) },
28541 { FRVBF_INSN_MQMACHS, SEM_FN_NAME (frvbf,mqmachs) },
28542 { FRVBF_INSN_MQMACHU, SEM_FN_NAME (frvbf,mqmachu) },
28543 { FRVBF_INSN_CMQMACHS, SEM_FN_NAME (frvbf,cmqmachs) },
28544 { FRVBF_INSN_CMQMACHU, SEM_FN_NAME (frvbf,cmqmachu) },
28545 { FRVBF_INSN_MQXMACHS, SEM_FN_NAME (frvbf,mqxmachs) },
28546 { FRVBF_INSN_MQXMACXHS, SEM_FN_NAME (frvbf,mqxmacxhs) },
28547 { FRVBF_INSN_MQMACXHS, SEM_FN_NAME (frvbf,mqmacxhs) },
28548 { FRVBF_INSN_MCPXRS, SEM_FN_NAME (frvbf,mcpxrs) },
28549 { FRVBF_INSN_MCPXRU, SEM_FN_NAME (frvbf,mcpxru) },
28550 { FRVBF_INSN_MCPXIS, SEM_FN_NAME (frvbf,mcpxis) },
28551 { FRVBF_INSN_MCPXIU, SEM_FN_NAME (frvbf,mcpxiu) },
28552 { FRVBF_INSN_CMCPXRS, SEM_FN_NAME (frvbf,cmcpxrs) },
28553 { FRVBF_INSN_CMCPXRU, SEM_FN_NAME (frvbf,cmcpxru) },
28554 { FRVBF_INSN_CMCPXIS, SEM_FN_NAME (frvbf,cmcpxis) },
28555 { FRVBF_INSN_CMCPXIU, SEM_FN_NAME (frvbf,cmcpxiu) },
28556 { FRVBF_INSN_MQCPXRS, SEM_FN_NAME (frvbf,mqcpxrs) },
28557 { FRVBF_INSN_MQCPXRU, SEM_FN_NAME (frvbf,mqcpxru) },
28558 { FRVBF_INSN_MQCPXIS, SEM_FN_NAME (frvbf,mqcpxis) },
28559 { FRVBF_INSN_MQCPXIU, SEM_FN_NAME (frvbf,mqcpxiu) },
28560 { FRVBF_INSN_MEXPDHW, SEM_FN_NAME (frvbf,mexpdhw) },
28561 { FRVBF_INSN_CMEXPDHW, SEM_FN_NAME (frvbf,cmexpdhw) },
28562 { FRVBF_INSN_MEXPDHD, SEM_FN_NAME (frvbf,mexpdhd) },
28563 { FRVBF_INSN_CMEXPDHD, SEM_FN_NAME (frvbf,cmexpdhd) },
28564 { FRVBF_INSN_MPACKH, SEM_FN_NAME (frvbf,mpackh) },
28565 { FRVBF_INSN_MDPACKH, SEM_FN_NAME (frvbf,mdpackh) },
28566 { FRVBF_INSN_MUNPACKH, SEM_FN_NAME (frvbf,munpackh) },
28567 { FRVBF_INSN_MDUNPACKH, SEM_FN_NAME (frvbf,mdunpackh) },
28568 { FRVBF_INSN_MBTOH, SEM_FN_NAME (frvbf,mbtoh) },
28569 { FRVBF_INSN_CMBTOH, SEM_FN_NAME (frvbf,cmbtoh) },
28570 { FRVBF_INSN_MHTOB, SEM_FN_NAME (frvbf,mhtob) },
28571 { FRVBF_INSN_CMHTOB, SEM_FN_NAME (frvbf,cmhtob) },
28572 { FRVBF_INSN_MBTOHE, SEM_FN_NAME (frvbf,mbtohe) },
28573 { FRVBF_INSN_CMBTOHE, SEM_FN_NAME (frvbf,cmbtohe) },
28574 { FRVBF_INSN_MNOP, SEM_FN_NAME (frvbf,mnop) },
28575 { FRVBF_INSN_MCLRACC_0, SEM_FN_NAME (frvbf,mclracc_0) },
28576 { FRVBF_INSN_MCLRACC_1, SEM_FN_NAME (frvbf,mclracc_1) },
28577 { FRVBF_INSN_MRDACC, SEM_FN_NAME (frvbf,mrdacc) },
28578 { FRVBF_INSN_MRDACCG, SEM_FN_NAME (frvbf,mrdaccg) },
28579 { FRVBF_INSN_MWTACC, SEM_FN_NAME (frvbf,mwtacc) },
28580 { FRVBF_INSN_MWTACCG, SEM_FN_NAME (frvbf,mwtaccg) },
28581 { FRVBF_INSN_MCOP1, SEM_FN_NAME (frvbf,mcop1) },
28582 { FRVBF_INSN_MCOP2, SEM_FN_NAME (frvbf,mcop2) },
28583 { FRVBF_INSN_FNOP, SEM_FN_NAME (frvbf,fnop) },
28587 /* Add the semantic fns to IDESC_TABLE. */
28590 SEM_FN_NAME (frvbf,init_idesc_table) (SIM_CPU *current_cpu)
28592 IDESC *idesc_table = CPU_IDESC (current_cpu);
28593 const struct sem_fn_desc *sf;
28594 int mach_num = MACH_NUM (CPU_MACH (current_cpu));
28596 for (sf = &sem_fns[0]; sf->fn != 0; ++sf)
28598 const CGEN_INSN *insn = idesc_table[sf->index].idata;
28599 int valid_p = (CGEN_INSN_VIRTUAL_P (insn)
28600 || CGEN_INSN_MACH_HAS_P (insn, mach_num));
28603 idesc_table[sf->index].sem_fast = sf->fn;
28605 idesc_table[sf->index].sem_fast = SEM_FN_NAME (frvbf,x_invalid);
28608 idesc_table[sf->index].sem_full = sf->fn;
28610 idesc_table[sf->index].sem_full = SEM_FN_NAME (frvbf,x_invalid);