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_swapi.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);
16542 frv_ref_SI (GET_H_GR (FLD (f_GRk)));
16543 frvbf_clear_ne_flags (current_cpu, FLD (f_GRk), 0);
16550 /* clrfr: clrfr$pack $FRk */
16553 SEM_FN_NAME (frvbf,clrfr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16555 #define FLD(f) abuf->fields.sfmt_cfmadds.f
16556 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16557 int UNUSED written = 0;
16558 IADDR UNUSED pc = abuf->addr;
16559 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16562 frv_ref_SI (GET_H_FR (FLD (f_FRk)));
16563 frvbf_clear_ne_flags (current_cpu, FLD (f_FRk), 1);
16570 /* clrga: clrga$pack */
16573 SEM_FN_NAME (frvbf,clrga) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16575 #define FLD(f) abuf->fields.fmt_empty.f
16576 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16577 int UNUSED written = 0;
16578 IADDR UNUSED pc = abuf->addr;
16579 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16581 frvbf_clear_ne_flags (current_cpu, -1, 0);
16587 /* clrfa: clrfa$pack */
16590 SEM_FN_NAME (frvbf,clrfa) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16592 #define FLD(f) abuf->fields.fmt_empty.f
16593 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16594 int UNUSED written = 0;
16595 IADDR UNUSED pc = abuf->addr;
16596 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16598 frvbf_clear_ne_flags (current_cpu, -1, 1);
16604 /* commitgr: commitgr$pack $GRk */
16607 SEM_FN_NAME (frvbf,commitgr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16609 #define FLD(f) abuf->fields.sfmt_setlos.f
16610 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16611 int UNUSED written = 0;
16612 IADDR UNUSED pc = abuf->addr;
16613 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16615 frvbf_commit (current_cpu, FLD (f_GRk), 0);
16621 /* commitfr: commitfr$pack $FRk */
16624 SEM_FN_NAME (frvbf,commitfr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16626 #define FLD(f) abuf->fields.sfmt_mhsethis.f
16627 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16628 int UNUSED written = 0;
16629 IADDR UNUSED pc = abuf->addr;
16630 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16632 frvbf_commit (current_cpu, FLD (f_FRk), 1);
16638 /* commitga: commitga$pack */
16641 SEM_FN_NAME (frvbf,commitga) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16643 #define FLD(f) abuf->fields.fmt_empty.f
16644 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16645 int UNUSED written = 0;
16646 IADDR UNUSED pc = abuf->addr;
16647 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16649 frvbf_commit (current_cpu, -1, 0);
16655 /* commitfa: commitfa$pack */
16658 SEM_FN_NAME (frvbf,commitfa) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16660 #define FLD(f) abuf->fields.fmt_empty.f
16661 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16662 int UNUSED written = 0;
16663 IADDR UNUSED pc = abuf->addr;
16664 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16666 frvbf_commit (current_cpu, -1, 1);
16672 /* fitos: fitos$pack $FRintj,$FRk */
16675 SEM_FN_NAME (frvbf,fitos) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16677 #define FLD(f) abuf->fields.sfmt_fditos.f
16678 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16679 int UNUSED written = 0;
16680 IADDR UNUSED pc = abuf->addr;
16681 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16684 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->floatsisf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (FLD (f_FRj)));
16685 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
16686 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16693 /* fstoi: fstoi$pack $FRj,$FRintk */
16696 SEM_FN_NAME (frvbf,fstoi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16698 #define FLD(f) abuf->fields.sfmt_fdstoi.f
16699 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16700 int UNUSED written = 0;
16701 IADDR UNUSED pc = abuf->addr;
16702 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16705 SI opval = (* CGEN_CPU_FPU (current_cpu)->ops->fixsfsi) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
16706 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
16707 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16714 /* fitod: fitod$pack $FRintj,$FRdoublek */
16717 SEM_FN_NAME (frvbf,fitod) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16719 #define FLD(f) abuf->fields.sfmt_fitod.f
16720 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16721 int UNUSED written = 0;
16722 IADDR UNUSED pc = abuf->addr;
16723 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16726 DF opval = (* CGEN_CPU_FPU (current_cpu)->ops->floatsidf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (FLD (f_FRj)));
16727 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
16728 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
16735 /* fdtoi: fdtoi$pack $FRdoublej,$FRintk */
16738 SEM_FN_NAME (frvbf,fdtoi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16740 #define FLD(f) abuf->fields.sfmt_fdtoi.f
16741 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16742 int UNUSED written = 0;
16743 IADDR UNUSED pc = abuf->addr;
16744 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16747 SI opval = (* CGEN_CPU_FPU (current_cpu)->ops->fixdfsi) (CGEN_CPU_FPU (current_cpu), GET_H_FR_DOUBLE (FLD (f_FRj)));
16748 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
16749 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16756 /* fditos: fditos$pack $FRintj,$FRk */
16759 SEM_FN_NAME (frvbf,fditos) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16761 #define FLD(f) abuf->fields.sfmt_fditos.f
16762 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16763 int UNUSED written = 0;
16764 IADDR UNUSED pc = abuf->addr;
16765 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16769 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->floatsisf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (FLD (f_FRj)));
16770 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
16771 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16774 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->floatsisf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (((FLD (f_FRj)) + (1))));
16775 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
16776 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16784 /* fdstoi: fdstoi$pack $FRj,$FRintk */
16787 SEM_FN_NAME (frvbf,fdstoi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16789 #define FLD(f) abuf->fields.sfmt_fdstoi.f
16790 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16791 int UNUSED written = 0;
16792 IADDR UNUSED pc = abuf->addr;
16793 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16797 SI opval = (* CGEN_CPU_FPU (current_cpu)->ops->fixsfsi) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
16798 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
16799 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16802 USI opval = (* CGEN_CPU_FPU (current_cpu)->ops->fixsfsi) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRj)) + (1))));
16803 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
16804 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16812 /* nfditos: nfditos$pack $FRintj,$FRk */
16815 SEM_FN_NAME (frvbf,nfditos) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16817 #define FLD(f) abuf->fields.sfmt_fditos.f
16818 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16819 int UNUSED written = 0;
16820 IADDR UNUSED pc = abuf->addr;
16821 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16824 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
16826 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->floatsisf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (FLD (f_FRj)));
16827 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
16828 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16830 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
16832 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->floatsisf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (((FLD (f_FRj)) + (1))));
16833 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
16834 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16842 /* nfdstoi: nfdstoi$pack $FRj,$FRintk */
16845 SEM_FN_NAME (frvbf,nfdstoi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16847 #define FLD(f) abuf->fields.sfmt_fdstoi.f
16848 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16849 int UNUSED written = 0;
16850 IADDR UNUSED pc = abuf->addr;
16851 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16854 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
16856 SI opval = (* CGEN_CPU_FPU (current_cpu)->ops->fixsfsi) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
16857 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
16858 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16860 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
16862 USI opval = (* CGEN_CPU_FPU (current_cpu)->ops->fixsfsi) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRj)) + (1))));
16863 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
16864 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16872 /* cfitos: cfitos$pack $FRintj,$FRk,$CCi,$cond */
16875 SEM_FN_NAME (frvbf,cfitos) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16877 #define FLD(f) abuf->fields.sfmt_cfitos.f
16878 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16879 int UNUSED written = 0;
16880 IADDR UNUSED pc = abuf->addr;
16881 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16883 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
16885 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->floatsisf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (FLD (f_FRj)));
16886 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
16887 written |= (1 << 3);
16888 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16892 abuf->written = written;
16897 /* cfstoi: cfstoi$pack $FRj,$FRintk,$CCi,$cond */
16900 SEM_FN_NAME (frvbf,cfstoi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16902 #define FLD(f) abuf->fields.sfmt_cfstoi.f
16903 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16904 int UNUSED written = 0;
16905 IADDR UNUSED pc = abuf->addr;
16906 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16908 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
16910 SI opval = (* CGEN_CPU_FPU (current_cpu)->ops->fixsfsi) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
16911 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
16912 written |= (1 << 3);
16913 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16917 abuf->written = written;
16922 /* nfitos: nfitos$pack $FRintj,$FRk */
16925 SEM_FN_NAME (frvbf,nfitos) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16927 #define FLD(f) abuf->fields.sfmt_fditos.f
16928 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16929 int UNUSED written = 0;
16930 IADDR UNUSED pc = abuf->addr;
16931 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16934 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
16936 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->floatsisf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (FLD (f_FRj)));
16937 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
16938 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16946 /* nfstoi: nfstoi$pack $FRj,$FRintk */
16949 SEM_FN_NAME (frvbf,nfstoi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16951 #define FLD(f) abuf->fields.sfmt_fdstoi.f
16952 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16953 int UNUSED written = 0;
16954 IADDR UNUSED pc = abuf->addr;
16955 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16958 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
16960 SI opval = (* CGEN_CPU_FPU (current_cpu)->ops->fixsfsi) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
16961 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
16962 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16970 /* fmovs: fmovs$pack $FRj,$FRk */
16973 SEM_FN_NAME (frvbf,fmovs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16975 #define FLD(f) abuf->fields.sfmt_cfmadds.f
16976 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16977 int UNUSED written = 0;
16978 IADDR UNUSED pc = abuf->addr;
16979 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16982 SF opval = GET_H_FR (FLD (f_FRj));
16983 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
16984 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16991 /* fmovd: fmovd$pack $FRdoublej,$FRdoublek */
16994 SEM_FN_NAME (frvbf,fmovd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16996 #define FLD(f) abuf->fields.sfmt_fmaddd.f
16997 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16998 int UNUSED written = 0;
16999 IADDR UNUSED pc = abuf->addr;
17000 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17003 DF opval = GET_H_FR_DOUBLE (FLD (f_FRj));
17004 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17005 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17012 /* fdmovs: fdmovs$pack $FRj,$FRk */
17015 SEM_FN_NAME (frvbf,fdmovs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17017 #define FLD(f) abuf->fields.sfmt_fdmadds.f
17018 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17019 int UNUSED written = 0;
17020 IADDR UNUSED pc = abuf->addr;
17021 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17025 SF opval = GET_H_FR (FLD (f_FRj));
17026 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17027 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17030 SF opval = GET_H_FR (((FLD (f_FRj)) + (1)));
17031 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
17032 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17040 /* cfmovs: cfmovs$pack $FRj,$FRk,$CCi,$cond */
17043 SEM_FN_NAME (frvbf,cfmovs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17045 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17046 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17047 int UNUSED written = 0;
17048 IADDR UNUSED pc = abuf->addr;
17049 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17051 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17053 SF opval = GET_H_FR (FLD (f_FRj));
17054 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17055 written |= (1 << 3);
17056 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17060 abuf->written = written;
17065 /* fnegs: fnegs$pack $FRj,$FRk */
17068 SEM_FN_NAME (frvbf,fnegs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17070 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17071 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17072 int UNUSED written = 0;
17073 IADDR UNUSED pc = abuf->addr;
17074 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17077 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->negsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17078 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17079 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17086 /* fnegd: fnegd$pack $FRdoublej,$FRdoublek */
17089 SEM_FN_NAME (frvbf,fnegd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17091 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17092 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17093 int UNUSED written = 0;
17094 IADDR UNUSED pc = abuf->addr;
17095 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17098 DF opval = (* CGEN_CPU_FPU (current_cpu)->ops->negdf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_DOUBLE (FLD (f_FRj)));
17099 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17100 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17107 /* fdnegs: fdnegs$pack $FRj,$FRk */
17110 SEM_FN_NAME (frvbf,fdnegs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17112 #define FLD(f) abuf->fields.sfmt_fdmadds.f
17113 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17114 int UNUSED written = 0;
17115 IADDR UNUSED pc = abuf->addr;
17116 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17120 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->negsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17121 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17122 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17125 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->negsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRj)) + (1))));
17126 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
17127 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17135 /* cfnegs: cfnegs$pack $FRj,$FRk,$CCi,$cond */
17138 SEM_FN_NAME (frvbf,cfnegs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17140 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17141 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17142 int UNUSED written = 0;
17143 IADDR UNUSED pc = abuf->addr;
17144 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17146 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17148 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->negsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17149 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17150 written |= (1 << 3);
17151 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17155 abuf->written = written;
17160 /* fabss: fabss$pack $FRj,$FRk */
17163 SEM_FN_NAME (frvbf,fabss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17165 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17166 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17167 int UNUSED written = 0;
17168 IADDR UNUSED pc = abuf->addr;
17169 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17172 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->abssf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17173 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17174 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17181 /* fabsd: fabsd$pack $FRdoublej,$FRdoublek */
17184 SEM_FN_NAME (frvbf,fabsd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17186 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17187 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17188 int UNUSED written = 0;
17189 IADDR UNUSED pc = abuf->addr;
17190 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17193 DF opval = (* CGEN_CPU_FPU (current_cpu)->ops->absdf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_DOUBLE (FLD (f_FRj)));
17194 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17195 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17202 /* fdabss: fdabss$pack $FRj,$FRk */
17205 SEM_FN_NAME (frvbf,fdabss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17207 #define FLD(f) abuf->fields.sfmt_fdmadds.f
17208 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17209 int UNUSED written = 0;
17210 IADDR UNUSED pc = abuf->addr;
17211 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17215 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->abssf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17216 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17217 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17220 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->abssf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRj)) + (1))));
17221 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
17222 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17230 /* cfabss: cfabss$pack $FRj,$FRk,$CCi,$cond */
17233 SEM_FN_NAME (frvbf,cfabss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17235 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17236 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17237 int UNUSED written = 0;
17238 IADDR UNUSED pc = abuf->addr;
17239 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17241 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17243 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->abssf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17244 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17245 written |= (1 << 3);
17246 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17250 abuf->written = written;
17255 /* fsqrts: fsqrts$pack $FRj,$FRk */
17258 SEM_FN_NAME (frvbf,fsqrts) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17260 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17261 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17262 int UNUSED written = 0;
17263 IADDR UNUSED pc = abuf->addr;
17264 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17267 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->sqrtsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17268 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17269 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17276 /* fdsqrts: fdsqrts$pack $FRj,$FRk */
17279 SEM_FN_NAME (frvbf,fdsqrts) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17281 #define FLD(f) abuf->fields.sfmt_fdmadds.f
17282 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17283 int UNUSED written = 0;
17284 IADDR UNUSED pc = abuf->addr;
17285 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17289 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->sqrtsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17290 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17291 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17294 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->sqrtsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRj)) + (1))));
17295 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
17296 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17304 /* nfdsqrts: nfdsqrts$pack $FRj,$FRk */
17307 SEM_FN_NAME (frvbf,nfdsqrts) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17309 #define FLD(f) abuf->fields.sfmt_fdmadds.f
17310 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17311 int UNUSED written = 0;
17312 IADDR UNUSED pc = abuf->addr;
17313 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17316 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
17318 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->sqrtsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17319 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17320 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17322 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
17324 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->sqrtsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRj)) + (1))));
17325 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
17326 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17334 /* fsqrtd: fsqrtd$pack $FRdoublej,$FRdoublek */
17337 SEM_FN_NAME (frvbf,fsqrtd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17339 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17340 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17341 int UNUSED written = 0;
17342 IADDR UNUSED pc = abuf->addr;
17343 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17346 DF opval = (* CGEN_CPU_FPU (current_cpu)->ops->sqrtdf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_DOUBLE (FLD (f_FRj)));
17347 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17348 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17355 /* cfsqrts: cfsqrts$pack $FRj,$FRk,$CCi,$cond */
17358 SEM_FN_NAME (frvbf,cfsqrts) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17360 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17361 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17362 int UNUSED written = 0;
17363 IADDR UNUSED pc = abuf->addr;
17364 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17366 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17368 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->sqrtsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17369 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17370 written |= (1 << 3);
17371 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17375 abuf->written = written;
17380 /* nfsqrts: nfsqrts$pack $FRj,$FRk */
17383 SEM_FN_NAME (frvbf,nfsqrts) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17385 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17386 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17387 int UNUSED written = 0;
17388 IADDR UNUSED pc = abuf->addr;
17389 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17392 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
17394 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->sqrtsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17395 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17396 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17404 /* fadds: fadds$pack $FRi,$FRj,$FRk */
17407 SEM_FN_NAME (frvbf,fadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17409 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17410 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17411 int UNUSED written = 0;
17412 IADDR UNUSED pc = abuf->addr;
17413 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17416 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)));
17417 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17418 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17425 /* fsubs: fsubs$pack $FRi,$FRj,$FRk */
17428 SEM_FN_NAME (frvbf,fsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17430 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17431 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17432 int UNUSED written = 0;
17433 IADDR UNUSED pc = abuf->addr;
17434 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17437 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)));
17438 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17439 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17446 /* fmuls: fmuls$pack $FRi,$FRj,$FRk */
17449 SEM_FN_NAME (frvbf,fmuls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17451 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17452 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17453 int UNUSED written = 0;
17454 IADDR UNUSED pc = abuf->addr;
17455 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17458 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)));
17459 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17460 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17467 /* fdivs: fdivs$pack $FRi,$FRj,$FRk */
17470 SEM_FN_NAME (frvbf,fdivs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17472 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17473 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17474 int UNUSED written = 0;
17475 IADDR UNUSED pc = abuf->addr;
17476 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17479 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)));
17480 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17481 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17488 /* faddd: faddd$pack $FRdoublei,$FRdoublej,$FRdoublek */
17491 SEM_FN_NAME (frvbf,faddd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17493 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17494 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17495 int UNUSED written = 0;
17496 IADDR UNUSED pc = abuf->addr;
17497 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17500 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)));
17501 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17502 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17509 /* fsubd: fsubd$pack $FRdoublei,$FRdoublej,$FRdoublek */
17512 SEM_FN_NAME (frvbf,fsubd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17514 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17515 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17516 int UNUSED written = 0;
17517 IADDR UNUSED pc = abuf->addr;
17518 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17521 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)));
17522 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17523 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17530 /* fmuld: fmuld$pack $FRdoublei,$FRdoublej,$FRdoublek */
17533 SEM_FN_NAME (frvbf,fmuld) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17535 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17536 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17537 int UNUSED written = 0;
17538 IADDR UNUSED pc = abuf->addr;
17539 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17542 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)));
17543 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17544 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17551 /* fdivd: fdivd$pack $FRdoublei,$FRdoublej,$FRdoublek */
17554 SEM_FN_NAME (frvbf,fdivd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17556 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17557 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17558 int UNUSED written = 0;
17559 IADDR UNUSED pc = abuf->addr;
17560 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17563 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)));
17564 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17565 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17572 /* cfadds: cfadds$pack $FRi,$FRj,$FRk,$CCi,$cond */
17575 SEM_FN_NAME (frvbf,cfadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17577 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17578 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17579 int UNUSED written = 0;
17580 IADDR UNUSED pc = abuf->addr;
17581 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17583 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17585 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)));
17586 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17587 written |= (1 << 4);
17588 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17592 abuf->written = written;
17597 /* cfsubs: cfsubs$pack $FRi,$FRj,$FRk,$CCi,$cond */
17600 SEM_FN_NAME (frvbf,cfsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17602 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17603 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17604 int UNUSED written = 0;
17605 IADDR UNUSED pc = abuf->addr;
17606 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17608 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17610 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)));
17611 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17612 written |= (1 << 4);
17613 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17617 abuf->written = written;
17622 /* cfmuls: cfmuls$pack $FRi,$FRj,$FRk,$CCi,$cond */
17625 SEM_FN_NAME (frvbf,cfmuls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17627 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17628 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17629 int UNUSED written = 0;
17630 IADDR UNUSED pc = abuf->addr;
17631 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17633 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17635 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)));
17636 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17637 written |= (1 << 4);
17638 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17642 abuf->written = written;
17647 /* cfdivs: cfdivs$pack $FRi,$FRj,$FRk,$CCi,$cond */
17650 SEM_FN_NAME (frvbf,cfdivs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17652 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17653 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17654 int UNUSED written = 0;
17655 IADDR UNUSED pc = abuf->addr;
17656 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17658 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17660 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)));
17661 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17662 written |= (1 << 4);
17663 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17667 abuf->written = written;
17672 /* nfadds: nfadds$pack $FRi,$FRj,$FRk */
17675 SEM_FN_NAME (frvbf,nfadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17677 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17678 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17679 int UNUSED written = 0;
17680 IADDR UNUSED pc = abuf->addr;
17681 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17684 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
17686 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)));
17687 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17688 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17696 /* nfsubs: nfsubs$pack $FRi,$FRj,$FRk */
17699 SEM_FN_NAME (frvbf,nfsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17701 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17702 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17703 int UNUSED written = 0;
17704 IADDR UNUSED pc = abuf->addr;
17705 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17708 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
17710 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)));
17711 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17712 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17720 /* nfmuls: nfmuls$pack $FRi,$FRj,$FRk */
17723 SEM_FN_NAME (frvbf,nfmuls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17725 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17726 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17727 int UNUSED written = 0;
17728 IADDR UNUSED pc = abuf->addr;
17729 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17732 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
17734 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)));
17735 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17736 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17744 /* nfdivs: nfdivs$pack $FRi,$FRj,$FRk */
17747 SEM_FN_NAME (frvbf,nfdivs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17749 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17750 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17751 int UNUSED written = 0;
17752 IADDR UNUSED pc = abuf->addr;
17753 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17756 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
17758 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)));
17759 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17760 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17768 /* fcmps: fcmps$pack $FRi,$FRj,$FCCi_2 */
17771 SEM_FN_NAME (frvbf,fcmps) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17773 #define FLD(f) abuf->fields.sfmt_cfcmps.f
17774 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17775 int UNUSED written = 0;
17776 IADDR UNUSED pc = abuf->addr;
17777 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17779 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)))) {
17782 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17783 written |= (1 << 2);
17784 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17787 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)))) {
17790 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17791 written |= (1 << 2);
17792 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17795 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)))) {
17798 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17799 written |= (1 << 2);
17800 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17805 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17806 written |= (1 << 2);
17807 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17813 abuf->written = written;
17818 /* fcmpd: fcmpd$pack $FRdoublei,$FRdoublej,$FCCi_2 */
17821 SEM_FN_NAME (frvbf,fcmpd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17823 #define FLD(f) abuf->fields.sfmt_fcmpd.f
17824 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17825 int UNUSED written = 0;
17826 IADDR UNUSED pc = abuf->addr;
17827 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17829 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)))) {
17832 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17833 written |= (1 << 2);
17834 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17837 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)))) {
17840 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17841 written |= (1 << 2);
17842 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17845 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)))) {
17848 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17849 written |= (1 << 2);
17850 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17855 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17856 written |= (1 << 2);
17857 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17863 abuf->written = written;
17868 /* cfcmps: cfcmps$pack $FRi,$FRj,$FCCi_2,$CCi,$cond */
17871 SEM_FN_NAME (frvbf,cfcmps) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17873 #define FLD(f) abuf->fields.sfmt_cfcmps.f
17874 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17875 int UNUSED written = 0;
17876 IADDR UNUSED pc = abuf->addr;
17877 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17879 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17880 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)))) {
17883 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17884 written |= (1 << 4);
17885 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17888 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)))) {
17891 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17892 written |= (1 << 4);
17893 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17896 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)))) {
17899 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17900 written |= (1 << 4);
17901 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17906 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17907 written |= (1 << 4);
17908 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17915 abuf->written = written;
17920 /* fdcmps: fdcmps$pack $FRi,$FRj,$FCCi_2 */
17923 SEM_FN_NAME (frvbf,fdcmps) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17925 #define FLD(f) abuf->fields.sfmt_nfdcmps.f
17926 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17927 int UNUSED written = 0;
17928 IADDR UNUSED pc = abuf->addr;
17929 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17932 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)))) {
17935 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17936 written |= (1 << 7);
17937 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17940 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)))) {
17943 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17944 written |= (1 << 7);
17945 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17948 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)))) {
17951 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17952 written |= (1 << 7);
17953 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17958 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17959 written |= (1 << 7);
17960 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17965 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))))) {
17968 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCi_2)) + (1))]), opval);
17969 written |= (1 << 8);
17970 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17973 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))))) {
17976 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCi_2)) + (1))]), opval);
17977 written |= (1 << 8);
17978 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17981 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))))) {
17984 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCi_2)) + (1))]), opval);
17985 written |= (1 << 8);
17986 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17991 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCi_2)) + (1))]), opval);
17992 written |= (1 << 8);
17993 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
18000 abuf->written = written;
18005 /* fmadds: fmadds$pack $FRi,$FRj,$FRk */
18008 SEM_FN_NAME (frvbf,fmadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18010 #define FLD(f) abuf->fields.sfmt_cfmadds.f
18011 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18012 int UNUSED written = 0;
18013 IADDR UNUSED pc = abuf->addr;
18014 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18017 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)));
18018 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18019 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18026 /* fmsubs: fmsubs$pack $FRi,$FRj,$FRk */
18029 SEM_FN_NAME (frvbf,fmsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18031 #define FLD(f) abuf->fields.sfmt_cfmadds.f
18032 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18033 int UNUSED written = 0;
18034 IADDR UNUSED pc = abuf->addr;
18035 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18038 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)));
18039 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18040 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18047 /* fmaddd: fmaddd$pack $FRdoublei,$FRdoublej,$FRdoublek */
18050 SEM_FN_NAME (frvbf,fmaddd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18052 #define FLD(f) abuf->fields.sfmt_fmaddd.f
18053 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18054 int UNUSED written = 0;
18055 IADDR UNUSED pc = abuf->addr;
18056 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18059 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)));
18060 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
18061 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
18068 /* fmsubd: fmsubd$pack $FRdoublei,$FRdoublej,$FRdoublek */
18071 SEM_FN_NAME (frvbf,fmsubd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18073 #define FLD(f) abuf->fields.sfmt_fmaddd.f
18074 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18075 int UNUSED written = 0;
18076 IADDR UNUSED pc = abuf->addr;
18077 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18080 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)));
18081 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
18082 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
18089 /* fdmadds: fdmadds$pack $FRi,$FRj,$FRk */
18092 SEM_FN_NAME (frvbf,fdmadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18094 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18095 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18096 int UNUSED written = 0;
18097 IADDR UNUSED pc = abuf->addr;
18098 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18102 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)));
18103 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18104 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18107 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))));
18108 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18109 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18117 /* nfdmadds: nfdmadds$pack $FRi,$FRj,$FRk */
18120 SEM_FN_NAME (frvbf,nfdmadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18122 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18123 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18124 int UNUSED written = 0;
18125 IADDR UNUSED pc = abuf->addr;
18126 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18129 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
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)), GET_H_FR (FLD (f_FRj))), GET_H_FR (FLD (f_FRk)));
18132 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18133 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18135 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18137 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))));
18138 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18139 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18147 /* cfmadds: cfmadds$pack $FRi,$FRj,$FRk,$CCi,$cond */
18150 SEM_FN_NAME (frvbf,cfmadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18152 #define FLD(f) abuf->fields.sfmt_cfmadds.f
18153 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18154 int UNUSED written = 0;
18155 IADDR UNUSED pc = abuf->addr;
18156 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18158 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
18160 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)));
18161 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18162 written |= (1 << 5);
18163 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18167 abuf->written = written;
18172 /* cfmsubs: cfmsubs$pack $FRi,$FRj,$FRk,$CCi,$cond */
18175 SEM_FN_NAME (frvbf,cfmsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18177 #define FLD(f) abuf->fields.sfmt_cfmadds.f
18178 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18179 int UNUSED written = 0;
18180 IADDR UNUSED pc = abuf->addr;
18181 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18183 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
18185 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)));
18186 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18187 written |= (1 << 5);
18188 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18192 abuf->written = written;
18197 /* nfmadds: nfmadds$pack $FRi,$FRj,$FRk */
18200 SEM_FN_NAME (frvbf,nfmadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18202 #define FLD(f) abuf->fields.sfmt_cfmadds.f
18203 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18204 int UNUSED written = 0;
18205 IADDR UNUSED pc = abuf->addr;
18206 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18209 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18211 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)));
18212 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18213 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18221 /* nfmsubs: nfmsubs$pack $FRi,$FRj,$FRk */
18224 SEM_FN_NAME (frvbf,nfmsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18226 #define FLD(f) abuf->fields.sfmt_cfmadds.f
18227 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18228 int UNUSED written = 0;
18229 IADDR UNUSED pc = abuf->addr;
18230 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18233 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18235 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)));
18236 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18237 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18245 /* fmas: fmas$pack $FRi,$FRj,$FRk */
18248 SEM_FN_NAME (frvbf,fmas) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18250 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18251 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18252 int UNUSED written = 0;
18253 IADDR UNUSED pc = abuf->addr;
18254 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18258 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)));
18259 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18260 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18263 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))));
18264 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18265 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18273 /* fmss: fmss$pack $FRi,$FRj,$FRk */
18276 SEM_FN_NAME (frvbf,fmss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18278 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18279 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18280 int UNUSED written = 0;
18281 IADDR UNUSED pc = abuf->addr;
18282 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18286 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)));
18287 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18288 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18291 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))));
18292 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18293 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18301 /* fdmas: fdmas$pack $FRi,$FRj,$FRk */
18304 SEM_FN_NAME (frvbf,fdmas) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18306 #define FLD(f) abuf->fields.sfmt_fdmas.f
18307 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18308 int UNUSED written = 0;
18309 IADDR UNUSED pc = abuf->addr;
18310 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18314 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)));
18315 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18316 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18319 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))));
18320 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18321 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18324 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))));
18325 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (2)), opval);
18326 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18329 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))));
18330 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (3)), opval);
18331 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18339 /* fdmss: fdmss$pack $FRi,$FRj,$FRk */
18342 SEM_FN_NAME (frvbf,fdmss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18344 #define FLD(f) abuf->fields.sfmt_fdmas.f
18345 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18346 int UNUSED written = 0;
18347 IADDR UNUSED pc = abuf->addr;
18348 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18352 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)));
18353 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18354 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18357 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))));
18358 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18359 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18362 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))));
18363 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (2)), opval);
18364 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18367 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))));
18368 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (3)), opval);
18369 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18377 /* nfdmas: nfdmas$pack $FRi,$FRj,$FRk */
18380 SEM_FN_NAME (frvbf,nfdmas) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18382 #define FLD(f) abuf->fields.sfmt_fdmas.f
18383 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18384 int UNUSED written = 0;
18385 IADDR UNUSED pc = abuf->addr;
18386 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18389 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18390 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18391 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 2));
18392 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 3));
18394 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)));
18395 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18396 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18399 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))));
18400 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18401 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18404 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))));
18405 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (2)), opval);
18406 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18409 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))));
18410 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (3)), opval);
18411 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18419 /* nfdmss: nfdmss$pack $FRi,$FRj,$FRk */
18422 SEM_FN_NAME (frvbf,nfdmss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18424 #define FLD(f) abuf->fields.sfmt_fdmas.f
18425 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18426 int UNUSED written = 0;
18427 IADDR UNUSED pc = abuf->addr;
18428 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18431 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18432 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18433 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 2));
18434 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 3));
18436 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)));
18437 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18438 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18441 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))));
18442 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18443 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18446 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))));
18447 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (2)), opval);
18448 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18451 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))));
18452 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (3)), opval);
18453 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18461 /* cfmas: cfmas$pack $FRi,$FRj,$FRk,$CCi,$cond */
18464 SEM_FN_NAME (frvbf,cfmas) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18466 #define FLD(f) abuf->fields.sfmt_cfmas.f
18467 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18468 int UNUSED written = 0;
18469 IADDR UNUSED pc = abuf->addr;
18470 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18472 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
18475 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)));
18476 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18477 written |= (1 << 9);
18478 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18481 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))));
18482 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18483 written |= (1 << 10);
18484 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18489 abuf->written = written;
18494 /* cfmss: cfmss$pack $FRi,$FRj,$FRk,$CCi,$cond */
18497 SEM_FN_NAME (frvbf,cfmss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18499 #define FLD(f) abuf->fields.sfmt_cfmas.f
18500 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18501 int UNUSED written = 0;
18502 IADDR UNUSED pc = abuf->addr;
18503 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18505 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
18508 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)));
18509 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18510 written |= (1 << 9);
18511 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18514 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))));
18515 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18516 written |= (1 << 10);
18517 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18522 abuf->written = written;
18527 /* fmad: fmad$pack $FRi,$FRj,$FRk */
18530 SEM_FN_NAME (frvbf,fmad) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18532 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18533 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18534 int UNUSED written = 0;
18535 IADDR UNUSED pc = abuf->addr;
18536 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18540 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)))));
18541 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18542 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18545 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))))));
18546 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18547 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18555 /* fmsd: fmsd$pack $FRi,$FRj,$FRk */
18558 SEM_FN_NAME (frvbf,fmsd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18560 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18561 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18562 int UNUSED written = 0;
18563 IADDR UNUSED pc = abuf->addr;
18564 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18568 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)))));
18569 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18570 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18573 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))))));
18574 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18575 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18583 /* nfmas: nfmas$pack $FRi,$FRj,$FRk */
18586 SEM_FN_NAME (frvbf,nfmas) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18588 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18589 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18590 int UNUSED written = 0;
18591 IADDR UNUSED pc = abuf->addr;
18592 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18595 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18597 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)));
18598 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18599 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18601 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18603 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))));
18604 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18605 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18613 /* nfmss: nfmss$pack $FRi,$FRj,$FRk */
18616 SEM_FN_NAME (frvbf,nfmss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18618 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18619 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18620 int UNUSED written = 0;
18621 IADDR UNUSED pc = abuf->addr;
18622 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18625 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18627 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)));
18628 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18629 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18631 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18633 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))));
18634 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18635 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18643 /* fdadds: fdadds$pack $FRi,$FRj,$FRk */
18646 SEM_FN_NAME (frvbf,fdadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18648 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18649 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18650 int UNUSED written = 0;
18651 IADDR UNUSED pc = abuf->addr;
18652 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18656 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)));
18657 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18658 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18661 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))));
18662 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18663 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18671 /* fdsubs: fdsubs$pack $FRi,$FRj,$FRk */
18674 SEM_FN_NAME (frvbf,fdsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18676 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18677 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18678 int UNUSED written = 0;
18679 IADDR UNUSED pc = abuf->addr;
18680 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18684 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)));
18685 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18686 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18689 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))));
18690 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18691 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18699 /* fdmuls: fdmuls$pack $FRi,$FRj,$FRk */
18702 SEM_FN_NAME (frvbf,fdmuls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18704 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18705 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18706 int UNUSED written = 0;
18707 IADDR UNUSED pc = abuf->addr;
18708 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18712 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)));
18713 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18714 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18717 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))));
18718 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18719 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18727 /* fddivs: fddivs$pack $FRi,$FRj,$FRk */
18730 SEM_FN_NAME (frvbf,fddivs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18732 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18733 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18734 int UNUSED written = 0;
18735 IADDR UNUSED pc = abuf->addr;
18736 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18740 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)));
18741 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18742 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18745 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))));
18746 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18747 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18755 /* fdsads: fdsads$pack $FRi,$FRj,$FRk */
18758 SEM_FN_NAME (frvbf,fdsads) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18760 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18761 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18762 int UNUSED written = 0;
18763 IADDR UNUSED pc = abuf->addr;
18764 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18768 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)));
18769 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18770 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18773 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))));
18774 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18775 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18783 /* fdmulcs: fdmulcs$pack $FRi,$FRj,$FRk */
18786 SEM_FN_NAME (frvbf,fdmulcs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18788 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18789 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18790 int UNUSED written = 0;
18791 IADDR UNUSED pc = abuf->addr;
18792 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18796 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))));
18797 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18798 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18801 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)));
18802 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18803 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18811 /* nfdmulcs: nfdmulcs$pack $FRi,$FRj,$FRk */
18814 SEM_FN_NAME (frvbf,nfdmulcs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18816 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18817 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18818 int UNUSED written = 0;
18819 IADDR UNUSED pc = abuf->addr;
18820 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18823 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18825 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))));
18826 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18827 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18829 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18831 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)));
18832 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18833 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18841 /* nfdadds: nfdadds$pack $FRi,$FRj,$FRk */
18844 SEM_FN_NAME (frvbf,nfdadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18846 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18847 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18848 int UNUSED written = 0;
18849 IADDR UNUSED pc = abuf->addr;
18850 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18853 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18855 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)));
18856 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18857 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18859 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18861 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))));
18862 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18863 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18871 /* nfdsubs: nfdsubs$pack $FRi,$FRj,$FRk */
18874 SEM_FN_NAME (frvbf,nfdsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18876 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18877 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18878 int UNUSED written = 0;
18879 IADDR UNUSED pc = abuf->addr;
18880 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18883 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18885 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)));
18886 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18887 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18889 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18891 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))));
18892 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18893 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18901 /* nfdmuls: nfdmuls$pack $FRi,$FRj,$FRk */
18904 SEM_FN_NAME (frvbf,nfdmuls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18906 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18907 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18908 int UNUSED written = 0;
18909 IADDR UNUSED pc = abuf->addr;
18910 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18913 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18915 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)));
18916 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18917 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18919 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18921 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))));
18922 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18923 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18931 /* nfddivs: nfddivs$pack $FRi,$FRj,$FRk */
18934 SEM_FN_NAME (frvbf,nfddivs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18936 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18937 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18938 int UNUSED written = 0;
18939 IADDR UNUSED pc = abuf->addr;
18940 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18943 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18945 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)));
18946 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18947 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18949 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18951 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))));
18952 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18953 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18961 /* nfdsads: nfdsads$pack $FRi,$FRj,$FRk */
18964 SEM_FN_NAME (frvbf,nfdsads) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18966 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18967 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18968 int UNUSED written = 0;
18969 IADDR UNUSED pc = abuf->addr;
18970 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18973 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18975 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)));
18976 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18977 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18979 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18981 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))));
18982 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18983 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18991 /* nfdcmps: nfdcmps$pack $FRi,$FRj,$FCCi_2 */
18994 SEM_FN_NAME (frvbf,nfdcmps) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18996 #define FLD(f) abuf->fields.sfmt_nfdcmps.f
18997 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18998 int UNUSED written = 0;
18999 IADDR UNUSED pc = abuf->addr;
19000 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19003 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
19004 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)))) {
19007 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
19008 written |= (1 << 8);
19009 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
19012 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)))) {
19015 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
19016 written |= (1 << 8);
19017 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
19020 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)))) {
19023 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
19024 written |= (1 << 8);
19025 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
19030 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
19031 written |= (1 << 8);
19032 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
19037 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
19038 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))))) {
19041 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCi_2)) + (1))]), opval);
19042 written |= (1 << 9);
19043 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
19046 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))))) {
19049 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCi_2)) + (1))]), opval);
19050 written |= (1 << 9);
19051 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
19054 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))))) {
19057 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCi_2)) + (1))]), opval);
19058 written |= (1 << 9);
19059 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
19064 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCi_2)) + (1))]), opval);
19065 written |= (1 << 9);
19066 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
19073 abuf->written = written;
19078 /* mhsetlos: mhsetlos$pack $u12,$FRklo */
19081 SEM_FN_NAME (frvbf,mhsetlos) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19083 #define FLD(f) abuf->fields.sfmt_mhsetlos.f
19084 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19085 int UNUSED written = 0;
19086 IADDR UNUSED pc = abuf->addr;
19087 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19090 UHI opval = FLD (f_u12);
19091 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, FLD (f_FRk), opval);
19092 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19099 /* mhsethis: mhsethis$pack $u12,$FRkhi */
19102 SEM_FN_NAME (frvbf,mhsethis) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19104 #define FLD(f) abuf->fields.sfmt_mhsethis.f
19105 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19106 int UNUSED written = 0;
19107 IADDR UNUSED pc = abuf->addr;
19108 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19111 UHI opval = FLD (f_u12);
19112 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, FLD (f_FRk), opval);
19113 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19120 /* mhdsets: mhdsets$pack $u12,$FRintk */
19123 SEM_FN_NAME (frvbf,mhdsets) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19125 #define FLD(f) abuf->fields.sfmt_mhdsets.f
19126 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19127 int UNUSED written = 0;
19128 IADDR UNUSED pc = abuf->addr;
19129 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19133 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
19134 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19135 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19138 UHI opval = FLD (f_u12);
19139 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19140 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19143 UHI opval = FLD (f_u12);
19144 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19145 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19153 /* mhsetloh: mhsetloh$pack $s5,$FRklo */
19156 SEM_FN_NAME (frvbf,mhsetloh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19158 #define FLD(f) abuf->fields.sfmt_mhsetloh.f
19159 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19160 int UNUSED written = 0;
19161 IADDR UNUSED pc = abuf->addr;
19162 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19166 tmp_tmp = GET_H_FR_LO (FLD (f_FRk));
19167 tmp_tmp = ANDHI (tmp_tmp, 2047);
19168 tmp_tmp = ORHI (tmp_tmp, SLLSI (ANDSI (FLD (f_s5), 31), 11));
19170 UHI opval = tmp_tmp;
19171 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, FLD (f_FRk), opval);
19172 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19180 /* mhsethih: mhsethih$pack $s5,$FRkhi */
19183 SEM_FN_NAME (frvbf,mhsethih) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19185 #define FLD(f) abuf->fields.sfmt_mhsethih.f
19186 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19187 int UNUSED written = 0;
19188 IADDR UNUSED pc = abuf->addr;
19189 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19193 tmp_tmp = GET_H_FR_HI (FLD (f_FRk));
19194 tmp_tmp = ANDHI (tmp_tmp, 2047);
19195 tmp_tmp = ORHI (tmp_tmp, SLLSI (ANDSI (FLD (f_s5), 31), 11));
19197 UHI opval = tmp_tmp;
19198 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, FLD (f_FRk), opval);
19199 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19207 /* mhdseth: mhdseth$pack $s5,$FRintk */
19210 SEM_FN_NAME (frvbf,mhdseth) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19212 #define FLD(f) abuf->fields.sfmt_mhdseth.f
19213 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19214 int UNUSED written = 0;
19215 IADDR UNUSED pc = abuf->addr;
19216 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19220 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
19221 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19222 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19226 tmp_tmp = GET_H_FR_HI (((FLD (f_FRk)) + (0)));
19227 tmp_tmp = ANDHI (tmp_tmp, 2047);
19228 tmp_tmp = ORHI (tmp_tmp, SLLSI (ANDSI (FLD (f_s5), 31), 11));
19230 UHI opval = tmp_tmp;
19231 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19232 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19237 tmp_tmp = GET_H_FR_LO (((FLD (f_FRk)) + (0)));
19238 tmp_tmp = ANDHI (tmp_tmp, 2047);
19239 tmp_tmp = ORHI (tmp_tmp, SLLSI (ANDSI (FLD (f_s5), 31), 11));
19241 UHI opval = tmp_tmp;
19242 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19243 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19252 /* mand: mand$pack $FRinti,$FRintj,$FRintk */
19255 SEM_FN_NAME (frvbf,mand) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19257 #define FLD(f) abuf->fields.sfmt_mwcut.f
19258 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19259 int UNUSED written = 0;
19260 IADDR UNUSED pc = abuf->addr;
19261 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19264 SI opval = ANDSI (GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
19265 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19266 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19273 /* mor: mor$pack $FRinti,$FRintj,$FRintk */
19276 SEM_FN_NAME (frvbf,mor) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19278 #define FLD(f) abuf->fields.sfmt_mwcut.f
19279 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19280 int UNUSED written = 0;
19281 IADDR UNUSED pc = abuf->addr;
19282 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19285 SI opval = ORSI (GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
19286 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19287 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19294 /* mxor: mxor$pack $FRinti,$FRintj,$FRintk */
19297 SEM_FN_NAME (frvbf,mxor) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19299 #define FLD(f) abuf->fields.sfmt_mwcut.f
19300 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19301 int UNUSED written = 0;
19302 IADDR UNUSED pc = abuf->addr;
19303 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19306 SI opval = XORSI (GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
19307 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19308 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19315 /* cmand: cmand$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
19318 SEM_FN_NAME (frvbf,cmand) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19320 #define FLD(f) abuf->fields.sfmt_cmand.f
19321 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19322 int UNUSED written = 0;
19323 IADDR UNUSED pc = abuf->addr;
19324 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19326 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
19328 SI opval = ANDSI (GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
19329 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19330 written |= (1 << 4);
19331 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19335 abuf->written = written;
19340 /* cmor: cmor$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
19343 SEM_FN_NAME (frvbf,cmor) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19345 #define FLD(f) abuf->fields.sfmt_cmand.f
19346 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19347 int UNUSED written = 0;
19348 IADDR UNUSED pc = abuf->addr;
19349 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19351 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
19353 SI opval = ORSI (GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
19354 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19355 written |= (1 << 4);
19356 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19360 abuf->written = written;
19365 /* cmxor: cmxor$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
19368 SEM_FN_NAME (frvbf,cmxor) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19370 #define FLD(f) abuf->fields.sfmt_cmand.f
19371 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19372 int UNUSED written = 0;
19373 IADDR UNUSED pc = abuf->addr;
19374 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19376 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
19378 SI opval = XORSI (GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
19379 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19380 written |= (1 << 4);
19381 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19385 abuf->written = written;
19390 /* mnot: mnot$pack $FRintj,$FRintk */
19393 SEM_FN_NAME (frvbf,mnot) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19395 #define FLD(f) abuf->fields.sfmt_mcut.f
19396 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19397 int UNUSED written = 0;
19398 IADDR UNUSED pc = abuf->addr;
19399 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19402 SI opval = INVSI (GET_H_FR_INT (FLD (f_FRj)));
19403 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19404 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19411 /* cmnot: cmnot$pack $FRintj,$FRintk,$CCi,$cond */
19414 SEM_FN_NAME (frvbf,cmnot) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19416 #define FLD(f) abuf->fields.sfmt_cmand.f
19417 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19418 int UNUSED written = 0;
19419 IADDR UNUSED pc = abuf->addr;
19420 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19422 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
19424 SI opval = INVSI (GET_H_FR_INT (FLD (f_FRj)));
19425 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19426 written |= (1 << 3);
19427 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19431 abuf->written = written;
19436 /* mrotli: mrotli$pack $FRinti,$u6,$FRintk */
19439 SEM_FN_NAME (frvbf,mrotli) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19441 #define FLD(f) abuf->fields.sfmt_mwcuti.f
19442 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19443 int UNUSED written = 0;
19444 IADDR UNUSED pc = abuf->addr;
19445 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19448 SI opval = ROLSI (GET_H_FR_INT (FLD (f_FRi)), ANDSI (FLD (f_u6), 31));
19449 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19450 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19457 /* mrotri: mrotri$pack $FRinti,$u6,$FRintk */
19460 SEM_FN_NAME (frvbf,mrotri) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19462 #define FLD(f) abuf->fields.sfmt_mwcuti.f
19463 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19464 int UNUSED written = 0;
19465 IADDR UNUSED pc = abuf->addr;
19466 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19469 SI opval = RORSI (GET_H_FR_INT (FLD (f_FRi)), ANDSI (FLD (f_u6), 31));
19470 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19471 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19478 /* mwcut: mwcut$pack $FRinti,$FRintj,$FRintk */
19481 SEM_FN_NAME (frvbf,mwcut) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19483 #define FLD(f) abuf->fields.sfmt_mwcut.f
19484 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19485 int UNUSED written = 0;
19486 IADDR UNUSED pc = abuf->addr;
19487 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19490 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)));
19491 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19492 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19499 /* mwcuti: mwcuti$pack $FRinti,$u6,$FRintk */
19502 SEM_FN_NAME (frvbf,mwcuti) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19504 #define FLD(f) abuf->fields.sfmt_mwcuti.f
19505 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19506 int UNUSED written = 0;
19507 IADDR UNUSED pc = abuf->addr;
19508 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19511 SI opval = frvbf_cut (current_cpu, GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (((FLD (f_FRi)) + (1))), FLD (f_u6));
19512 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19513 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19520 /* mcut: mcut$pack $ACC40Si,$FRintj,$FRintk */
19523 SEM_FN_NAME (frvbf,mcut) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19525 #define FLD(f) abuf->fields.sfmt_mcut.f
19526 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19527 int UNUSED written = 0;
19528 IADDR UNUSED pc = abuf->addr;
19529 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19532 SI opval = frvbf_media_cut (current_cpu, GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_FR_INT (FLD (f_FRj)));
19533 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19534 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19541 /* mcuti: mcuti$pack $ACC40Si,$s6,$FRintk */
19544 SEM_FN_NAME (frvbf,mcuti) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19546 #define FLD(f) abuf->fields.sfmt_mcuti.f
19547 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19548 int UNUSED written = 0;
19549 IADDR UNUSED pc = abuf->addr;
19550 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19553 SI opval = frvbf_media_cut (current_cpu, GET_H_ACC40S (FLD (f_ACC40Si)), FLD (f_s6));
19554 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19555 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19562 /* mcutss: mcutss$pack $ACC40Si,$FRintj,$FRintk */
19565 SEM_FN_NAME (frvbf,mcutss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19567 #define FLD(f) abuf->fields.sfmt_mcut.f
19568 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19569 int UNUSED written = 0;
19570 IADDR UNUSED pc = abuf->addr;
19571 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19574 SI opval = frvbf_media_cut_ss (current_cpu, GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_FR_INT (FLD (f_FRj)));
19575 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19576 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19583 /* mcutssi: mcutssi$pack $ACC40Si,$s6,$FRintk */
19586 SEM_FN_NAME (frvbf,mcutssi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19588 #define FLD(f) abuf->fields.sfmt_mcuti.f
19589 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19590 int UNUSED written = 0;
19591 IADDR UNUSED pc = abuf->addr;
19592 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19595 SI opval = frvbf_media_cut_ss (current_cpu, GET_H_ACC40S (FLD (f_ACC40Si)), FLD (f_s6));
19596 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19597 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19604 /* mdcutssi: mdcutssi$pack $ACC40Si,$s6,$FRintkeven */
19607 SEM_FN_NAME (frvbf,mdcutssi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19609 #define FLD(f) abuf->fields.sfmt_mdcutssi.f
19610 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19611 int UNUSED written = 0;
19612 IADDR UNUSED pc = abuf->addr;
19613 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19615 if (ANDSI (FLD (f_ACC40Si), SUBSI (2, 1))) {
19616 frvbf_media_acc_not_aligned (current_cpu);
19618 if (ANDSI (FLD (f_FRk), SUBSI (2, 1))) {
19619 frvbf_media_register_not_aligned (current_cpu);
19623 SI opval = frvbf_media_cut_ss (current_cpu, GET_H_ACC40S (FLD (f_ACC40Si)), FLD (f_s6));
19624 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19625 written |= (1 << 5);
19626 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19629 USI opval = frvbf_media_cut_ss (current_cpu, GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))), FLD (f_s6));
19630 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
19631 written |= (1 << 6);
19632 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19638 abuf->written = written;
19643 /* maveh: maveh$pack $FRinti,$FRintj,$FRintk */
19646 SEM_FN_NAME (frvbf,maveh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19648 #define FLD(f) abuf->fields.sfmt_mwcut.f
19649 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19650 int UNUSED written = 0;
19651 IADDR UNUSED pc = abuf->addr;
19652 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19655 SI opval = frvbf_media_average (current_cpu, GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
19656 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19657 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19664 /* msllhi: msllhi$pack $FRinti,$u6,$FRintk */
19667 SEM_FN_NAME (frvbf,msllhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19669 #define FLD(f) abuf->fields.sfmt_msllhi.f
19670 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19671 int UNUSED written = 0;
19672 IADDR UNUSED pc = abuf->addr;
19673 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19677 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
19678 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
19679 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19682 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
19683 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19684 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19687 UHI opval = SLLHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), ANDSI (FLD (f_u6), 15));
19688 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19689 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19692 UHI opval = SLLHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), ANDSI (FLD (f_u6), 15));
19693 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19694 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19702 /* msrlhi: msrlhi$pack $FRinti,$u6,$FRintk */
19705 SEM_FN_NAME (frvbf,msrlhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19707 #define FLD(f) abuf->fields.sfmt_msllhi.f
19708 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19709 int UNUSED written = 0;
19710 IADDR UNUSED pc = abuf->addr;
19711 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19715 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
19716 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
19717 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19720 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
19721 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19722 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19725 UHI opval = SRLHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), ANDSI (FLD (f_u6), 15));
19726 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19727 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19730 UHI opval = SRLHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), ANDSI (FLD (f_u6), 15));
19731 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19732 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19740 /* msrahi: msrahi$pack $FRinti,$u6,$FRintk */
19743 SEM_FN_NAME (frvbf,msrahi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19745 #define FLD(f) abuf->fields.sfmt_msllhi.f
19746 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19747 int UNUSED written = 0;
19748 IADDR UNUSED pc = abuf->addr;
19749 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19753 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
19754 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
19755 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19758 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
19759 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19760 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19763 UHI opval = SRAHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), ANDSI (FLD (f_u6), 15));
19764 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19765 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19768 UHI opval = SRAHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), ANDSI (FLD (f_u6), 15));
19769 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19770 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19778 /* mdrotli: mdrotli$pack $FRintieven,$s6,$FRintkeven */
19781 SEM_FN_NAME (frvbf,mdrotli) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19783 #define FLD(f) abuf->fields.sfmt_mdrotli.f
19784 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19785 int UNUSED written = 0;
19786 IADDR UNUSED pc = abuf->addr;
19787 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19789 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1)))) {
19790 frvbf_media_register_not_aligned (current_cpu);
19794 SI opval = ROLSI (GET_H_FR_INT (FLD (f_FRi)), ANDSI (FLD (f_s6), 31));
19795 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19796 written |= (1 << 5);
19797 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19800 USI opval = ROLSI (GET_H_FR_INT (((FLD (f_FRi)) + (1))), ANDSI (FLD (f_s6), 31));
19801 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
19802 written |= (1 << 6);
19803 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19808 abuf->written = written;
19813 /* mcplhi: mcplhi$pack $FRinti,$u6,$FRintk */
19816 SEM_FN_NAME (frvbf,mcplhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19818 #define FLD(f) abuf->fields.sfmt_mcplhi.f
19819 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19820 int UNUSED written = 0;
19821 IADDR UNUSED pc = abuf->addr;
19822 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19829 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
19830 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
19831 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19834 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
19835 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19836 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19838 tmp_shift = ANDSI (FLD (f_u6), 15);
19839 tmp_arg1 = SLLHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), tmp_shift);
19840 if (NEHI (tmp_shift, 0)) {
19842 tmp_arg2 = GET_H_FR_HI (((FLD (f_FRi)) + (1)));
19843 tmp_arg2 = SRLHI (SLLHI (tmp_arg2, SUBSI (15, tmp_shift)), SUBSI (15, tmp_shift));
19844 tmp_arg1 = ORHI (tmp_arg1, tmp_arg2);
19848 UHI opval = tmp_arg1;
19849 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19850 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19858 /* mcpli: mcpli$pack $FRinti,$u6,$FRintk */
19861 SEM_FN_NAME (frvbf,mcpli) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19863 #define FLD(f) abuf->fields.sfmt_mwcuti.f
19864 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19865 int UNUSED written = 0;
19866 IADDR UNUSED pc = abuf->addr;
19867 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19872 tmp_shift = ANDSI (FLD (f_u6), 31);
19873 tmp_tmp = SLLSI (GET_H_FR_INT (FLD (f_FRi)), tmp_shift);
19874 if (NESI (tmp_shift, 0)) {
19877 tmp_tmp1 = SRLSI (SLLSI (GET_H_FR_INT (((FLD (f_FRi)) + (1))), SUBSI (31, tmp_shift)), SUBSI (31, tmp_shift));
19878 tmp_tmp = ORSI (tmp_tmp, tmp_tmp1);
19882 SI opval = tmp_tmp;
19883 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19884 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19892 /* msaths: msaths$pack $FRinti,$FRintj,$FRintk */
19895 SEM_FN_NAME (frvbf,msaths) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19897 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
19898 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19899 int UNUSED written = 0;
19900 IADDR UNUSED pc = abuf->addr;
19901 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19909 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
19910 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
19911 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
19912 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
19914 if (GTHI (tmp_argihi, tmp_argjhi)) {
19916 UHI opval = tmp_argjhi;
19917 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19918 written |= (1 << 9);
19919 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19922 if (LTHI (tmp_argihi, INVHI (tmp_argjhi))) {
19924 UHI opval = INVHI (tmp_argjhi);
19925 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19926 written |= (1 << 9);
19927 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19931 UHI opval = tmp_argihi;
19932 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19933 written |= (1 << 9);
19934 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19938 if (GTHI (tmp_argilo, tmp_argjlo)) {
19940 UHI opval = tmp_argjlo;
19941 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19942 written |= (1 << 10);
19943 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19946 if (LTHI (tmp_argilo, INVHI (tmp_argjlo))) {
19948 UHI opval = INVHI (tmp_argjlo);
19949 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19950 written |= (1 << 10);
19951 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19955 UHI opval = tmp_argilo;
19956 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19957 written |= (1 << 10);
19958 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19964 abuf->written = written;
19969 /* mqsaths: mqsaths$pack $FRintieven,$FRintjeven,$FRintkeven */
19972 SEM_FN_NAME (frvbf,mqsaths) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19974 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
19975 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19976 int UNUSED written = 0;
19977 IADDR UNUSED pc = abuf->addr;
19978 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19980 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
19981 frvbf_media_register_not_aligned (current_cpu);
19989 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
19990 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19991 written |= (1 << 14);
19992 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19995 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
19996 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
19997 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
19998 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20000 if (GTHI (tmp_argihi, tmp_argjhi)) {
20002 UHI opval = tmp_argjhi;
20003 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20004 written |= (1 << 15);
20005 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20008 if (LTHI (tmp_argihi, INVHI (tmp_argjhi))) {
20010 UHI opval = INVHI (tmp_argjhi);
20011 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20012 written |= (1 << 15);
20013 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20017 UHI opval = tmp_argihi;
20018 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20019 written |= (1 << 15);
20020 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20024 if (GTHI (tmp_argilo, tmp_argjlo)) {
20026 UHI opval = tmp_argjlo;
20027 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20028 written |= (1 << 17);
20029 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20032 if (LTHI (tmp_argilo, INVHI (tmp_argjlo))) {
20034 UHI opval = INVHI (tmp_argjlo);
20035 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20036 written |= (1 << 17);
20037 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20041 UHI opval = tmp_argilo;
20042 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20043 written |= (1 << 17);
20044 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20049 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20050 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20051 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20052 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20054 if (GTHI (tmp_argihi, tmp_argjhi)) {
20056 UHI opval = tmp_argjhi;
20057 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
20058 written |= (1 << 16);
20059 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20062 if (LTHI (tmp_argihi, INVHI (tmp_argjhi))) {
20064 UHI opval = INVHI (tmp_argjhi);
20065 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
20066 written |= (1 << 16);
20067 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20071 UHI opval = tmp_argihi;
20072 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
20073 written |= (1 << 16);
20074 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20078 if (GTHI (tmp_argilo, tmp_argjlo)) {
20080 UHI opval = tmp_argjlo;
20081 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
20082 written |= (1 << 18);
20083 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20086 if (LTHI (tmp_argilo, INVHI (tmp_argjlo))) {
20088 UHI opval = INVHI (tmp_argjlo);
20089 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
20090 written |= (1 << 18);
20091 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20095 UHI opval = tmp_argilo;
20096 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
20097 written |= (1 << 18);
20098 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20105 abuf->written = written;
20110 /* msathu: msathu$pack $FRinti,$FRintj,$FRintk */
20113 SEM_FN_NAME (frvbf,msathu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20115 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20116 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20117 int UNUSED written = 0;
20118 IADDR UNUSED pc = abuf->addr;
20119 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20127 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20128 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20129 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20130 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20132 if (GTUHI (tmp_argihi, tmp_argjhi)) {
20134 UHI opval = tmp_argjhi;
20135 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20136 written |= (1 << 9);
20137 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20141 UHI opval = tmp_argihi;
20142 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20143 written |= (1 << 9);
20144 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20147 if (GTUHI (tmp_argilo, tmp_argjlo)) {
20149 UHI opval = tmp_argjlo;
20150 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20151 written |= (1 << 10);
20152 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20156 UHI opval = tmp_argilo;
20157 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20158 written |= (1 << 10);
20159 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20164 abuf->written = written;
20169 /* mcmpsh: mcmpsh$pack $FRinti,$FRintj,$FCCk */
20172 SEM_FN_NAME (frvbf,mcmpsh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20174 #define FLD(f) abuf->fields.sfmt_mcmpsh.f
20175 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20176 int UNUSED written = 0;
20177 IADDR UNUSED pc = abuf->addr;
20178 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20180 if (ANDSI (FLD (f_FCCk), SUBSI (2, 1))) {
20181 frvbf_media_cr_not_aligned (current_cpu);
20189 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20190 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20191 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20192 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20194 if (GTHI (tmp_argihi, tmp_argjhi)) {
20197 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20198 written |= (1 << 9);
20199 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20202 if (EQHI (tmp_argihi, tmp_argjhi)) {
20205 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20206 written |= (1 << 9);
20207 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20210 if (LTHI (tmp_argihi, tmp_argjhi)) {
20213 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20214 written |= (1 << 9);
20215 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20220 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20221 written |= (1 << 9);
20222 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20227 if (GTHI (tmp_argilo, tmp_argjlo)) {
20230 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCk)) + (1))]), opval);
20231 written |= (1 << 10);
20232 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20235 if (EQHI (tmp_argilo, tmp_argjlo)) {
20238 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCk)) + (1))]), opval);
20239 written |= (1 << 10);
20240 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20243 if (LTHI (tmp_argilo, tmp_argjlo)) {
20246 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCk)) + (1))]), opval);
20247 written |= (1 << 10);
20248 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20253 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCk)) + (1))]), opval);
20254 written |= (1 << 10);
20255 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20263 abuf->written = written;
20268 /* mcmpuh: mcmpuh$pack $FRinti,$FRintj,$FCCk */
20271 SEM_FN_NAME (frvbf,mcmpuh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20273 #define FLD(f) abuf->fields.sfmt_mcmpsh.f
20274 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20275 int UNUSED written = 0;
20276 IADDR UNUSED pc = abuf->addr;
20277 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20279 if (ANDSI (FLD (f_FCCk), SUBSI (2, 1))) {
20280 frvbf_media_cr_not_aligned (current_cpu);
20288 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20289 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20290 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20291 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20293 if (GTUHI (tmp_argihi, tmp_argjhi)) {
20296 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20297 written |= (1 << 9);
20298 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20301 if (EQHI (tmp_argihi, tmp_argjhi)) {
20304 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20305 written |= (1 << 9);
20306 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20309 if (LTUHI (tmp_argihi, tmp_argjhi)) {
20312 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20313 written |= (1 << 9);
20314 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20319 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20320 written |= (1 << 9);
20321 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20326 if (GTUHI (tmp_argilo, tmp_argjlo)) {
20329 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCk)) + (1))]), opval);
20330 written |= (1 << 10);
20331 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20334 if (EQHI (tmp_argilo, tmp_argjlo)) {
20337 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCk)) + (1))]), opval);
20338 written |= (1 << 10);
20339 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20342 if (LTUHI (tmp_argilo, tmp_argjlo)) {
20345 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCk)) + (1))]), opval);
20346 written |= (1 << 10);
20347 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20352 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCk)) + (1))]), opval);
20353 written |= (1 << 10);
20354 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20362 abuf->written = written;
20367 /* mabshs: mabshs$pack $FRintj,$FRintk */
20370 SEM_FN_NAME (frvbf,mabshs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20372 #define FLD(f) abuf->fields.sfmt_mabshs.f
20373 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20374 int UNUSED written = 0;
20375 IADDR UNUSED pc = abuf->addr;
20376 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20382 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
20383 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
20384 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
20387 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
20388 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
20389 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
20391 tmp_arghi = GET_H_FR_HI (((FLD (f_FRj)) + (0)));
20392 tmp_arglo = GET_H_FR_LO (((FLD (f_FRj)) + (0)));
20393 if (GTDI (ABSHI (tmp_arghi), 32767)) {
20397 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20398 written |= (1 << 8);
20399 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20401 frvbf_media_overflow (current_cpu, 8);
20404 if (LTDI (ABSHI (tmp_arghi), -32768)) {
20407 UHI opval = -32768;
20408 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20409 written |= (1 << 8);
20410 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20412 frvbf_media_overflow (current_cpu, 8);
20416 UHI opval = ABSHI (tmp_arghi);
20417 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20418 written |= (1 << 8);
20419 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20423 if (GTDI (ABSHI (tmp_arglo), 32767)) {
20427 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20428 written |= (1 << 9);
20429 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20431 frvbf_media_overflow (current_cpu, 4);
20434 if (LTDI (ABSHI (tmp_arglo), -32768)) {
20437 UHI opval = -32768;
20438 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20439 written |= (1 << 9);
20440 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20442 frvbf_media_overflow (current_cpu, 4);
20446 UHI opval = ABSHI (tmp_arglo);
20447 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20448 written |= (1 << 9);
20449 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20455 abuf->written = written;
20460 /* maddhss: maddhss$pack $FRinti,$FRintj,$FRintk */
20463 SEM_FN_NAME (frvbf,maddhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20465 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20466 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20467 int UNUSED written = 0;
20468 IADDR UNUSED pc = abuf->addr;
20469 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20477 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20478 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20479 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20480 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20484 tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
20485 if (GTDI (tmp_tmp, 32767)) {
20489 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20490 written |= (1 << 9);
20491 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20493 frvbf_media_overflow (current_cpu, 8);
20496 if (LTDI (tmp_tmp, -32768)) {
20499 UHI opval = -32768;
20500 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20501 written |= (1 << 9);
20502 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20504 frvbf_media_overflow (current_cpu, 8);
20508 UHI opval = tmp_tmp;
20509 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20510 written |= (1 << 9);
20511 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20518 tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
20519 if (GTDI (tmp_tmp, 32767)) {
20523 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20524 written |= (1 << 10);
20525 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20527 frvbf_media_overflow (current_cpu, 4);
20530 if (LTDI (tmp_tmp, -32768)) {
20533 UHI opval = -32768;
20534 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20535 written |= (1 << 10);
20536 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20538 frvbf_media_overflow (current_cpu, 4);
20542 UHI opval = tmp_tmp;
20543 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20544 written |= (1 << 10);
20545 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20552 abuf->written = written;
20557 /* maddhus: maddhus$pack $FRinti,$FRintj,$FRintk */
20560 SEM_FN_NAME (frvbf,maddhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20562 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20563 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20564 int UNUSED written = 0;
20565 IADDR UNUSED pc = abuf->addr;
20566 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20574 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20575 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20576 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20577 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20581 tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
20582 if (GTDI (tmp_tmp, 65535)) {
20586 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20587 written |= (1 << 9);
20588 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20590 frvbf_media_overflow (current_cpu, 8);
20593 if (LTDI (tmp_tmp, 0)) {
20597 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20598 written |= (1 << 9);
20599 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20601 frvbf_media_overflow (current_cpu, 8);
20605 UHI opval = tmp_tmp;
20606 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20607 written |= (1 << 9);
20608 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20615 tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
20616 if (GTDI (tmp_tmp, 65535)) {
20620 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20621 written |= (1 << 10);
20622 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20624 frvbf_media_overflow (current_cpu, 4);
20627 if (LTDI (tmp_tmp, 0)) {
20631 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20632 written |= (1 << 10);
20633 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20635 frvbf_media_overflow (current_cpu, 4);
20639 UHI opval = tmp_tmp;
20640 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20641 written |= (1 << 10);
20642 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20649 abuf->written = written;
20654 /* msubhss: msubhss$pack $FRinti,$FRintj,$FRintk */
20657 SEM_FN_NAME (frvbf,msubhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20659 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20660 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20661 int UNUSED written = 0;
20662 IADDR UNUSED pc = abuf->addr;
20663 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20671 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20672 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20673 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20674 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20678 tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
20679 if (GTDI (tmp_tmp, 32767)) {
20683 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20684 written |= (1 << 9);
20685 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20687 frvbf_media_overflow (current_cpu, 8);
20690 if (LTDI (tmp_tmp, -32768)) {
20693 UHI opval = -32768;
20694 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20695 written |= (1 << 9);
20696 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20698 frvbf_media_overflow (current_cpu, 8);
20702 UHI opval = tmp_tmp;
20703 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20704 written |= (1 << 9);
20705 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20712 tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
20713 if (GTDI (tmp_tmp, 32767)) {
20717 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20718 written |= (1 << 10);
20719 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20721 frvbf_media_overflow (current_cpu, 4);
20724 if (LTDI (tmp_tmp, -32768)) {
20727 UHI opval = -32768;
20728 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20729 written |= (1 << 10);
20730 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20732 frvbf_media_overflow (current_cpu, 4);
20736 UHI opval = tmp_tmp;
20737 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20738 written |= (1 << 10);
20739 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20746 abuf->written = written;
20751 /* msubhus: msubhus$pack $FRinti,$FRintj,$FRintk */
20754 SEM_FN_NAME (frvbf,msubhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20756 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20757 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20758 int UNUSED written = 0;
20759 IADDR UNUSED pc = abuf->addr;
20760 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20768 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20769 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20770 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20771 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20775 tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
20776 if (GTDI (tmp_tmp, 65535)) {
20780 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20781 written |= (1 << 9);
20782 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20784 frvbf_media_overflow (current_cpu, 8);
20787 if (LTDI (tmp_tmp, 0)) {
20791 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20792 written |= (1 << 9);
20793 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20795 frvbf_media_overflow (current_cpu, 8);
20799 UHI opval = tmp_tmp;
20800 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20801 written |= (1 << 9);
20802 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20809 tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
20810 if (GTDI (tmp_tmp, 65535)) {
20814 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20815 written |= (1 << 10);
20816 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20818 frvbf_media_overflow (current_cpu, 4);
20821 if (LTDI (tmp_tmp, 0)) {
20825 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20826 written |= (1 << 10);
20827 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20829 frvbf_media_overflow (current_cpu, 4);
20833 UHI opval = tmp_tmp;
20834 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20835 written |= (1 << 10);
20836 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20843 abuf->written = written;
20848 /* cmaddhss: cmaddhss$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
20851 SEM_FN_NAME (frvbf,cmaddhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20853 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20854 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20855 int UNUSED written = 0;
20856 IADDR UNUSED pc = abuf->addr;
20857 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20859 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
20866 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20867 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20868 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20869 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20873 tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
20874 if (GTDI (tmp_tmp, 32767)) {
20878 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20879 written |= (1 << 11);
20880 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20882 frvbf_media_overflow (current_cpu, 8);
20885 if (LTDI (tmp_tmp, -32768)) {
20888 UHI opval = -32768;
20889 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20890 written |= (1 << 11);
20891 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20893 frvbf_media_overflow (current_cpu, 8);
20897 UHI opval = tmp_tmp;
20898 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20899 written |= (1 << 11);
20900 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20907 tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
20908 if (GTDI (tmp_tmp, 32767)) {
20912 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20913 written |= (1 << 12);
20914 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20916 frvbf_media_overflow (current_cpu, 4);
20919 if (LTDI (tmp_tmp, -32768)) {
20922 UHI opval = -32768;
20923 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20924 written |= (1 << 12);
20925 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20927 frvbf_media_overflow (current_cpu, 4);
20931 UHI opval = tmp_tmp;
20932 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20933 written |= (1 << 12);
20934 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20942 abuf->written = written;
20947 /* cmaddhus: cmaddhus$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
20950 SEM_FN_NAME (frvbf,cmaddhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20952 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20953 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20954 int UNUSED written = 0;
20955 IADDR UNUSED pc = abuf->addr;
20956 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20958 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
20965 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20966 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20967 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20968 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20972 tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
20973 if (GTDI (tmp_tmp, 65535)) {
20977 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20978 written |= (1 << 11);
20979 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20981 frvbf_media_overflow (current_cpu, 8);
20984 if (LTDI (tmp_tmp, 0)) {
20988 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20989 written |= (1 << 11);
20990 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20992 frvbf_media_overflow (current_cpu, 8);
20996 UHI opval = tmp_tmp;
20997 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20998 written |= (1 << 11);
20999 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21006 tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
21007 if (GTDI (tmp_tmp, 65535)) {
21011 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21012 written |= (1 << 12);
21013 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21015 frvbf_media_overflow (current_cpu, 4);
21018 if (LTDI (tmp_tmp, 0)) {
21022 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21023 written |= (1 << 12);
21024 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21026 frvbf_media_overflow (current_cpu, 4);
21030 UHI opval = tmp_tmp;
21031 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21032 written |= (1 << 12);
21033 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21041 abuf->written = written;
21046 /* cmsubhss: cmsubhss$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
21049 SEM_FN_NAME (frvbf,cmsubhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
21051 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
21052 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
21053 int UNUSED written = 0;
21054 IADDR UNUSED pc = abuf->addr;
21055 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
21057 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
21064 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21065 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21066 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21067 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21071 tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
21072 if (GTDI (tmp_tmp, 32767)) {
21076 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21077 written |= (1 << 11);
21078 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21080 frvbf_media_overflow (current_cpu, 8);
21083 if (LTDI (tmp_tmp, -32768)) {
21086 UHI opval = -32768;
21087 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21088 written |= (1 << 11);
21089 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21091 frvbf_media_overflow (current_cpu, 8);
21095 UHI opval = tmp_tmp;
21096 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21097 written |= (1 << 11);
21098 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21105 tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
21106 if (GTDI (tmp_tmp, 32767)) {
21110 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21111 written |= (1 << 12);
21112 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21114 frvbf_media_overflow (current_cpu, 4);
21117 if (LTDI (tmp_tmp, -32768)) {
21120 UHI opval = -32768;
21121 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21122 written |= (1 << 12);
21123 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21125 frvbf_media_overflow (current_cpu, 4);
21129 UHI opval = tmp_tmp;
21130 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21131 written |= (1 << 12);
21132 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21140 abuf->written = written;
21145 /* cmsubhus: cmsubhus$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
21148 SEM_FN_NAME (frvbf,cmsubhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
21150 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
21151 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
21152 int UNUSED written = 0;
21153 IADDR UNUSED pc = abuf->addr;
21154 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
21156 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
21163 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21164 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21165 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21166 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21170 tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
21171 if (GTDI (tmp_tmp, 65535)) {
21175 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21176 written |= (1 << 11);
21177 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21179 frvbf_media_overflow (current_cpu, 8);
21182 if (LTDI (tmp_tmp, 0)) {
21186 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21187 written |= (1 << 11);
21188 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21190 frvbf_media_overflow (current_cpu, 8);
21194 UHI opval = tmp_tmp;
21195 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21196 written |= (1 << 11);
21197 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21204 tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
21205 if (GTDI (tmp_tmp, 65535)) {
21209 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21210 written |= (1 << 12);
21211 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21213 frvbf_media_overflow (current_cpu, 4);
21216 if (LTDI (tmp_tmp, 0)) {
21220 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21221 written |= (1 << 12);
21222 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21224 frvbf_media_overflow (current_cpu, 4);
21228 UHI opval = tmp_tmp;
21229 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21230 written |= (1 << 12);
21231 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21239 abuf->written = written;
21244 /* mqaddhss: mqaddhss$pack $FRintieven,$FRintjeven,$FRintkeven */
21247 SEM_FN_NAME (frvbf,mqaddhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
21249 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
21250 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
21251 int UNUSED written = 0;
21252 IADDR UNUSED pc = abuf->addr;
21253 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
21255 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
21256 frvbf_media_register_not_aligned (current_cpu);
21264 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
21265 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
21266 written |= (1 << 14);
21267 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
21270 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21271 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21272 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21273 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21277 tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
21278 if (GTDI (tmp_tmp, 32767)) {
21282 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21283 written |= (1 << 15);
21284 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21286 frvbf_media_overflow (current_cpu, 8);
21289 if (LTDI (tmp_tmp, -32768)) {
21292 UHI opval = -32768;
21293 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21294 written |= (1 << 15);
21295 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21297 frvbf_media_overflow (current_cpu, 8);
21301 UHI opval = tmp_tmp;
21302 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21303 written |= (1 << 15);
21304 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21311 tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
21312 if (GTDI (tmp_tmp, 32767)) {
21316 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21317 written |= (1 << 17);
21318 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21320 frvbf_media_overflow (current_cpu, 4);
21323 if (LTDI (tmp_tmp, -32768)) {
21326 UHI opval = -32768;
21327 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21328 written |= (1 << 17);
21329 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21331 frvbf_media_overflow (current_cpu, 4);
21335 UHI opval = tmp_tmp;
21336 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21337 written |= (1 << 17);
21338 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21344 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21345 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21346 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21347 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21351 tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
21352 if (GTDI (tmp_tmp, 32767)) {
21356 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21357 written |= (1 << 16);
21358 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21360 frvbf_media_overflow (current_cpu, 2);
21363 if (LTDI (tmp_tmp, -32768)) {
21366 UHI opval = -32768;
21367 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21368 written |= (1 << 16);
21369 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21371 frvbf_media_overflow (current_cpu, 2);
21375 UHI opval = tmp_tmp;
21376 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21377 written |= (1 << 16);
21378 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21385 tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
21386 if (GTDI (tmp_tmp, 32767)) {
21390 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21391 written |= (1 << 18);
21392 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21394 frvbf_media_overflow (current_cpu, 1);
21397 if (LTDI (tmp_tmp, -32768)) {
21400 UHI opval = -32768;
21401 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21402 written |= (1 << 18);
21403 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21405 frvbf_media_overflow (current_cpu, 1);
21409 UHI opval = tmp_tmp;
21410 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21411 written |= (1 << 18);
21412 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21420 abuf->written = written;
21425 /* mqaddhus: mqaddhus$pack $FRintieven,$FRintjeven,$FRintkeven */
21428 SEM_FN_NAME (frvbf,mqaddhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
21430 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
21431 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
21432 int UNUSED written = 0;
21433 IADDR UNUSED pc = abuf->addr;
21434 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
21436 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
21437 frvbf_media_register_not_aligned (current_cpu);
21445 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
21446 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
21447 written |= (1 << 14);
21448 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
21451 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21452 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21453 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21454 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21458 tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
21459 if (GTDI (tmp_tmp, 65535)) {
21463 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21464 written |= (1 << 15);
21465 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21467 frvbf_media_overflow (current_cpu, 8);
21470 if (LTDI (tmp_tmp, 0)) {
21474 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21475 written |= (1 << 15);
21476 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21478 frvbf_media_overflow (current_cpu, 8);
21482 UHI opval = tmp_tmp;
21483 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21484 written |= (1 << 15);
21485 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21492 tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
21493 if (GTDI (tmp_tmp, 65535)) {
21497 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21498 written |= (1 << 17);
21499 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21501 frvbf_media_overflow (current_cpu, 4);
21504 if (LTDI (tmp_tmp, 0)) {
21508 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21509 written |= (1 << 17);
21510 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21512 frvbf_media_overflow (current_cpu, 4);
21516 UHI opval = tmp_tmp;
21517 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21518 written |= (1 << 17);
21519 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21525 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21526 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21527 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21528 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21532 tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
21533 if (GTDI (tmp_tmp, 65535)) {
21537 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21538 written |= (1 << 16);
21539 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21541 frvbf_media_overflow (current_cpu, 2);
21544 if (LTDI (tmp_tmp, 0)) {
21548 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21549 written |= (1 << 16);
21550 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21552 frvbf_media_overflow (current_cpu, 2);
21556 UHI opval = tmp_tmp;
21557 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21558 written |= (1 << 16);
21559 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21566 tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
21567 if (GTDI (tmp_tmp, 65535)) {
21571 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21572 written |= (1 << 18);
21573 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21575 frvbf_media_overflow (current_cpu, 1);
21578 if (LTDI (tmp_tmp, 0)) {
21582 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21583 written |= (1 << 18);
21584 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21586 frvbf_media_overflow (current_cpu, 1);
21590 UHI opval = tmp_tmp;
21591 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21592 written |= (1 << 18);
21593 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21601 abuf->written = written;
21606 /* mqsubhss: mqsubhss$pack $FRintieven,$FRintjeven,$FRintkeven */
21609 SEM_FN_NAME (frvbf,mqsubhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
21611 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
21612 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
21613 int UNUSED written = 0;
21614 IADDR UNUSED pc = abuf->addr;
21615 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
21617 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
21618 frvbf_media_register_not_aligned (current_cpu);
21626 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
21627 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
21628 written |= (1 << 14);
21629 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
21632 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21633 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21634 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21635 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21639 tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
21640 if (GTDI (tmp_tmp, 32767)) {
21644 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21645 written |= (1 << 15);
21646 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21648 frvbf_media_overflow (current_cpu, 8);
21651 if (LTDI (tmp_tmp, -32768)) {
21654 UHI opval = -32768;
21655 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21656 written |= (1 << 15);
21657 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21659 frvbf_media_overflow (current_cpu, 8);
21663 UHI opval = tmp_tmp;
21664 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21665 written |= (1 << 15);
21666 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21673 tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
21674 if (GTDI (tmp_tmp, 32767)) {
21678 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21679 written |= (1 << 17);
21680 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21682 frvbf_media_overflow (current_cpu, 4);
21685 if (LTDI (tmp_tmp, -32768)) {
21688 UHI opval = -32768;
21689 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21690 written |= (1 << 17);
21691 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21693 frvbf_media_overflow (current_cpu, 4);
21697 UHI opval = tmp_tmp;
21698 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21699 written |= (1 << 17);
21700 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21706 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21707 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21708 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21709 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21713 tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
21714 if (GTDI (tmp_tmp, 32767)) {
21718 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21719 written |= (1 << 16);
21720 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21722 frvbf_media_overflow (current_cpu, 2);
21725 if (LTDI (tmp_tmp, -32768)) {
21728 UHI opval = -32768;
21729 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21730 written |= (1 << 16);
21731 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21733 frvbf_media_overflow (current_cpu, 2);
21737 UHI opval = tmp_tmp;
21738 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21739 written |= (1 << 16);
21740 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21747 tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
21748 if (GTDI (tmp_tmp, 32767)) {
21752 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21753 written |= (1 << 18);
21754 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21756 frvbf_media_overflow (current_cpu, 1);
21759 if (LTDI (tmp_tmp, -32768)) {
21762 UHI opval = -32768;
21763 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21764 written |= (1 << 18);
21765 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21767 frvbf_media_overflow (current_cpu, 1);
21771 UHI opval = tmp_tmp;
21772 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21773 written |= (1 << 18);
21774 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21782 abuf->written = written;
21787 /* mqsubhus: mqsubhus$pack $FRintieven,$FRintjeven,$FRintkeven */
21790 SEM_FN_NAME (frvbf,mqsubhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
21792 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
21793 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
21794 int UNUSED written = 0;
21795 IADDR UNUSED pc = abuf->addr;
21796 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
21798 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
21799 frvbf_media_register_not_aligned (current_cpu);
21807 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
21808 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
21809 written |= (1 << 14);
21810 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
21813 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21814 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21815 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21816 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21820 tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
21821 if (GTDI (tmp_tmp, 65535)) {
21825 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21826 written |= (1 << 15);
21827 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21829 frvbf_media_overflow (current_cpu, 8);
21832 if (LTDI (tmp_tmp, 0)) {
21836 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21837 written |= (1 << 15);
21838 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21840 frvbf_media_overflow (current_cpu, 8);
21844 UHI opval = tmp_tmp;
21845 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21846 written |= (1 << 15);
21847 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21854 tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
21855 if (GTDI (tmp_tmp, 65535)) {
21859 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21860 written |= (1 << 17);
21861 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21863 frvbf_media_overflow (current_cpu, 4);
21866 if (LTDI (tmp_tmp, 0)) {
21870 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21871 written |= (1 << 17);
21872 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21874 frvbf_media_overflow (current_cpu, 4);
21878 UHI opval = tmp_tmp;
21879 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21880 written |= (1 << 17);
21881 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21887 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21888 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21889 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21890 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21894 tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
21895 if (GTDI (tmp_tmp, 65535)) {
21899 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21900 written |= (1 << 16);
21901 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21903 frvbf_media_overflow (current_cpu, 2);
21906 if (LTDI (tmp_tmp, 0)) {
21910 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21911 written |= (1 << 16);
21912 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21914 frvbf_media_overflow (current_cpu, 2);
21918 UHI opval = tmp_tmp;
21919 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21920 written |= (1 << 16);
21921 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21928 tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
21929 if (GTDI (tmp_tmp, 65535)) {
21933 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21934 written |= (1 << 18);
21935 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21937 frvbf_media_overflow (current_cpu, 1);
21940 if (LTDI (tmp_tmp, 0)) {
21944 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21945 written |= (1 << 18);
21946 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21948 frvbf_media_overflow (current_cpu, 1);
21952 UHI opval = tmp_tmp;
21953 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21954 written |= (1 << 18);
21955 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21963 abuf->written = written;
21968 /* cmqaddhss: cmqaddhss$pack $FRintieven,$FRintjeven,$FRintkeven,$CCi,$cond */
21971 SEM_FN_NAME (frvbf,cmqaddhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
21973 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
21974 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
21975 int UNUSED written = 0;
21976 IADDR UNUSED pc = abuf->addr;
21977 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
21979 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
21980 frvbf_media_register_not_aligned (current_cpu);
21982 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
21989 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
21990 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
21991 written |= (1 << 16);
21992 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
21995 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21996 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21997 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21998 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22002 tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
22003 if (GTDI (tmp_tmp, 32767)) {
22007 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22008 written |= (1 << 17);
22009 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22011 frvbf_media_overflow (current_cpu, 8);
22014 if (LTDI (tmp_tmp, -32768)) {
22017 UHI opval = -32768;
22018 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22019 written |= (1 << 17);
22020 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22022 frvbf_media_overflow (current_cpu, 8);
22026 UHI opval = tmp_tmp;
22027 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22028 written |= (1 << 17);
22029 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22036 tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
22037 if (GTDI (tmp_tmp, 32767)) {
22041 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22042 written |= (1 << 19);
22043 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22045 frvbf_media_overflow (current_cpu, 4);
22048 if (LTDI (tmp_tmp, -32768)) {
22051 UHI opval = -32768;
22052 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22053 written |= (1 << 19);
22054 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22056 frvbf_media_overflow (current_cpu, 4);
22060 UHI opval = tmp_tmp;
22061 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22062 written |= (1 << 19);
22063 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22069 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22070 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22071 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22072 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22076 tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
22077 if (GTDI (tmp_tmp, 32767)) {
22081 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22082 written |= (1 << 18);
22083 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22085 frvbf_media_overflow (current_cpu, 2);
22088 if (LTDI (tmp_tmp, -32768)) {
22091 UHI opval = -32768;
22092 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22093 written |= (1 << 18);
22094 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22096 frvbf_media_overflow (current_cpu, 2);
22100 UHI opval = tmp_tmp;
22101 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22102 written |= (1 << 18);
22103 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22110 tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
22111 if (GTDI (tmp_tmp, 32767)) {
22115 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22116 written |= (1 << 20);
22117 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22119 frvbf_media_overflow (current_cpu, 1);
22122 if (LTDI (tmp_tmp, -32768)) {
22125 UHI opval = -32768;
22126 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22127 written |= (1 << 20);
22128 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22130 frvbf_media_overflow (current_cpu, 1);
22134 UHI opval = tmp_tmp;
22135 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22136 written |= (1 << 20);
22137 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22146 abuf->written = written;
22151 /* cmqaddhus: cmqaddhus$pack $FRintieven,$FRintjeven,$FRintkeven,$CCi,$cond */
22154 SEM_FN_NAME (frvbf,cmqaddhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22156 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
22157 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22158 int UNUSED written = 0;
22159 IADDR UNUSED pc = abuf->addr;
22160 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22162 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
22163 frvbf_media_register_not_aligned (current_cpu);
22165 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
22172 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
22173 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
22174 written |= (1 << 16);
22175 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
22178 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22179 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22180 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22181 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22185 tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
22186 if (GTDI (tmp_tmp, 65535)) {
22190 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22191 written |= (1 << 17);
22192 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22194 frvbf_media_overflow (current_cpu, 8);
22197 if (LTDI (tmp_tmp, 0)) {
22201 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22202 written |= (1 << 17);
22203 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22205 frvbf_media_overflow (current_cpu, 8);
22209 UHI opval = tmp_tmp;
22210 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22211 written |= (1 << 17);
22212 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22219 tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
22220 if (GTDI (tmp_tmp, 65535)) {
22224 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22225 written |= (1 << 19);
22226 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22228 frvbf_media_overflow (current_cpu, 4);
22231 if (LTDI (tmp_tmp, 0)) {
22235 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22236 written |= (1 << 19);
22237 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22239 frvbf_media_overflow (current_cpu, 4);
22243 UHI opval = tmp_tmp;
22244 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22245 written |= (1 << 19);
22246 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22252 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22253 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22254 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22255 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22259 tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
22260 if (GTDI (tmp_tmp, 65535)) {
22264 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22265 written |= (1 << 18);
22266 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22268 frvbf_media_overflow (current_cpu, 2);
22271 if (LTDI (tmp_tmp, 0)) {
22275 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22276 written |= (1 << 18);
22277 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22279 frvbf_media_overflow (current_cpu, 2);
22283 UHI opval = tmp_tmp;
22284 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22285 written |= (1 << 18);
22286 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22293 tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
22294 if (GTDI (tmp_tmp, 65535)) {
22298 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22299 written |= (1 << 20);
22300 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22302 frvbf_media_overflow (current_cpu, 1);
22305 if (LTDI (tmp_tmp, 0)) {
22309 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22310 written |= (1 << 20);
22311 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22313 frvbf_media_overflow (current_cpu, 1);
22317 UHI opval = tmp_tmp;
22318 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22319 written |= (1 << 20);
22320 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22329 abuf->written = written;
22334 /* cmqsubhss: cmqsubhss$pack $FRintieven,$FRintjeven,$FRintkeven,$CCi,$cond */
22337 SEM_FN_NAME (frvbf,cmqsubhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22339 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
22340 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22341 int UNUSED written = 0;
22342 IADDR UNUSED pc = abuf->addr;
22343 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22345 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
22346 frvbf_media_register_not_aligned (current_cpu);
22348 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
22355 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
22356 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
22357 written |= (1 << 16);
22358 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
22361 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22362 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22363 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22364 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22368 tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
22369 if (GTDI (tmp_tmp, 32767)) {
22373 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22374 written |= (1 << 17);
22375 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22377 frvbf_media_overflow (current_cpu, 8);
22380 if (LTDI (tmp_tmp, -32768)) {
22383 UHI opval = -32768;
22384 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22385 written |= (1 << 17);
22386 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22388 frvbf_media_overflow (current_cpu, 8);
22392 UHI opval = tmp_tmp;
22393 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22394 written |= (1 << 17);
22395 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22402 tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
22403 if (GTDI (tmp_tmp, 32767)) {
22407 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22408 written |= (1 << 19);
22409 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22411 frvbf_media_overflow (current_cpu, 4);
22414 if (LTDI (tmp_tmp, -32768)) {
22417 UHI opval = -32768;
22418 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22419 written |= (1 << 19);
22420 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22422 frvbf_media_overflow (current_cpu, 4);
22426 UHI opval = tmp_tmp;
22427 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22428 written |= (1 << 19);
22429 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22435 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22436 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22437 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22438 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22442 tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
22443 if (GTDI (tmp_tmp, 32767)) {
22447 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22448 written |= (1 << 18);
22449 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22451 frvbf_media_overflow (current_cpu, 2);
22454 if (LTDI (tmp_tmp, -32768)) {
22457 UHI opval = -32768;
22458 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22459 written |= (1 << 18);
22460 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22462 frvbf_media_overflow (current_cpu, 2);
22466 UHI opval = tmp_tmp;
22467 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22468 written |= (1 << 18);
22469 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22476 tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
22477 if (GTDI (tmp_tmp, 32767)) {
22481 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22482 written |= (1 << 20);
22483 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22485 frvbf_media_overflow (current_cpu, 1);
22488 if (LTDI (tmp_tmp, -32768)) {
22491 UHI opval = -32768;
22492 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22493 written |= (1 << 20);
22494 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22496 frvbf_media_overflow (current_cpu, 1);
22500 UHI opval = tmp_tmp;
22501 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22502 written |= (1 << 20);
22503 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22512 abuf->written = written;
22517 /* cmqsubhus: cmqsubhus$pack $FRintieven,$FRintjeven,$FRintkeven,$CCi,$cond */
22520 SEM_FN_NAME (frvbf,cmqsubhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22522 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
22523 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22524 int UNUSED written = 0;
22525 IADDR UNUSED pc = abuf->addr;
22526 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22528 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
22529 frvbf_media_register_not_aligned (current_cpu);
22531 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
22538 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
22539 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
22540 written |= (1 << 16);
22541 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
22544 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22545 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22546 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22547 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22551 tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
22552 if (GTDI (tmp_tmp, 65535)) {
22556 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22557 written |= (1 << 17);
22558 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22560 frvbf_media_overflow (current_cpu, 8);
22563 if (LTDI (tmp_tmp, 0)) {
22567 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22568 written |= (1 << 17);
22569 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22571 frvbf_media_overflow (current_cpu, 8);
22575 UHI opval = tmp_tmp;
22576 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22577 written |= (1 << 17);
22578 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22585 tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
22586 if (GTDI (tmp_tmp, 65535)) {
22590 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22591 written |= (1 << 19);
22592 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22594 frvbf_media_overflow (current_cpu, 4);
22597 if (LTDI (tmp_tmp, 0)) {
22601 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22602 written |= (1 << 19);
22603 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22605 frvbf_media_overflow (current_cpu, 4);
22609 UHI opval = tmp_tmp;
22610 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22611 written |= (1 << 19);
22612 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22618 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22619 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22620 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22621 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22625 tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
22626 if (GTDI (tmp_tmp, 65535)) {
22630 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22631 written |= (1 << 18);
22632 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22634 frvbf_media_overflow (current_cpu, 2);
22637 if (LTDI (tmp_tmp, 0)) {
22641 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22642 written |= (1 << 18);
22643 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22645 frvbf_media_overflow (current_cpu, 2);
22649 UHI opval = tmp_tmp;
22650 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22651 written |= (1 << 18);
22652 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22659 tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
22660 if (GTDI (tmp_tmp, 65535)) {
22664 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22665 written |= (1 << 20);
22666 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22668 frvbf_media_overflow (current_cpu, 1);
22671 if (LTDI (tmp_tmp, 0)) {
22675 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22676 written |= (1 << 20);
22677 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22679 frvbf_media_overflow (current_cpu, 1);
22683 UHI opval = tmp_tmp;
22684 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22685 written |= (1 << 20);
22686 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22695 abuf->written = written;
22700 /* maddaccs: maddaccs$pack $ACC40Si,$ACC40Sk */
22703 SEM_FN_NAME (frvbf,maddaccs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22705 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
22706 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22707 int UNUSED written = 0;
22708 IADDR UNUSED pc = abuf->addr;
22709 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22711 if (ANDSI (FLD (f_ACC40Si), SUBSI (2, 1))) {
22712 frvbf_media_acc_not_aligned (current_cpu);
22716 tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))));
22717 if (GTDI (tmp_tmp, 549755813887)) {
22720 DI opval = 549755813887;
22721 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22722 written |= (1 << 3);
22723 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22725 frvbf_media_overflow (current_cpu, 8);
22728 if (LTDI (tmp_tmp, INVDI (549755813887))) {
22731 DI opval = INVDI (549755813887);
22732 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22733 written |= (1 << 3);
22734 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22736 frvbf_media_overflow (current_cpu, 8);
22740 DI opval = tmp_tmp;
22741 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22742 written |= (1 << 3);
22743 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22750 abuf->written = written;
22755 /* msubaccs: msubaccs$pack $ACC40Si,$ACC40Sk */
22758 SEM_FN_NAME (frvbf,msubaccs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22760 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
22761 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22762 int UNUSED written = 0;
22763 IADDR UNUSED pc = abuf->addr;
22764 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22766 if (ANDSI (FLD (f_ACC40Si), SUBSI (2, 1))) {
22767 frvbf_media_acc_not_aligned (current_cpu);
22771 tmp_tmp = SUBDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))));
22772 if (GTDI (tmp_tmp, 549755813887)) {
22775 DI opval = 549755813887;
22776 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22777 written |= (1 << 3);
22778 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22780 frvbf_media_overflow (current_cpu, 8);
22783 if (LTDI (tmp_tmp, INVDI (549755813887))) {
22786 DI opval = INVDI (549755813887);
22787 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22788 written |= (1 << 3);
22789 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22791 frvbf_media_overflow (current_cpu, 8);
22795 DI opval = tmp_tmp;
22796 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22797 written |= (1 << 3);
22798 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22805 abuf->written = written;
22810 /* mdaddaccs: mdaddaccs$pack $ACC40Si,$ACC40Sk */
22813 SEM_FN_NAME (frvbf,mdaddaccs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22815 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
22816 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22817 int UNUSED written = 0;
22818 IADDR UNUSED pc = abuf->addr;
22819 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22821 if (ANDSI (FLD (f_ACC40Si), SUBSI (4, 1))) {
22822 frvbf_media_acc_not_aligned (current_cpu);
22824 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
22825 frvbf_media_acc_not_aligned (current_cpu);
22830 tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))));
22831 if (GTDI (tmp_tmp, 549755813887)) {
22834 DI opval = 549755813887;
22835 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22836 written |= (1 << 6);
22837 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22839 frvbf_media_overflow (current_cpu, 8);
22842 if (LTDI (tmp_tmp, INVDI (549755813887))) {
22845 DI opval = INVDI (549755813887);
22846 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22847 written |= (1 << 6);
22848 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22850 frvbf_media_overflow (current_cpu, 8);
22854 DI opval = tmp_tmp;
22855 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22856 written |= (1 << 6);
22857 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22864 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Si)) + (2))), GET_H_ACC40S (((FLD (f_ACC40Si)) + (3))));
22865 if (GTDI (tmp_tmp, 549755813887)) {
22868 DI opval = 549755813887;
22869 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
22870 written |= (1 << 7);
22871 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22873 frvbf_media_overflow (current_cpu, 4);
22876 if (LTDI (tmp_tmp, INVDI (549755813887))) {
22879 DI opval = INVDI (549755813887);
22880 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
22881 written |= (1 << 7);
22882 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22884 frvbf_media_overflow (current_cpu, 4);
22888 DI opval = tmp_tmp;
22889 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
22890 written |= (1 << 7);
22891 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22900 abuf->written = written;
22905 /* mdsubaccs: mdsubaccs$pack $ACC40Si,$ACC40Sk */
22908 SEM_FN_NAME (frvbf,mdsubaccs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22910 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
22911 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22912 int UNUSED written = 0;
22913 IADDR UNUSED pc = abuf->addr;
22914 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22916 if (ANDSI (FLD (f_ACC40Si), SUBSI (4, 1))) {
22917 frvbf_media_acc_not_aligned (current_cpu);
22919 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
22920 frvbf_media_acc_not_aligned (current_cpu);
22925 tmp_tmp = SUBDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))));
22926 if (GTDI (tmp_tmp, 549755813887)) {
22929 DI opval = 549755813887;
22930 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22931 written |= (1 << 6);
22932 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22934 frvbf_media_overflow (current_cpu, 8);
22937 if (LTDI (tmp_tmp, INVDI (549755813887))) {
22940 DI opval = INVDI (549755813887);
22941 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22942 written |= (1 << 6);
22943 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22945 frvbf_media_overflow (current_cpu, 8);
22949 DI opval = tmp_tmp;
22950 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22951 written |= (1 << 6);
22952 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22959 tmp_tmp = SUBDI (GET_H_ACC40S (((FLD (f_ACC40Si)) + (2))), GET_H_ACC40S (((FLD (f_ACC40Si)) + (3))));
22960 if (GTDI (tmp_tmp, 549755813887)) {
22963 DI opval = 549755813887;
22964 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
22965 written |= (1 << 7);
22966 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22968 frvbf_media_overflow (current_cpu, 4);
22971 if (LTDI (tmp_tmp, INVDI (549755813887))) {
22974 DI opval = INVDI (549755813887);
22975 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
22976 written |= (1 << 7);
22977 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22979 frvbf_media_overflow (current_cpu, 4);
22983 DI opval = tmp_tmp;
22984 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
22985 written |= (1 << 7);
22986 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22995 abuf->written = written;
23000 /* masaccs: masaccs$pack $ACC40Si,$ACC40Sk */
23003 SEM_FN_NAME (frvbf,masaccs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23005 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
23006 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23007 int UNUSED written = 0;
23008 IADDR UNUSED pc = abuf->addr;
23009 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23011 if (ANDSI (FLD (f_ACC40Si), SUBSI (2, 1))) {
23012 frvbf_media_acc_not_aligned (current_cpu);
23014 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23015 frvbf_media_acc_not_aligned (current_cpu);
23020 tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))));
23021 if (GTDI (tmp_tmp, 549755813887)) {
23024 DI opval = 549755813887;
23025 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23026 written |= (1 << 4);
23027 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23029 frvbf_media_overflow (current_cpu, 8);
23032 if (LTDI (tmp_tmp, INVDI (549755813887))) {
23035 DI opval = INVDI (549755813887);
23036 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23037 written |= (1 << 4);
23038 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23040 frvbf_media_overflow (current_cpu, 8);
23044 DI opval = tmp_tmp;
23045 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23046 written |= (1 << 4);
23047 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23054 tmp_tmp = SUBDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))));
23055 if (GTDI (tmp_tmp, 549755813887)) {
23058 DI opval = 549755813887;
23059 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23060 written |= (1 << 5);
23061 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23063 frvbf_media_overflow (current_cpu, 4);
23066 if (LTDI (tmp_tmp, INVDI (549755813887))) {
23069 DI opval = INVDI (549755813887);
23070 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23071 written |= (1 << 5);
23072 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23074 frvbf_media_overflow (current_cpu, 4);
23078 DI opval = tmp_tmp;
23079 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23080 written |= (1 << 5);
23081 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23090 abuf->written = written;
23095 /* mdasaccs: mdasaccs$pack $ACC40Si,$ACC40Sk */
23098 SEM_FN_NAME (frvbf,mdasaccs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23100 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
23101 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23102 int UNUSED written = 0;
23103 IADDR UNUSED pc = abuf->addr;
23104 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23106 if (ANDSI (FLD (f_ACC40Si), SUBSI (4, 1))) {
23107 frvbf_media_acc_not_aligned (current_cpu);
23109 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
23110 frvbf_media_acc_not_aligned (current_cpu);
23115 tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))));
23116 if (GTDI (tmp_tmp, 549755813887)) {
23119 DI opval = 549755813887;
23120 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23121 written |= (1 << 6);
23122 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23124 frvbf_media_overflow (current_cpu, 8);
23127 if (LTDI (tmp_tmp, INVDI (549755813887))) {
23130 DI opval = INVDI (549755813887);
23131 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23132 written |= (1 << 6);
23133 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23135 frvbf_media_overflow (current_cpu, 8);
23139 DI opval = tmp_tmp;
23140 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23141 written |= (1 << 6);
23142 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23149 tmp_tmp = SUBDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))));
23150 if (GTDI (tmp_tmp, 549755813887)) {
23153 DI opval = 549755813887;
23154 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23155 written |= (1 << 7);
23156 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23158 frvbf_media_overflow (current_cpu, 4);
23161 if (LTDI (tmp_tmp, INVDI (549755813887))) {
23164 DI opval = INVDI (549755813887);
23165 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23166 written |= (1 << 7);
23167 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23169 frvbf_media_overflow (current_cpu, 4);
23173 DI opval = tmp_tmp;
23174 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23175 written |= (1 << 7);
23176 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23183 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Si)) + (2))), GET_H_ACC40S (((FLD (f_ACC40Si)) + (3))));
23184 if (GTDI (tmp_tmp, 549755813887)) {
23187 DI opval = 549755813887;
23188 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
23189 written |= (1 << 8);
23190 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23192 frvbf_media_overflow (current_cpu, 2);
23195 if (LTDI (tmp_tmp, INVDI (549755813887))) {
23198 DI opval = INVDI (549755813887);
23199 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
23200 written |= (1 << 8);
23201 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23203 frvbf_media_overflow (current_cpu, 2);
23207 DI opval = tmp_tmp;
23208 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
23209 written |= (1 << 8);
23210 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23217 tmp_tmp = SUBDI (GET_H_ACC40S (((FLD (f_ACC40Si)) + (2))), GET_H_ACC40S (((FLD (f_ACC40Si)) + (3))));
23218 if (GTDI (tmp_tmp, 549755813887)) {
23221 DI opval = 549755813887;
23222 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
23223 written |= (1 << 9);
23224 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23226 frvbf_media_overflow (current_cpu, 1);
23229 if (LTDI (tmp_tmp, INVDI (549755813887))) {
23232 DI opval = INVDI (549755813887);
23233 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
23234 written |= (1 << 9);
23235 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23237 frvbf_media_overflow (current_cpu, 1);
23241 DI opval = tmp_tmp;
23242 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
23243 written |= (1 << 9);
23244 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23253 abuf->written = written;
23258 /* mmulhs: mmulhs$pack $FRinti,$FRintj,$ACC40Sk */
23261 SEM_FN_NAME (frvbf,mmulhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23263 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23264 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23265 int UNUSED written = 0;
23266 IADDR UNUSED pc = abuf->addr;
23267 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23269 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23270 frvbf_media_acc_not_aligned (current_cpu);
23278 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23279 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23280 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23281 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23284 DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
23285 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23286 written |= (1 << 9);
23287 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23290 DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
23291 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23292 written |= (1 << 10);
23293 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23298 abuf->written = written;
23303 /* mmulhu: mmulhu$pack $FRinti,$FRintj,$ACC40Sk */
23306 SEM_FN_NAME (frvbf,mmulhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23308 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23309 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23310 int UNUSED written = 0;
23311 IADDR UNUSED pc = abuf->addr;
23312 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23314 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23315 frvbf_media_acc_not_aligned (current_cpu);
23323 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23324 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23325 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23326 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23329 DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
23330 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23331 written |= (1 << 9);
23332 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23335 DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
23336 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23337 written |= (1 << 10);
23338 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23343 abuf->written = written;
23348 /* mmulxhs: mmulxhs$pack $FRinti,$FRintj,$ACC40Sk */
23351 SEM_FN_NAME (frvbf,mmulxhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23353 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23354 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23355 int UNUSED written = 0;
23356 IADDR UNUSED pc = abuf->addr;
23357 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23359 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23360 frvbf_media_acc_not_aligned (current_cpu);
23368 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23369 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23370 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23371 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23374 DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
23375 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23376 written |= (1 << 9);
23377 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23380 DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
23381 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23382 written |= (1 << 10);
23383 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23388 abuf->written = written;
23393 /* mmulxhu: mmulxhu$pack $FRinti,$FRintj,$ACC40Sk */
23396 SEM_FN_NAME (frvbf,mmulxhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23398 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23399 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23400 int UNUSED written = 0;
23401 IADDR UNUSED pc = abuf->addr;
23402 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23404 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23405 frvbf_media_acc_not_aligned (current_cpu);
23413 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23414 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23415 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23416 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23419 DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
23420 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23421 written |= (1 << 9);
23422 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23425 DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
23426 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23427 written |= (1 << 10);
23428 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23433 abuf->written = written;
23438 /* cmmulhs: cmmulhs$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
23441 SEM_FN_NAME (frvbf,cmmulhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23443 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23444 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23445 int UNUSED written = 0;
23446 IADDR UNUSED pc = abuf->addr;
23447 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23449 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23450 frvbf_media_acc_not_aligned (current_cpu);
23452 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
23459 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23460 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23461 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23462 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23465 DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
23466 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23467 written |= (1 << 11);
23468 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23471 DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
23472 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23473 written |= (1 << 12);
23474 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23480 abuf->written = written;
23485 /* cmmulhu: cmmulhu$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
23488 SEM_FN_NAME (frvbf,cmmulhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23490 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23491 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23492 int UNUSED written = 0;
23493 IADDR UNUSED pc = abuf->addr;
23494 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23496 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23497 frvbf_media_acc_not_aligned (current_cpu);
23499 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
23506 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23507 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23508 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23509 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23512 DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
23513 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23514 written |= (1 << 11);
23515 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23518 DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
23519 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23520 written |= (1 << 12);
23521 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23527 abuf->written = written;
23532 /* mqmulhs: mqmulhs$pack $FRintieven,$FRintjeven,$ACC40Sk */
23535 SEM_FN_NAME (frvbf,mqmulhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23537 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
23538 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23539 int UNUSED written = 0;
23540 IADDR UNUSED pc = abuf->addr;
23541 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23543 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
23544 frvbf_media_acc_not_aligned (current_cpu);
23546 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
23547 frvbf_media_register_not_aligned (current_cpu);
23555 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23556 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23557 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23558 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23561 DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
23562 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23563 written |= (1 << 13);
23564 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23567 DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
23568 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23569 written |= (1 << 14);
23570 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23573 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23574 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23575 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23576 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23579 DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
23580 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
23581 written |= (1 << 15);
23582 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23585 DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
23586 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
23587 written |= (1 << 16);
23588 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23594 abuf->written = written;
23599 /* mqmulhu: mqmulhu$pack $FRintieven,$FRintjeven,$ACC40Sk */
23602 SEM_FN_NAME (frvbf,mqmulhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23604 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
23605 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23606 int UNUSED written = 0;
23607 IADDR UNUSED pc = abuf->addr;
23608 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23610 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
23611 frvbf_media_acc_not_aligned (current_cpu);
23613 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
23614 frvbf_media_register_not_aligned (current_cpu);
23622 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23623 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23624 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23625 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23628 DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
23629 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23630 written |= (1 << 13);
23631 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23634 DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
23635 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23636 written |= (1 << 14);
23637 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23640 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23641 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23642 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23643 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23646 DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
23647 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
23648 written |= (1 << 15);
23649 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23652 DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
23653 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
23654 written |= (1 << 16);
23655 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23661 abuf->written = written;
23666 /* mqmulxhs: mqmulxhs$pack $FRintieven,$FRintjeven,$ACC40Sk */
23669 SEM_FN_NAME (frvbf,mqmulxhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23671 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
23672 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23673 int UNUSED written = 0;
23674 IADDR UNUSED pc = abuf->addr;
23675 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23677 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
23678 frvbf_media_acc_not_aligned (current_cpu);
23680 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
23681 frvbf_media_register_not_aligned (current_cpu);
23689 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23690 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23691 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23692 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23695 DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
23696 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23697 written |= (1 << 13);
23698 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23701 DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
23702 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23703 written |= (1 << 14);
23704 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23707 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23708 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23709 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23710 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23713 DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
23714 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
23715 written |= (1 << 15);
23716 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23719 DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
23720 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
23721 written |= (1 << 16);
23722 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23728 abuf->written = written;
23733 /* mqmulxhu: mqmulxhu$pack $FRintieven,$FRintjeven,$ACC40Sk */
23736 SEM_FN_NAME (frvbf,mqmulxhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23738 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
23739 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23740 int UNUSED written = 0;
23741 IADDR UNUSED pc = abuf->addr;
23742 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23744 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
23745 frvbf_media_acc_not_aligned (current_cpu);
23747 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
23748 frvbf_media_register_not_aligned (current_cpu);
23756 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23757 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23758 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23759 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23762 DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
23763 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23764 written |= (1 << 13);
23765 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23768 DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
23769 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23770 written |= (1 << 14);
23771 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23774 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23775 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23776 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23777 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23780 DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
23781 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
23782 written |= (1 << 15);
23783 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23786 DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
23787 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
23788 written |= (1 << 16);
23789 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23795 abuf->written = written;
23800 /* cmqmulhs: cmqmulhs$pack $FRintieven,$FRintjeven,$ACC40Sk,$CCi,$cond */
23803 SEM_FN_NAME (frvbf,cmqmulhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23805 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
23806 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23807 int UNUSED written = 0;
23808 IADDR UNUSED pc = abuf->addr;
23809 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23811 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
23812 frvbf_media_acc_not_aligned (current_cpu);
23814 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
23815 frvbf_media_register_not_aligned (current_cpu);
23817 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
23824 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23825 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23826 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23827 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23830 DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
23831 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23832 written |= (1 << 15);
23833 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23836 DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
23837 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23838 written |= (1 << 16);
23839 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23842 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23843 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23844 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23845 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23848 DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
23849 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
23850 written |= (1 << 17);
23851 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23854 DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
23855 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
23856 written |= (1 << 18);
23857 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23864 abuf->written = written;
23869 /* cmqmulhu: cmqmulhu$pack $FRintieven,$FRintjeven,$ACC40Sk,$CCi,$cond */
23872 SEM_FN_NAME (frvbf,cmqmulhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23874 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
23875 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23876 int UNUSED written = 0;
23877 IADDR UNUSED pc = abuf->addr;
23878 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23880 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
23881 frvbf_media_acc_not_aligned (current_cpu);
23883 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
23884 frvbf_media_register_not_aligned (current_cpu);
23886 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
23893 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23894 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23895 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23896 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23899 DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
23900 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23901 written |= (1 << 15);
23902 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23905 DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
23906 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23907 written |= (1 << 16);
23908 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23911 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23912 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23913 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23914 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23917 DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
23918 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
23919 written |= (1 << 17);
23920 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23923 DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
23924 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
23925 written |= (1 << 18);
23926 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23933 abuf->written = written;
23938 /* mmachs: mmachs$pack $FRinti,$FRintj,$ACC40Sk */
23941 SEM_FN_NAME (frvbf,mmachs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23943 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23944 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23945 int UNUSED written = 0;
23946 IADDR UNUSED pc = abuf->addr;
23947 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23949 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23950 frvbf_media_acc_not_aligned (current_cpu);
23958 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23959 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23960 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23961 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23965 tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
23966 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
23969 DI opval = MAKEDI (127, 0xffffffff);
23970 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23971 written |= (1 << 11);
23972 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23974 frvbf_media_overflow (current_cpu, 8);
23977 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
23980 DI opval = MAKEDI (0xffffff80, 0);
23981 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23982 written |= (1 << 11);
23983 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23985 frvbf_media_overflow (current_cpu, 8);
23989 DI opval = tmp_tmp;
23990 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23991 written |= (1 << 11);
23992 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23999 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (1))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
24000 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24003 DI opval = MAKEDI (127, 0xffffffff);
24004 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24005 written |= (1 << 12);
24006 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24008 frvbf_media_overflow (current_cpu, 4);
24011 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24014 DI opval = MAKEDI (0xffffff80, 0);
24015 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24016 written |= (1 << 12);
24017 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24019 frvbf_media_overflow (current_cpu, 4);
24023 DI opval = tmp_tmp;
24024 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24025 written |= (1 << 12);
24026 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24034 abuf->written = written;
24039 /* mmachu: mmachu$pack $FRinti,$FRintj,$ACC40Uk */
24042 SEM_FN_NAME (frvbf,mmachu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24044 #define FLD(f) abuf->fields.sfmt_cmmachu.f
24045 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24046 int UNUSED written = 0;
24047 IADDR UNUSED pc = abuf->addr;
24048 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24050 if (ANDSI (FLD (f_ACC40Uk), SUBSI (2, 1))) {
24051 frvbf_media_acc_not_aligned (current_cpu);
24059 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24060 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24061 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24062 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24066 tmp_tmp = ADDDI (GET_H_ACC40U (FLD (f_ACC40Uk)), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
24067 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24070 UDI opval = MAKEDI (255, 0xffffffff);
24071 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24072 written |= (1 << 11);
24073 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24075 frvbf_media_overflow (current_cpu, 8);
24078 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24081 UDI opval = MAKEDI (0, 0);
24082 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24083 written |= (1 << 11);
24084 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24086 frvbf_media_overflow (current_cpu, 8);
24090 UDI opval = tmp_tmp;
24091 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24092 written |= (1 << 11);
24093 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24100 tmp_tmp = ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (1))), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
24101 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24104 UDI opval = MAKEDI (255, 0xffffffff);
24105 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24106 written |= (1 << 12);
24107 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24109 frvbf_media_overflow (current_cpu, 4);
24112 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24115 UDI opval = MAKEDI (0, 0);
24116 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24117 written |= (1 << 12);
24118 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24120 frvbf_media_overflow (current_cpu, 4);
24124 UDI opval = tmp_tmp;
24125 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24126 written |= (1 << 12);
24127 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24135 abuf->written = written;
24140 /* mmrdhs: mmrdhs$pack $FRinti,$FRintj,$ACC40Sk */
24143 SEM_FN_NAME (frvbf,mmrdhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24145 #define FLD(f) abuf->fields.sfmt_cmmachs.f
24146 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24147 int UNUSED written = 0;
24148 IADDR UNUSED pc = abuf->addr;
24149 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24151 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
24152 frvbf_media_acc_not_aligned (current_cpu);
24160 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24161 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24162 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24163 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24167 tmp_tmp = SUBDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
24168 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24171 DI opval = MAKEDI (127, 0xffffffff);
24172 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24173 written |= (1 << 11);
24174 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24176 frvbf_media_overflow (current_cpu, 8);
24179 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24182 DI opval = MAKEDI (0xffffff80, 0);
24183 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24184 written |= (1 << 11);
24185 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24187 frvbf_media_overflow (current_cpu, 8);
24191 DI opval = tmp_tmp;
24192 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24193 written |= (1 << 11);
24194 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24201 tmp_tmp = SUBDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (1))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
24202 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24205 DI opval = MAKEDI (127, 0xffffffff);
24206 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24207 written |= (1 << 12);
24208 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24210 frvbf_media_overflow (current_cpu, 4);
24213 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24216 DI opval = MAKEDI (0xffffff80, 0);
24217 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24218 written |= (1 << 12);
24219 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24221 frvbf_media_overflow (current_cpu, 4);
24225 DI opval = tmp_tmp;
24226 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24227 written |= (1 << 12);
24228 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24236 abuf->written = written;
24241 /* mmrdhu: mmrdhu$pack $FRinti,$FRintj,$ACC40Uk */
24244 SEM_FN_NAME (frvbf,mmrdhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24246 #define FLD(f) abuf->fields.sfmt_cmmachu.f
24247 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24248 int UNUSED written = 0;
24249 IADDR UNUSED pc = abuf->addr;
24250 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24252 if (ANDSI (FLD (f_ACC40Uk), SUBSI (2, 1))) {
24253 frvbf_media_acc_not_aligned (current_cpu);
24261 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24262 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24263 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24264 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24268 tmp_tmp = SUBDI (GET_H_ACC40U (FLD (f_ACC40Uk)), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
24269 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24272 UDI opval = MAKEDI (255, 0xffffffff);
24273 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24274 written |= (1 << 11);
24275 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24277 frvbf_media_overflow (current_cpu, 8);
24280 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24283 UDI opval = MAKEDI (0, 0);
24284 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24285 written |= (1 << 11);
24286 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24288 frvbf_media_overflow (current_cpu, 8);
24292 UDI opval = tmp_tmp;
24293 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24294 written |= (1 << 11);
24295 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24302 tmp_tmp = SUBDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (1))), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
24303 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24306 UDI opval = MAKEDI (255, 0xffffffff);
24307 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24308 written |= (1 << 12);
24309 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24311 frvbf_media_overflow (current_cpu, 4);
24314 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24317 UDI opval = MAKEDI (0, 0);
24318 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24319 written |= (1 << 12);
24320 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24322 frvbf_media_overflow (current_cpu, 4);
24326 UDI opval = tmp_tmp;
24327 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24328 written |= (1 << 12);
24329 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24337 abuf->written = written;
24342 /* cmmachs: cmmachs$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
24345 SEM_FN_NAME (frvbf,cmmachs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24347 #define FLD(f) abuf->fields.sfmt_cmmachs.f
24348 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24349 int UNUSED written = 0;
24350 IADDR UNUSED pc = abuf->addr;
24351 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24353 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
24354 frvbf_media_acc_not_aligned (current_cpu);
24356 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
24363 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24364 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24365 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24366 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24370 tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
24371 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24374 DI opval = MAKEDI (127, 0xffffffff);
24375 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24376 written |= (1 << 13);
24377 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24379 frvbf_media_overflow (current_cpu, 8);
24382 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24385 DI opval = MAKEDI (0xffffff80, 0);
24386 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24387 written |= (1 << 13);
24388 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24390 frvbf_media_overflow (current_cpu, 8);
24394 DI opval = tmp_tmp;
24395 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24396 written |= (1 << 13);
24397 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24404 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (1))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
24405 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24408 DI opval = MAKEDI (127, 0xffffffff);
24409 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24410 written |= (1 << 14);
24411 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24413 frvbf_media_overflow (current_cpu, 4);
24416 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24419 DI opval = MAKEDI (0xffffff80, 0);
24420 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24421 written |= (1 << 14);
24422 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24424 frvbf_media_overflow (current_cpu, 4);
24428 DI opval = tmp_tmp;
24429 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24430 written |= (1 << 14);
24431 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24440 abuf->written = written;
24445 /* cmmachu: cmmachu$pack $FRinti,$FRintj,$ACC40Uk,$CCi,$cond */
24448 SEM_FN_NAME (frvbf,cmmachu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24450 #define FLD(f) abuf->fields.sfmt_cmmachu.f
24451 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24452 int UNUSED written = 0;
24453 IADDR UNUSED pc = abuf->addr;
24454 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24456 if (ANDSI (FLD (f_ACC40Uk), SUBSI (2, 1))) {
24457 frvbf_media_acc_not_aligned (current_cpu);
24459 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
24466 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24467 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24468 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24469 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24473 tmp_tmp = ADDDI (GET_H_ACC40U (FLD (f_ACC40Uk)), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
24474 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24477 UDI opval = MAKEDI (255, 0xffffffff);
24478 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24479 written |= (1 << 13);
24480 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24482 frvbf_media_overflow (current_cpu, 8);
24485 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24488 UDI opval = MAKEDI (0, 0);
24489 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24490 written |= (1 << 13);
24491 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24493 frvbf_media_overflow (current_cpu, 8);
24497 UDI opval = tmp_tmp;
24498 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24499 written |= (1 << 13);
24500 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24507 tmp_tmp = ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (1))), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
24508 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24511 UDI opval = MAKEDI (255, 0xffffffff);
24512 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24513 written |= (1 << 14);
24514 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24516 frvbf_media_overflow (current_cpu, 4);
24519 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24522 UDI opval = MAKEDI (0, 0);
24523 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24524 written |= (1 << 14);
24525 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24527 frvbf_media_overflow (current_cpu, 4);
24531 UDI opval = tmp_tmp;
24532 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24533 written |= (1 << 14);
24534 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24543 abuf->written = written;
24548 /* mqmachs: mqmachs$pack $FRintieven,$FRintjeven,$ACC40Sk */
24551 SEM_FN_NAME (frvbf,mqmachs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24553 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
24554 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24555 int UNUSED written = 0;
24556 IADDR UNUSED pc = abuf->addr;
24557 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24559 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
24560 frvbf_media_acc_not_aligned (current_cpu);
24562 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
24563 frvbf_media_register_not_aligned (current_cpu);
24571 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24572 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24573 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24574 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24578 tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
24579 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24582 DI opval = MAKEDI (127, 0xffffffff);
24583 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24584 written |= (1 << 17);
24585 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24587 frvbf_media_overflow (current_cpu, 8);
24590 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24593 DI opval = MAKEDI (0xffffff80, 0);
24594 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24595 written |= (1 << 17);
24596 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24598 frvbf_media_overflow (current_cpu, 8);
24602 DI opval = tmp_tmp;
24603 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24604 written |= (1 << 17);
24605 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24612 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (1))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
24613 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24616 DI opval = MAKEDI (127, 0xffffffff);
24617 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24618 written |= (1 << 18);
24619 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24621 frvbf_media_overflow (current_cpu, 4);
24624 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24627 DI opval = MAKEDI (0xffffff80, 0);
24628 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24629 written |= (1 << 18);
24630 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24632 frvbf_media_overflow (current_cpu, 4);
24636 DI opval = tmp_tmp;
24637 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24638 written |= (1 << 18);
24639 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24645 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24646 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24647 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24648 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24652 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (2))), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
24653 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24656 DI opval = MAKEDI (127, 0xffffffff);
24657 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
24658 written |= (1 << 19);
24659 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24661 frvbf_media_overflow (current_cpu, 2);
24664 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24667 DI opval = MAKEDI (0xffffff80, 0);
24668 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
24669 written |= (1 << 19);
24670 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24672 frvbf_media_overflow (current_cpu, 2);
24676 DI opval = tmp_tmp;
24677 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
24678 written |= (1 << 19);
24679 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24686 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (3))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
24687 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24690 DI opval = MAKEDI (127, 0xffffffff);
24691 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
24692 written |= (1 << 20);
24693 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24695 frvbf_media_overflow (current_cpu, 1);
24698 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24701 DI opval = MAKEDI (0xffffff80, 0);
24702 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
24703 written |= (1 << 20);
24704 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24706 frvbf_media_overflow (current_cpu, 1);
24710 DI opval = tmp_tmp;
24711 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
24712 written |= (1 << 20);
24713 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24722 abuf->written = written;
24727 /* mqmachu: mqmachu$pack $FRintieven,$FRintjeven,$ACC40Uk */
24730 SEM_FN_NAME (frvbf,mqmachu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24732 #define FLD(f) abuf->fields.sfmt_cmqmachu.f
24733 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24734 int UNUSED written = 0;
24735 IADDR UNUSED pc = abuf->addr;
24736 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24738 if (ANDSI (FLD (f_ACC40Uk), SUBSI (4, 1))) {
24739 frvbf_media_acc_not_aligned (current_cpu);
24741 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
24742 frvbf_media_register_not_aligned (current_cpu);
24750 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24751 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24752 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24753 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24757 tmp_tmp = ADDDI (GET_H_ACC40U (FLD (f_ACC40Uk)), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
24758 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24761 UDI opval = MAKEDI (255, 0xffffffff);
24762 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24763 written |= (1 << 17);
24764 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24766 frvbf_media_overflow (current_cpu, 8);
24769 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24772 UDI opval = MAKEDI (0, 0);
24773 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24774 written |= (1 << 17);
24775 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24777 frvbf_media_overflow (current_cpu, 8);
24781 UDI opval = tmp_tmp;
24782 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24783 written |= (1 << 17);
24784 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24791 tmp_tmp = ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (1))), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
24792 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24795 UDI opval = MAKEDI (255, 0xffffffff);
24796 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24797 written |= (1 << 18);
24798 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24800 frvbf_media_overflow (current_cpu, 4);
24803 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24806 UDI opval = MAKEDI (0, 0);
24807 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24808 written |= (1 << 18);
24809 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24811 frvbf_media_overflow (current_cpu, 4);
24815 UDI opval = tmp_tmp;
24816 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24817 written |= (1 << 18);
24818 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24824 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24825 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24826 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24827 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24831 tmp_tmp = ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (2))), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
24832 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24835 UDI opval = MAKEDI (255, 0xffffffff);
24836 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (2)), opval);
24837 written |= (1 << 19);
24838 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24840 frvbf_media_overflow (current_cpu, 2);
24843 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24846 UDI opval = MAKEDI (0, 0);
24847 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (2)), opval);
24848 written |= (1 << 19);
24849 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24851 frvbf_media_overflow (current_cpu, 2);
24855 UDI opval = tmp_tmp;
24856 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (2)), opval);
24857 written |= (1 << 19);
24858 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24865 tmp_tmp = ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (3))), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
24866 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24869 UDI opval = MAKEDI (255, 0xffffffff);
24870 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (3)), opval);
24871 written |= (1 << 20);
24872 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24874 frvbf_media_overflow (current_cpu, 1);
24877 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24880 UDI opval = MAKEDI (0, 0);
24881 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (3)), opval);
24882 written |= (1 << 20);
24883 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24885 frvbf_media_overflow (current_cpu, 1);
24889 UDI opval = tmp_tmp;
24890 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (3)), opval);
24891 written |= (1 << 20);
24892 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24901 abuf->written = written;
24906 /* cmqmachs: cmqmachs$pack $FRintieven,$FRintjeven,$ACC40Sk,$CCi,$cond */
24909 SEM_FN_NAME (frvbf,cmqmachs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24911 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
24912 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24913 int UNUSED written = 0;
24914 IADDR UNUSED pc = abuf->addr;
24915 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24917 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
24918 frvbf_media_acc_not_aligned (current_cpu);
24920 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
24921 frvbf_media_register_not_aligned (current_cpu);
24923 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
24930 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24931 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24932 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24933 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24937 tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
24938 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24941 DI opval = MAKEDI (127, 0xffffffff);
24942 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24943 written |= (1 << 19);
24944 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24946 frvbf_media_overflow (current_cpu, 8);
24949 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24952 DI opval = MAKEDI (0xffffff80, 0);
24953 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24954 written |= (1 << 19);
24955 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24957 frvbf_media_overflow (current_cpu, 8);
24961 DI opval = tmp_tmp;
24962 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24963 written |= (1 << 19);
24964 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24971 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (1))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
24972 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24975 DI opval = MAKEDI (127, 0xffffffff);
24976 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24977 written |= (1 << 20);
24978 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24980 frvbf_media_overflow (current_cpu, 4);
24983 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24986 DI opval = MAKEDI (0xffffff80, 0);
24987 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24988 written |= (1 << 20);
24989 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24991 frvbf_media_overflow (current_cpu, 4);
24995 DI opval = tmp_tmp;
24996 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24997 written |= (1 << 20);
24998 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25004 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25005 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25006 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25007 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25011 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (2))), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
25012 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25015 DI opval = MAKEDI (127, 0xffffffff);
25016 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25017 written |= (1 << 21);
25018 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25020 frvbf_media_overflow (current_cpu, 2);
25023 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25026 DI opval = MAKEDI (0xffffff80, 0);
25027 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25028 written |= (1 << 21);
25029 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25031 frvbf_media_overflow (current_cpu, 2);
25035 DI opval = tmp_tmp;
25036 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25037 written |= (1 << 21);
25038 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25045 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (3))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
25046 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25049 DI opval = MAKEDI (127, 0xffffffff);
25050 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25051 written |= (1 << 22);
25052 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25054 frvbf_media_overflow (current_cpu, 1);
25057 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25060 DI opval = MAKEDI (0xffffff80, 0);
25061 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25062 written |= (1 << 22);
25063 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25065 frvbf_media_overflow (current_cpu, 1);
25069 DI opval = tmp_tmp;
25070 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25071 written |= (1 << 22);
25072 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25082 abuf->written = written;
25087 /* cmqmachu: cmqmachu$pack $FRintieven,$FRintjeven,$ACC40Uk,$CCi,$cond */
25090 SEM_FN_NAME (frvbf,cmqmachu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
25092 #define FLD(f) abuf->fields.sfmt_cmqmachu.f
25093 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
25094 int UNUSED written = 0;
25095 IADDR UNUSED pc = abuf->addr;
25096 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
25098 if (ANDSI (FLD (f_ACC40Uk), SUBSI (4, 1))) {
25099 frvbf_media_acc_not_aligned (current_cpu);
25101 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
25102 frvbf_media_register_not_aligned (current_cpu);
25104 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
25111 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25112 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25113 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25114 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25118 tmp_tmp = ADDDI (GET_H_ACC40U (FLD (f_ACC40Uk)), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
25119 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
25122 UDI opval = MAKEDI (255, 0xffffffff);
25123 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
25124 written |= (1 << 19);
25125 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25127 frvbf_media_overflow (current_cpu, 8);
25130 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
25133 UDI opval = MAKEDI (0, 0);
25134 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
25135 written |= (1 << 19);
25136 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25138 frvbf_media_overflow (current_cpu, 8);
25142 UDI opval = tmp_tmp;
25143 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
25144 written |= (1 << 19);
25145 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25152 tmp_tmp = ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (1))), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
25153 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
25156 UDI opval = MAKEDI (255, 0xffffffff);
25157 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
25158 written |= (1 << 20);
25159 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25161 frvbf_media_overflow (current_cpu, 4);
25164 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
25167 UDI opval = MAKEDI (0, 0);
25168 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
25169 written |= (1 << 20);
25170 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25172 frvbf_media_overflow (current_cpu, 4);
25176 UDI opval = tmp_tmp;
25177 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
25178 written |= (1 << 20);
25179 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25185 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25186 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25187 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25188 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25192 tmp_tmp = ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (2))), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
25193 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
25196 UDI opval = MAKEDI (255, 0xffffffff);
25197 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (2)), opval);
25198 written |= (1 << 21);
25199 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25201 frvbf_media_overflow (current_cpu, 2);
25204 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
25207 UDI opval = MAKEDI (0, 0);
25208 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (2)), opval);
25209 written |= (1 << 21);
25210 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25212 frvbf_media_overflow (current_cpu, 2);
25216 UDI opval = tmp_tmp;
25217 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (2)), opval);
25218 written |= (1 << 21);
25219 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25226 tmp_tmp = ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (3))), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
25227 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
25230 UDI opval = MAKEDI (255, 0xffffffff);
25231 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (3)), opval);
25232 written |= (1 << 22);
25233 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25235 frvbf_media_overflow (current_cpu, 1);
25238 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
25241 UDI opval = MAKEDI (0, 0);
25242 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (3)), opval);
25243 written |= (1 << 22);
25244 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25246 frvbf_media_overflow (current_cpu, 1);
25250 UDI opval = tmp_tmp;
25251 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (3)), opval);
25252 written |= (1 << 22);
25253 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25263 abuf->written = written;
25268 /* mqxmachs: mqxmachs$pack $FRintieven,$FRintjeven,$ACC40Sk */
25271 SEM_FN_NAME (frvbf,mqxmachs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
25273 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
25274 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
25275 int UNUSED written = 0;
25276 IADDR UNUSED pc = abuf->addr;
25277 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
25279 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
25280 frvbf_media_acc_not_aligned (current_cpu);
25282 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
25283 frvbf_media_register_not_aligned (current_cpu);
25291 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25292 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25293 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25294 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25298 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (2))), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
25299 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25302 DI opval = MAKEDI (127, 0xffffffff);
25303 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25304 written |= (1 << 19);
25305 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25307 frvbf_media_overflow (current_cpu, 2);
25310 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25313 DI opval = MAKEDI (0xffffff80, 0);
25314 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25315 written |= (1 << 19);
25316 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25318 frvbf_media_overflow (current_cpu, 2);
25322 DI opval = tmp_tmp;
25323 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25324 written |= (1 << 19);
25325 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25332 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (3))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
25333 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25336 DI opval = MAKEDI (127, 0xffffffff);
25337 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25338 written |= (1 << 20);
25339 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25341 frvbf_media_overflow (current_cpu, 1);
25344 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25347 DI opval = MAKEDI (0xffffff80, 0);
25348 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25349 written |= (1 << 20);
25350 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25352 frvbf_media_overflow (current_cpu, 1);
25356 DI opval = tmp_tmp;
25357 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25358 written |= (1 << 20);
25359 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25365 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25366 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25367 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25368 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25372 tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
25373 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25376 DI opval = MAKEDI (127, 0xffffffff);
25377 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25378 written |= (1 << 17);
25379 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25381 frvbf_media_overflow (current_cpu, 8);
25384 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25387 DI opval = MAKEDI (0xffffff80, 0);
25388 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25389 written |= (1 << 17);
25390 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25392 frvbf_media_overflow (current_cpu, 8);
25396 DI opval = tmp_tmp;
25397 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25398 written |= (1 << 17);
25399 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25406 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (1))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
25407 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25410 DI opval = MAKEDI (127, 0xffffffff);
25411 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25412 written |= (1 << 18);
25413 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25415 frvbf_media_overflow (current_cpu, 4);
25418 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25421 DI opval = MAKEDI (0xffffff80, 0);
25422 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25423 written |= (1 << 18);
25424 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25426 frvbf_media_overflow (current_cpu, 4);
25430 DI opval = tmp_tmp;
25431 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25432 written |= (1 << 18);
25433 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25442 abuf->written = written;
25447 /* mqxmacxhs: mqxmacxhs$pack $FRintieven,$FRintjeven,$ACC40Sk */
25450 SEM_FN_NAME (frvbf,mqxmacxhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
25452 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
25453 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
25454 int UNUSED written = 0;
25455 IADDR UNUSED pc = abuf->addr;
25456 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
25458 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
25459 frvbf_media_acc_not_aligned (current_cpu);
25461 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
25462 frvbf_media_register_not_aligned (current_cpu);
25470 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25471 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25472 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25473 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25477 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (2))), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo)));
25478 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25481 DI opval = MAKEDI (127, 0xffffffff);
25482 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25483 written |= (1 << 19);
25484 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25486 frvbf_media_overflow (current_cpu, 2);
25489 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25492 DI opval = MAKEDI (0xffffff80, 0);
25493 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25494 written |= (1 << 19);
25495 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25497 frvbf_media_overflow (current_cpu, 2);
25501 DI opval = tmp_tmp;
25502 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25503 written |= (1 << 19);
25504 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25511 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (3))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi)));
25512 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25515 DI opval = MAKEDI (127, 0xffffffff);
25516 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25517 written |= (1 << 20);
25518 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25520 frvbf_media_overflow (current_cpu, 1);
25523 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25526 DI opval = MAKEDI (0xffffff80, 0);
25527 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25528 written |= (1 << 20);
25529 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25531 frvbf_media_overflow (current_cpu, 1);
25535 DI opval = tmp_tmp;
25536 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25537 written |= (1 << 20);
25538 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25544 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25545 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25546 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25547 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25551 tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo)));
25552 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25555 DI opval = MAKEDI (127, 0xffffffff);
25556 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25557 written |= (1 << 17);
25558 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25560 frvbf_media_overflow (current_cpu, 8);
25563 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25566 DI opval = MAKEDI (0xffffff80, 0);
25567 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25568 written |= (1 << 17);
25569 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25571 frvbf_media_overflow (current_cpu, 8);
25575 DI opval = tmp_tmp;
25576 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25577 written |= (1 << 17);
25578 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25585 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (1))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi)));
25586 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25589 DI opval = MAKEDI (127, 0xffffffff);
25590 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25591 written |= (1 << 18);
25592 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25594 frvbf_media_overflow (current_cpu, 4);
25597 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25600 DI opval = MAKEDI (0xffffff80, 0);
25601 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25602 written |= (1 << 18);
25603 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25605 frvbf_media_overflow (current_cpu, 4);
25609 DI opval = tmp_tmp;
25610 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25611 written |= (1 << 18);
25612 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25621 abuf->written = written;
25626 /* mqmacxhs: mqmacxhs$pack $FRintieven,$FRintjeven,$ACC40Sk */
25629 SEM_FN_NAME (frvbf,mqmacxhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
25631 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
25632 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
25633 int UNUSED written = 0;
25634 IADDR UNUSED pc = abuf->addr;
25635 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
25637 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
25638 frvbf_media_acc_not_aligned (current_cpu);
25640 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
25641 frvbf_media_register_not_aligned (current_cpu);
25649 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25650 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25651 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25652 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25656 tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo)));
25657 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25660 DI opval = MAKEDI (127, 0xffffffff);
25661 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25662 written |= (1 << 17);
25663 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25665 frvbf_media_overflow (current_cpu, 8);
25668 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25671 DI opval = MAKEDI (0xffffff80, 0);
25672 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25673 written |= (1 << 17);
25674 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25676 frvbf_media_overflow (current_cpu, 8);
25680 DI opval = tmp_tmp;
25681 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25682 written |= (1 << 17);
25683 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25690 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (1))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi)));
25691 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25694 DI opval = MAKEDI (127, 0xffffffff);
25695 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25696 written |= (1 << 18);
25697 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25699 frvbf_media_overflow (current_cpu, 4);
25702 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25705 DI opval = MAKEDI (0xffffff80, 0);
25706 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25707 written |= (1 << 18);
25708 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25710 frvbf_media_overflow (current_cpu, 4);
25714 DI opval = tmp_tmp;
25715 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25716 written |= (1 << 18);
25717 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25723 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25724 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25725 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25726 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25730 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (2))), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo)));
25731 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25734 DI opval = MAKEDI (127, 0xffffffff);
25735 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25736 written |= (1 << 19);
25737 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25739 frvbf_media_overflow (current_cpu, 2);
25742 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25745 DI opval = MAKEDI (0xffffff80, 0);
25746 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25747 written |= (1 << 19);
25748 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25750 frvbf_media_overflow (current_cpu, 2);
25754 DI opval = tmp_tmp;
25755 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25756 written |= (1 << 19);
25757 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25764 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (3))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi)));
25765 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25768 DI opval = MAKEDI (127, 0xffffffff);
25769 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25770 written |= (1 << 20);
25771 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25773 frvbf_media_overflow (current_cpu, 1);
25776 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25779 DI opval = MAKEDI (0xffffff80, 0);
25780 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25781 written |= (1 << 20);
25782 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25784 frvbf_media_overflow (current_cpu, 1);
25788 DI opval = tmp_tmp;
25789 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25790 written |= (1 << 20);
25791 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25800 abuf->written = written;
25805 /* mcpxrs: mcpxrs$pack $FRinti,$FRintj,$ACC40Sk */
25808 SEM_FN_NAME (frvbf,mcpxrs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
25810 #define FLD(f) abuf->fields.sfmt_cmmachs.f
25811 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
25812 int UNUSED written = 0;
25813 IADDR UNUSED pc = abuf->addr;
25814 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
25822 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25823 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25824 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25825 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25830 tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
25831 tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
25832 tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
25833 if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
25836 DI opval = MAKEDI (127, 0xffffffff);
25837 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25838 written |= (1 << 8);
25839 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25841 frvbf_media_overflow (current_cpu, 8);
25844 if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
25847 DI opval = MAKEDI (0xffffff80, 0);
25848 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25849 written |= (1 << 8);
25850 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25852 frvbf_media_overflow (current_cpu, 8);
25856 DI opval = tmp_tmp1;
25857 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25858 written |= (1 << 8);
25859 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25866 abuf->written = written;
25871 /* mcpxru: mcpxru$pack $FRinti,$FRintj,$ACC40Sk */
25874 SEM_FN_NAME (frvbf,mcpxru) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
25876 #define FLD(f) abuf->fields.sfmt_cmmachs.f
25877 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
25878 int UNUSED written = 0;
25879 IADDR UNUSED pc = abuf->addr;
25880 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
25888 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25889 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25890 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25891 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25896 tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
25897 tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
25898 tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
25899 if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
25902 DI opval = MAKEDI (255, 0xffffffff);
25903 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25904 written |= (1 << 8);
25905 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25907 frvbf_media_overflow (current_cpu, 8);
25910 if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
25913 DI opval = MAKEDI (0, 0);
25914 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25915 written |= (1 << 8);
25916 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25918 frvbf_media_overflow (current_cpu, 8);
25922 DI opval = tmp_tmp1;
25923 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25924 written |= (1 << 8);
25925 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25932 abuf->written = written;
25937 /* mcpxis: mcpxis$pack $FRinti,$FRintj,$ACC40Sk */
25940 SEM_FN_NAME (frvbf,mcpxis) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
25942 #define FLD(f) abuf->fields.sfmt_cmmachs.f
25943 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
25944 int UNUSED written = 0;
25945 IADDR UNUSED pc = abuf->addr;
25946 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
25954 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25955 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25956 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25957 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25962 tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
25963 tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
25964 tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
25965 if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
25968 DI opval = MAKEDI (127, 0xffffffff);
25969 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25970 written |= (1 << 8);
25971 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25973 frvbf_media_overflow (current_cpu, 8);
25976 if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
25979 DI opval = MAKEDI (0xffffff80, 0);
25980 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25981 written |= (1 << 8);
25982 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25984 frvbf_media_overflow (current_cpu, 8);
25988 DI opval = tmp_tmp1;
25989 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25990 written |= (1 << 8);
25991 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25998 abuf->written = written;
26003 /* mcpxiu: mcpxiu$pack $FRinti,$FRintj,$ACC40Sk */
26006 SEM_FN_NAME (frvbf,mcpxiu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26008 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26009 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26010 int UNUSED written = 0;
26011 IADDR UNUSED pc = abuf->addr;
26012 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26020 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26021 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26022 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26023 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26028 tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
26029 tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
26030 tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
26031 if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
26034 DI opval = MAKEDI (255, 0xffffffff);
26035 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26036 written |= (1 << 8);
26037 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26039 frvbf_media_overflow (current_cpu, 8);
26042 if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
26045 DI opval = MAKEDI (0, 0);
26046 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26047 written |= (1 << 8);
26048 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26050 frvbf_media_overflow (current_cpu, 8);
26054 DI opval = tmp_tmp1;
26055 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26056 written |= (1 << 8);
26057 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26064 abuf->written = written;
26069 /* cmcpxrs: cmcpxrs$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
26072 SEM_FN_NAME (frvbf,cmcpxrs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26074 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26075 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26076 int UNUSED written = 0;
26077 IADDR UNUSED pc = abuf->addr;
26078 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26080 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
26087 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26088 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26089 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26090 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26095 tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
26096 tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
26097 tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26098 if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26101 DI opval = MAKEDI (127, 0xffffffff);
26102 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26103 written |= (1 << 10);
26104 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26106 frvbf_media_overflow (current_cpu, 8);
26109 if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26112 DI opval = MAKEDI (0xffffff80, 0);
26113 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26114 written |= (1 << 10);
26115 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26117 frvbf_media_overflow (current_cpu, 8);
26121 DI opval = tmp_tmp1;
26122 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26123 written |= (1 << 10);
26124 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26132 abuf->written = written;
26137 /* cmcpxru: cmcpxru$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
26140 SEM_FN_NAME (frvbf,cmcpxru) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26142 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26143 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26144 int UNUSED written = 0;
26145 IADDR UNUSED pc = abuf->addr;
26146 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26148 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
26155 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26156 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26157 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26158 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26163 tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
26164 tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
26165 tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26166 if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
26169 DI opval = MAKEDI (255, 0xffffffff);
26170 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26171 written |= (1 << 10);
26172 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26174 frvbf_media_overflow (current_cpu, 8);
26177 if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
26180 DI opval = MAKEDI (0, 0);
26181 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26182 written |= (1 << 10);
26183 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26185 frvbf_media_overflow (current_cpu, 8);
26189 DI opval = tmp_tmp1;
26190 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26191 written |= (1 << 10);
26192 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26200 abuf->written = written;
26205 /* cmcpxis: cmcpxis$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
26208 SEM_FN_NAME (frvbf,cmcpxis) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26210 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26211 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26212 int UNUSED written = 0;
26213 IADDR UNUSED pc = abuf->addr;
26214 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26216 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
26223 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26224 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26225 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26226 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26231 tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
26232 tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
26233 tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
26234 if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26237 DI opval = MAKEDI (127, 0xffffffff);
26238 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26239 written |= (1 << 10);
26240 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26242 frvbf_media_overflow (current_cpu, 8);
26245 if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26248 DI opval = MAKEDI (0xffffff80, 0);
26249 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26250 written |= (1 << 10);
26251 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26253 frvbf_media_overflow (current_cpu, 8);
26257 DI opval = tmp_tmp1;
26258 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26259 written |= (1 << 10);
26260 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26268 abuf->written = written;
26273 /* cmcpxiu: cmcpxiu$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
26276 SEM_FN_NAME (frvbf,cmcpxiu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26278 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26279 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26280 int UNUSED written = 0;
26281 IADDR UNUSED pc = abuf->addr;
26282 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26284 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
26291 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26292 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26293 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26294 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26299 tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
26300 tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
26301 tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
26302 if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
26305 DI opval = MAKEDI (255, 0xffffffff);
26306 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26307 written |= (1 << 10);
26308 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26310 frvbf_media_overflow (current_cpu, 8);
26313 if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
26316 DI opval = MAKEDI (0, 0);
26317 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26318 written |= (1 << 10);
26319 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26321 frvbf_media_overflow (current_cpu, 8);
26325 DI opval = tmp_tmp1;
26326 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26327 written |= (1 << 10);
26328 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26336 abuf->written = written;
26341 /* mqcpxrs: mqcpxrs$pack $FRintieven,$FRintjeven,$ACC40Sk */
26344 SEM_FN_NAME (frvbf,mqcpxrs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26346 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
26347 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26348 int UNUSED written = 0;
26349 IADDR UNUSED pc = abuf->addr;
26350 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26352 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
26353 frvbf_media_acc_not_aligned (current_cpu);
26355 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
26356 frvbf_media_register_not_aligned (current_cpu);
26364 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26365 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26366 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26367 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26372 tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
26373 tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
26374 tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26375 if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26378 DI opval = MAKEDI (127, 0xffffffff);
26379 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26380 written |= (1 << 13);
26381 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26383 frvbf_media_overflow (current_cpu, 8);
26386 if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26389 DI opval = MAKEDI (0xffffff80, 0);
26390 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26391 written |= (1 << 13);
26392 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26394 frvbf_media_overflow (current_cpu, 8);
26398 DI opval = tmp_tmp1;
26399 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26400 written |= (1 << 13);
26401 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26407 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26408 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26409 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26410 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26415 tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
26416 tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
26417 tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26418 if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26421 DI opval = MAKEDI (127, 0xffffffff);
26422 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26423 written |= (1 << 14);
26424 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26426 frvbf_media_overflow (current_cpu, 4);
26429 if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26432 DI opval = MAKEDI (0xffffff80, 0);
26433 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26434 written |= (1 << 14);
26435 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26437 frvbf_media_overflow (current_cpu, 4);
26441 DI opval = tmp_tmp1;
26442 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26443 written |= (1 << 14);
26444 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26453 abuf->written = written;
26458 /* mqcpxru: mqcpxru$pack $FRintieven,$FRintjeven,$ACC40Sk */
26461 SEM_FN_NAME (frvbf,mqcpxru) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26463 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
26464 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26465 int UNUSED written = 0;
26466 IADDR UNUSED pc = abuf->addr;
26467 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26469 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
26470 frvbf_media_acc_not_aligned (current_cpu);
26472 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
26473 frvbf_media_register_not_aligned (current_cpu);
26481 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26482 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26483 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26484 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26489 tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
26490 tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
26491 tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26492 if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
26495 DI opval = MAKEDI (255, 0xffffffff);
26496 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26497 written |= (1 << 13);
26498 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26500 frvbf_media_overflow (current_cpu, 8);
26503 if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
26506 DI opval = MAKEDI (0, 0);
26507 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26508 written |= (1 << 13);
26509 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26511 frvbf_media_overflow (current_cpu, 8);
26515 DI opval = tmp_tmp1;
26516 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26517 written |= (1 << 13);
26518 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26524 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26525 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26526 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26527 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26532 tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
26533 tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
26534 tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26535 if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
26538 DI opval = MAKEDI (255, 0xffffffff);
26539 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26540 written |= (1 << 14);
26541 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26543 frvbf_media_overflow (current_cpu, 4);
26546 if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
26549 DI opval = MAKEDI (0, 0);
26550 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26551 written |= (1 << 14);
26552 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26554 frvbf_media_overflow (current_cpu, 4);
26558 DI opval = tmp_tmp1;
26559 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26560 written |= (1 << 14);
26561 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26570 abuf->written = written;
26575 /* mqcpxis: mqcpxis$pack $FRintieven,$FRintjeven,$ACC40Sk */
26578 SEM_FN_NAME (frvbf,mqcpxis) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26580 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
26581 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26582 int UNUSED written = 0;
26583 IADDR UNUSED pc = abuf->addr;
26584 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26586 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
26587 frvbf_media_acc_not_aligned (current_cpu);
26589 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
26590 frvbf_media_register_not_aligned (current_cpu);
26598 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26599 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26600 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26601 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26606 tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
26607 tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
26608 tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
26609 if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26612 DI opval = MAKEDI (127, 0xffffffff);
26613 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26614 written |= (1 << 13);
26615 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26617 frvbf_media_overflow (current_cpu, 8);
26620 if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26623 DI opval = MAKEDI (0xffffff80, 0);
26624 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26625 written |= (1 << 13);
26626 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26628 frvbf_media_overflow (current_cpu, 8);
26632 DI opval = tmp_tmp1;
26633 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26634 written |= (1 << 13);
26635 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26641 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26642 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26643 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26644 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26649 tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
26650 tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
26651 tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
26652 if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26655 DI opval = MAKEDI (127, 0xffffffff);
26656 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26657 written |= (1 << 14);
26658 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26660 frvbf_media_overflow (current_cpu, 4);
26663 if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26666 DI opval = MAKEDI (0xffffff80, 0);
26667 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26668 written |= (1 << 14);
26669 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26671 frvbf_media_overflow (current_cpu, 4);
26675 DI opval = tmp_tmp1;
26676 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26677 written |= (1 << 14);
26678 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26687 abuf->written = written;
26692 /* mqcpxiu: mqcpxiu$pack $FRintieven,$FRintjeven,$ACC40Sk */
26695 SEM_FN_NAME (frvbf,mqcpxiu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26697 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
26698 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26699 int UNUSED written = 0;
26700 IADDR UNUSED pc = abuf->addr;
26701 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26703 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
26704 frvbf_media_acc_not_aligned (current_cpu);
26706 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
26707 frvbf_media_register_not_aligned (current_cpu);
26715 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26716 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26717 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26718 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26723 tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
26724 tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
26725 tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
26726 if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
26729 DI opval = MAKEDI (255, 0xffffffff);
26730 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26731 written |= (1 << 13);
26732 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26734 frvbf_media_overflow (current_cpu, 8);
26737 if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
26740 DI opval = MAKEDI (0, 0);
26741 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26742 written |= (1 << 13);
26743 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26745 frvbf_media_overflow (current_cpu, 8);
26749 DI opval = tmp_tmp1;
26750 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26751 written |= (1 << 13);
26752 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26758 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26759 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26760 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26761 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26766 tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
26767 tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
26768 tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
26769 if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
26772 DI opval = MAKEDI (255, 0xffffffff);
26773 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26774 written |= (1 << 14);
26775 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26777 frvbf_media_overflow (current_cpu, 4);
26780 if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
26783 DI opval = MAKEDI (0, 0);
26784 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26785 written |= (1 << 14);
26786 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26788 frvbf_media_overflow (current_cpu, 4);
26792 DI opval = tmp_tmp1;
26793 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26794 written |= (1 << 14);
26795 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26804 abuf->written = written;
26809 /* mexpdhw: mexpdhw$pack $FRinti,$u6,$FRintk */
26812 SEM_FN_NAME (frvbf,mexpdhw) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26814 #define FLD(f) abuf->fields.sfmt_cmexpdhw.f
26815 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26816 int UNUSED written = 0;
26817 IADDR UNUSED pc = abuf->addr;
26818 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26822 if (ANDSI (FLD (f_u6), 1)) {
26823 tmp_tmp = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
26825 tmp_tmp = GET_H_FR_HI (((FLD (f_FRi)) + (0)));
26828 UHI opval = tmp_tmp;
26829 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
26830 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
26833 UHI opval = tmp_tmp;
26834 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
26835 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
26843 /* cmexpdhw: cmexpdhw$pack $FRinti,$u6,$FRintk,$CCi,$cond */
26846 SEM_FN_NAME (frvbf,cmexpdhw) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26848 #define FLD(f) abuf->fields.sfmt_cmexpdhw.f
26849 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26850 int UNUSED written = 0;
26851 IADDR UNUSED pc = abuf->addr;
26852 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26854 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
26857 if (ANDSI (FLD (f_u6), 1)) {
26858 tmp_tmp = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
26860 tmp_tmp = GET_H_FR_HI (((FLD (f_FRi)) + (0)));
26863 UHI opval = tmp_tmp;
26864 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
26865 written |= (1 << 7);
26866 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
26869 UHI opval = tmp_tmp;
26870 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
26871 written |= (1 << 8);
26872 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
26877 abuf->written = written;
26882 /* mexpdhd: mexpdhd$pack $FRinti,$u6,$FRintkeven */
26885 SEM_FN_NAME (frvbf,mexpdhd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26887 #define FLD(f) abuf->fields.sfmt_cmexpdhd.f
26888 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26889 int UNUSED written = 0;
26890 IADDR UNUSED pc = abuf->addr;
26891 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26893 if (ANDSI (FLD (f_FRk), SUBSI (2, 1))) {
26894 frvbf_media_register_not_aligned (current_cpu);
26899 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
26900 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
26901 written |= (1 << 6);
26902 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
26904 if (ANDSI (FLD (f_u6), 1)) {
26905 tmp_tmp = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
26907 tmp_tmp = GET_H_FR_HI (((FLD (f_FRi)) + (0)));
26910 UHI opval = tmp_tmp;
26911 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
26912 written |= (1 << 7);
26913 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
26916 UHI opval = tmp_tmp;
26917 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
26918 written |= (1 << 9);
26919 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
26922 UHI opval = tmp_tmp;
26923 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
26924 written |= (1 << 8);
26925 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
26928 UHI opval = tmp_tmp;
26929 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
26930 written |= (1 << 10);
26931 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
26936 abuf->written = written;
26941 /* cmexpdhd: cmexpdhd$pack $FRinti,$u6,$FRintkeven,$CCi,$cond */
26944 SEM_FN_NAME (frvbf,cmexpdhd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26946 #define FLD(f) abuf->fields.sfmt_cmexpdhd.f
26947 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26948 int UNUSED written = 0;
26949 IADDR UNUSED pc = abuf->addr;
26950 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26952 if (ANDSI (FLD (f_FRk), SUBSI (2, 1))) {
26953 frvbf_media_register_not_aligned (current_cpu);
26955 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
26959 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
26960 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
26961 written |= (1 << 8);
26962 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
26964 if (ANDSI (FLD (f_u6), 1)) {
26965 tmp_tmp = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
26967 tmp_tmp = GET_H_FR_HI (((FLD (f_FRi)) + (0)));
26970 UHI opval = tmp_tmp;
26971 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
26972 written |= (1 << 9);
26973 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
26976 UHI opval = tmp_tmp;
26977 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
26978 written |= (1 << 11);
26979 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
26982 UHI opval = tmp_tmp;
26983 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
26984 written |= (1 << 10);
26985 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
26988 UHI opval = tmp_tmp;
26989 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
26990 written |= (1 << 12);
26991 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
26997 abuf->written = written;
27002 /* mpackh: mpackh$pack $FRinti,$FRintj,$FRintk */
27005 SEM_FN_NAME (frvbf,mpackh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27007 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
27008 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27009 int UNUSED written = 0;
27010 IADDR UNUSED pc = abuf->addr;
27011 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27015 UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
27016 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27017 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27020 UHI opval = GET_H_FR_LO (((FLD (f_FRj)) + (0)));
27021 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27022 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27030 /* mdpackh: mdpackh$pack $FRintieven,$FRintjeven,$FRintkeven */
27033 SEM_FN_NAME (frvbf,mdpackh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27035 #define FLD(f) abuf->fields.sfmt_mdpackh.f
27036 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27037 int UNUSED written = 0;
27038 IADDR UNUSED pc = abuf->addr;
27039 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27041 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
27042 frvbf_media_register_not_aligned (current_cpu);
27046 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
27047 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
27048 written |= (1 << 10);
27049 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27052 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27053 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27054 written |= (1 << 11);
27055 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27058 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27059 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27060 written |= (1 << 12);
27061 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27065 UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
27066 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27067 written |= (1 << 13);
27068 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27071 UHI opval = GET_H_FR_LO (((FLD (f_FRj)) + (0)));
27072 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27073 written |= (1 << 15);
27074 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27079 UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (1)));
27080 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
27081 written |= (1 << 14);
27082 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27085 UHI opval = GET_H_FR_LO (((FLD (f_FRj)) + (1)));
27086 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
27087 written |= (1 << 16);
27088 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27094 abuf->written = written;
27099 /* munpackh: munpackh$pack $FRinti,$FRintkeven */
27102 SEM_FN_NAME (frvbf,munpackh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27104 #define FLD(f) abuf->fields.sfmt_munpackh.f
27105 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27106 int UNUSED written = 0;
27107 IADDR UNUSED pc = abuf->addr;
27108 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27110 if (ANDSI (FLD (f_FRk), SUBSI (2, 1))) {
27111 frvbf_media_register_not_aligned (current_cpu);
27115 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
27116 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
27117 written |= (1 << 6);
27118 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27121 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27122 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27123 written |= (1 << 7);
27124 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27128 UHI opval = GET_H_FR_HI (((FLD (f_FRi)) + (0)));
27129 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27130 written |= (1 << 8);
27131 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27134 UHI opval = GET_H_FR_HI (((FLD (f_FRi)) + (0)));
27135 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27136 written |= (1 << 10);
27137 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27140 UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
27141 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (ADDSI (0, 1))), opval);
27142 written |= (1 << 9);
27143 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27146 UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
27147 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (ADDSI (0, 1))), opval);
27148 written |= (1 << 11);
27149 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27155 abuf->written = written;
27160 /* mdunpackh: mdunpackh$pack $FRintieven,$FRintk */
27163 SEM_FN_NAME (frvbf,mdunpackh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27165 #define FLD(f) abuf->fields.sfmt_mdunpackh.f
27166 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27167 int UNUSED written = 0;
27168 IADDR UNUSED pc = abuf->addr;
27169 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27171 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (4, 1)))) {
27172 frvbf_media_register_not_aligned (current_cpu);
27176 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
27177 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
27178 written |= (1 << 8);
27179 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27182 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27183 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27184 written |= (1 << 9);
27185 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27189 UHI opval = GET_H_FR_HI (((FLD (f_FRi)) + (0)));
27190 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27191 written |= (1 << 10);
27192 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27195 UHI opval = GET_H_FR_HI (((FLD (f_FRi)) + (0)));
27196 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27197 written |= (1 << 14);
27198 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27201 UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
27202 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (ADDSI (0, 1))), opval);
27203 written |= (1 << 12);
27204 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27207 UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
27208 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (ADDSI (0, 1))), opval);
27209 written |= (1 << 16);
27210 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27215 UHI opval = GET_H_FR_HI (((FLD (f_FRi)) + (1)));
27216 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (2)), opval);
27217 written |= (1 << 11);
27218 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27221 UHI opval = GET_H_FR_HI (((FLD (f_FRi)) + (1)));
27222 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (2)), opval);
27223 written |= (1 << 15);
27224 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27227 UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (1)));
27228 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (ADDSI (2, 1))), opval);
27229 written |= (1 << 13);
27230 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27233 UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (1)));
27234 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (ADDSI (2, 1))), opval);
27235 written |= (1 << 17);
27236 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27242 abuf->written = written;
27247 /* mbtoh: mbtoh$pack $FRintj,$FRintkeven */
27250 SEM_FN_NAME (frvbf,mbtoh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27252 #define FLD(f) abuf->fields.sfmt_cmbtoh.f
27253 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27254 int UNUSED written = 0;
27255 IADDR UNUSED pc = abuf->addr;
27256 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27260 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27261 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27262 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27265 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27266 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27267 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27269 if (ANDSI (FLD (f_FRk), SUBSI (2, 1))) {
27270 frvbf_media_register_not_aligned (current_cpu);
27274 UHI opval = GET_H_FR_3 (((FLD (f_FRj)) + (0)));
27275 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27276 written |= (1 << 10);
27277 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27280 UHI opval = GET_H_FR_2 (((FLD (f_FRj)) + (0)));
27281 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27282 written |= (1 << 12);
27283 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27286 UHI opval = GET_H_FR_1 (((FLD (f_FRj)) + (0)));
27287 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
27288 written |= (1 << 11);
27289 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27292 UHI opval = GET_H_FR_0 (((FLD (f_FRj)) + (0)));
27293 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
27294 written |= (1 << 13);
27295 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27301 abuf->written = written;
27306 /* cmbtoh: cmbtoh$pack $FRintj,$FRintkeven,$CCi,$cond */
27309 SEM_FN_NAME (frvbf,cmbtoh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27311 #define FLD(f) abuf->fields.sfmt_cmbtoh.f
27312 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27313 int UNUSED written = 0;
27314 IADDR UNUSED pc = abuf->addr;
27315 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27319 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27320 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27321 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27324 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27325 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27326 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27328 if (ANDSI (FLD (f_FRk), SUBSI (2, 1))) {
27329 frvbf_media_register_not_aligned (current_cpu);
27331 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
27334 UHI opval = GET_H_FR_3 (((FLD (f_FRj)) + (0)));
27335 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27336 written |= (1 << 12);
27337 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27340 UHI opval = GET_H_FR_2 (((FLD (f_FRj)) + (0)));
27341 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27342 written |= (1 << 14);
27343 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27346 UHI opval = GET_H_FR_1 (((FLD (f_FRj)) + (0)));
27347 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
27348 written |= (1 << 13);
27349 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27352 UHI opval = GET_H_FR_0 (((FLD (f_FRj)) + (0)));
27353 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
27354 written |= (1 << 15);
27355 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27362 abuf->written = written;
27367 /* mhtob: mhtob$pack $FRintjeven,$FRintk */
27370 SEM_FN_NAME (frvbf,mhtob) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27372 #define FLD(f) abuf->fields.sfmt_cmhtob.f
27373 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27374 int UNUSED written = 0;
27375 IADDR UNUSED pc = abuf->addr;
27376 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27380 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27381 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27382 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27385 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27386 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27387 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27389 if (ANDSI (FLD (f_FRj), SUBSI (2, 1))) {
27390 frvbf_media_register_not_aligned (current_cpu);
27394 UHI opval = GET_H_FR_HI (((FLD (f_FRj)) + (0)));
27395 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_3_set, ((FLD (f_FRk)) + (0)), opval);
27396 written |= (1 << 13);
27397 TRACE_RESULT (current_cpu, abuf, "fr_3", 'x', opval);
27400 UHI opval = GET_H_FR_LO (((FLD (f_FRj)) + (0)));
27401 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_2_set, ((FLD (f_FRk)) + (0)), opval);
27402 written |= (1 << 12);
27403 TRACE_RESULT (current_cpu, abuf, "fr_2", 'x', opval);
27406 UHI opval = GET_H_FR_HI (((FLD (f_FRj)) + (1)));
27407 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_1_set, ((FLD (f_FRk)) + (0)), opval);
27408 written |= (1 << 11);
27409 TRACE_RESULT (current_cpu, abuf, "fr_1", 'x', opval);
27412 UHI opval = GET_H_FR_LO (((FLD (f_FRj)) + (1)));
27413 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_0_set, ((FLD (f_FRk)) + (0)), opval);
27414 written |= (1 << 10);
27415 TRACE_RESULT (current_cpu, abuf, "fr_0", 'x', opval);
27421 abuf->written = written;
27426 /* cmhtob: cmhtob$pack $FRintjeven,$FRintk,$CCi,$cond */
27429 SEM_FN_NAME (frvbf,cmhtob) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27431 #define FLD(f) abuf->fields.sfmt_cmhtob.f
27432 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27433 int UNUSED written = 0;
27434 IADDR UNUSED pc = abuf->addr;
27435 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27439 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27440 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27441 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27444 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27445 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27446 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27448 if (ANDSI (FLD (f_FRj), SUBSI (2, 1))) {
27449 frvbf_media_register_not_aligned (current_cpu);
27451 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
27454 UHI opval = GET_H_FR_HI (((FLD (f_FRj)) + (0)));
27455 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_3_set, ((FLD (f_FRk)) + (0)), opval);
27456 written |= (1 << 15);
27457 TRACE_RESULT (current_cpu, abuf, "fr_3", 'x', opval);
27460 UHI opval = GET_H_FR_LO (((FLD (f_FRj)) + (0)));
27461 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_2_set, ((FLD (f_FRk)) + (0)), opval);
27462 written |= (1 << 14);
27463 TRACE_RESULT (current_cpu, abuf, "fr_2", 'x', opval);
27466 UHI opval = GET_H_FR_HI (((FLD (f_FRj)) + (1)));
27467 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_1_set, ((FLD (f_FRk)) + (0)), opval);
27468 written |= (1 << 13);
27469 TRACE_RESULT (current_cpu, abuf, "fr_1", 'x', opval);
27472 UHI opval = GET_H_FR_LO (((FLD (f_FRj)) + (1)));
27473 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_0_set, ((FLD (f_FRk)) + (0)), opval);
27474 written |= (1 << 12);
27475 TRACE_RESULT (current_cpu, abuf, "fr_0", 'x', opval);
27482 abuf->written = written;
27487 /* mbtohe: mbtohe$pack $FRintj,$FRintk */
27490 SEM_FN_NAME (frvbf,mbtohe) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27492 #define FLD(f) abuf->fields.sfmt_cmbtohe.f
27493 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27494 int UNUSED written = 0;
27495 IADDR UNUSED pc = abuf->addr;
27496 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27500 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27501 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27502 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27505 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27506 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27507 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27509 if (ANDSI (FLD (f_FRk), SUBSI (4, 1))) {
27510 frvbf_media_register_not_aligned (current_cpu);
27514 UHI opval = GET_H_FR_3 (((FLD (f_FRj)) + (0)));
27515 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27516 written |= (1 << 10);
27517 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27520 UHI opval = GET_H_FR_3 (((FLD (f_FRj)) + (0)));
27521 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27522 written |= (1 << 14);
27523 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27526 UHI opval = GET_H_FR_2 (((FLD (f_FRj)) + (0)));
27527 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
27528 written |= (1 << 11);
27529 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27532 UHI opval = GET_H_FR_2 (((FLD (f_FRj)) + (0)));
27533 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
27534 written |= (1 << 15);
27535 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27538 UHI opval = GET_H_FR_1 (((FLD (f_FRj)) + (0)));
27539 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (2)), opval);
27540 written |= (1 << 12);
27541 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27544 UHI opval = GET_H_FR_1 (((FLD (f_FRj)) + (0)));
27545 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (2)), opval);
27546 written |= (1 << 16);
27547 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27550 UHI opval = GET_H_FR_0 (((FLD (f_FRj)) + (0)));
27551 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (3)), opval);
27552 written |= (1 << 13);
27553 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27556 UHI opval = GET_H_FR_0 (((FLD (f_FRj)) + (0)));
27557 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (3)), opval);
27558 written |= (1 << 17);
27559 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27565 abuf->written = written;
27570 /* cmbtohe: cmbtohe$pack $FRintj,$FRintk,$CCi,$cond */
27573 SEM_FN_NAME (frvbf,cmbtohe) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27575 #define FLD(f) abuf->fields.sfmt_cmbtohe.f
27576 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27577 int UNUSED written = 0;
27578 IADDR UNUSED pc = abuf->addr;
27579 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27583 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27584 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27585 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27588 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27589 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27590 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27592 if (ANDSI (FLD (f_FRk), SUBSI (4, 1))) {
27593 frvbf_media_register_not_aligned (current_cpu);
27595 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
27598 UHI opval = GET_H_FR_3 (((FLD (f_FRj)) + (0)));
27599 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27600 written |= (1 << 12);
27601 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27604 UHI opval = GET_H_FR_3 (((FLD (f_FRj)) + (0)));
27605 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27606 written |= (1 << 16);
27607 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27610 UHI opval = GET_H_FR_2 (((FLD (f_FRj)) + (0)));
27611 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
27612 written |= (1 << 13);
27613 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27616 UHI opval = GET_H_FR_2 (((FLD (f_FRj)) + (0)));
27617 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
27618 written |= (1 << 17);
27619 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27622 UHI opval = GET_H_FR_1 (((FLD (f_FRj)) + (0)));
27623 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (2)), opval);
27624 written |= (1 << 14);
27625 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27628 UHI opval = GET_H_FR_1 (((FLD (f_FRj)) + (0)));
27629 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (2)), opval);
27630 written |= (1 << 18);
27631 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27634 UHI opval = GET_H_FR_0 (((FLD (f_FRj)) + (0)));
27635 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (3)), opval);
27636 written |= (1 << 15);
27637 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27640 UHI opval = GET_H_FR_0 (((FLD (f_FRj)) + (0)));
27641 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (3)), opval);
27642 written |= (1 << 19);
27643 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27650 abuf->written = written;
27655 /* mnop: mnop$pack */
27658 SEM_FN_NAME (frvbf,mnop) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27660 #define FLD(f) abuf->fields.fmt_empty.f
27661 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27662 int UNUSED written = 0;
27663 IADDR UNUSED pc = abuf->addr;
27664 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27666 ((void) 0); /*nop*/
27672 /* mclracc-0: mclracc$pack $ACC40Sk,$A0 */
27675 SEM_FN_NAME (frvbf,mclracc_0) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27677 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
27678 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27679 int UNUSED written = 0;
27680 IADDR UNUSED pc = abuf->addr;
27681 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27683 frvbf_clear_accumulators (current_cpu, FLD (f_ACC40Sk), 0);
27689 /* mclracc-1: mclracc$pack $ACC40Sk,$A1 */
27692 SEM_FN_NAME (frvbf,mclracc_1) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27694 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
27695 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27696 int UNUSED written = 0;
27697 IADDR UNUSED pc = abuf->addr;
27698 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27700 frvbf_clear_accumulators (current_cpu, FLD (f_ACC40Sk), 1);
27706 /* mrdacc: mrdacc$pack $ACC40Si,$FRintk */
27709 SEM_FN_NAME (frvbf,mrdacc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27711 #define FLD(f) abuf->fields.sfmt_mcuti.f
27712 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27713 int UNUSED written = 0;
27714 IADDR UNUSED pc = abuf->addr;
27715 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27718 SI opval = GET_H_ACC40S (FLD (f_ACC40Si));
27719 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27720 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27727 /* mrdaccg: mrdaccg$pack $ACCGi,$FRintk */
27730 SEM_FN_NAME (frvbf,mrdaccg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27732 #define FLD(f) abuf->fields.sfmt_mrdaccg.f
27733 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27734 int UNUSED written = 0;
27735 IADDR UNUSED pc = abuf->addr;
27736 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27739 SI opval = GET_H_ACCG (FLD (f_ACCGi));
27740 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27741 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27748 /* mwtacc: mwtacc$pack $FRinti,$ACC40Sk */
27751 SEM_FN_NAME (frvbf,mwtacc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27753 #define FLD(f) abuf->fields.sfmt_cmmachs.f
27754 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27755 int UNUSED written = 0;
27756 IADDR UNUSED pc = abuf->addr;
27757 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27760 DI opval = ORDI (ANDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MAKEDI (0xffffffff, 0)), GET_H_FR_INT (FLD (f_FRi)));
27761 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
27762 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
27769 /* mwtaccg: mwtaccg$pack $FRinti,$ACCGk */
27772 SEM_FN_NAME (frvbf,mwtaccg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27774 #define FLD(f) abuf->fields.sfmt_mwtaccg.f
27775 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27776 int UNUSED written = 0;
27777 IADDR UNUSED pc = abuf->addr;
27778 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27781 USI opval = GET_H_FR_INT (FLD (f_FRi));
27782 sim_queue_fn_si_write (current_cpu, frvbf_h_accg_set, FLD (f_ACCGk), opval);
27783 TRACE_RESULT (current_cpu, abuf, "accg", 'x', opval);
27790 /* mcop1: mcop1$pack $FRi,$FRj,$FRk */
27793 SEM_FN_NAME (frvbf,mcop1) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27795 #define FLD(f) abuf->fields.fmt_empty.f
27796 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27797 int UNUSED written = 0;
27798 IADDR UNUSED pc = abuf->addr;
27799 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27801 frvbf_media_cop (current_cpu, 1);
27807 /* mcop2: mcop2$pack $FRi,$FRj,$FRk */
27810 SEM_FN_NAME (frvbf,mcop2) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27812 #define FLD(f) abuf->fields.fmt_empty.f
27813 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27814 int UNUSED written = 0;
27815 IADDR UNUSED pc = abuf->addr;
27816 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27818 frvbf_media_cop (current_cpu, 2);
27824 /* fnop: fnop$pack */
27827 SEM_FN_NAME (frvbf,fnop) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27829 #define FLD(f) abuf->fields.fmt_empty.f
27830 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27831 int UNUSED written = 0;
27832 IADDR UNUSED pc = abuf->addr;
27833 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27835 ((void) 0); /*nop*/
27841 /* Table of all semantic fns. */
27843 static const struct sem_fn_desc sem_fns[] = {
27844 { FRVBF_INSN_X_INVALID, SEM_FN_NAME (frvbf,x_invalid) },
27845 { FRVBF_INSN_X_AFTER, SEM_FN_NAME (frvbf,x_after) },
27846 { FRVBF_INSN_X_BEFORE, SEM_FN_NAME (frvbf,x_before) },
27847 { FRVBF_INSN_X_CTI_CHAIN, SEM_FN_NAME (frvbf,x_cti_chain) },
27848 { FRVBF_INSN_X_CHAIN, SEM_FN_NAME (frvbf,x_chain) },
27849 { FRVBF_INSN_X_BEGIN, SEM_FN_NAME (frvbf,x_begin) },
27850 { FRVBF_INSN_ADD, SEM_FN_NAME (frvbf,add) },
27851 { FRVBF_INSN_SUB, SEM_FN_NAME (frvbf,sub) },
27852 { FRVBF_INSN_AND, SEM_FN_NAME (frvbf,and) },
27853 { FRVBF_INSN_OR, SEM_FN_NAME (frvbf,or) },
27854 { FRVBF_INSN_XOR, SEM_FN_NAME (frvbf,xor) },
27855 { FRVBF_INSN_NOT, SEM_FN_NAME (frvbf,not) },
27856 { FRVBF_INSN_SDIV, SEM_FN_NAME (frvbf,sdiv) },
27857 { FRVBF_INSN_NSDIV, SEM_FN_NAME (frvbf,nsdiv) },
27858 { FRVBF_INSN_UDIV, SEM_FN_NAME (frvbf,udiv) },
27859 { FRVBF_INSN_NUDIV, SEM_FN_NAME (frvbf,nudiv) },
27860 { FRVBF_INSN_SMUL, SEM_FN_NAME (frvbf,smul) },
27861 { FRVBF_INSN_UMUL, SEM_FN_NAME (frvbf,umul) },
27862 { FRVBF_INSN_SLL, SEM_FN_NAME (frvbf,sll) },
27863 { FRVBF_INSN_SRL, SEM_FN_NAME (frvbf,srl) },
27864 { FRVBF_INSN_SRA, SEM_FN_NAME (frvbf,sra) },
27865 { FRVBF_INSN_SCAN, SEM_FN_NAME (frvbf,scan) },
27866 { FRVBF_INSN_CADD, SEM_FN_NAME (frvbf,cadd) },
27867 { FRVBF_INSN_CSUB, SEM_FN_NAME (frvbf,csub) },
27868 { FRVBF_INSN_CAND, SEM_FN_NAME (frvbf,cand) },
27869 { FRVBF_INSN_COR, SEM_FN_NAME (frvbf,cor) },
27870 { FRVBF_INSN_CXOR, SEM_FN_NAME (frvbf,cxor) },
27871 { FRVBF_INSN_CNOT, SEM_FN_NAME (frvbf,cnot) },
27872 { FRVBF_INSN_CSMUL, SEM_FN_NAME (frvbf,csmul) },
27873 { FRVBF_INSN_CSDIV, SEM_FN_NAME (frvbf,csdiv) },
27874 { FRVBF_INSN_CUDIV, SEM_FN_NAME (frvbf,cudiv) },
27875 { FRVBF_INSN_CSLL, SEM_FN_NAME (frvbf,csll) },
27876 { FRVBF_INSN_CSRL, SEM_FN_NAME (frvbf,csrl) },
27877 { FRVBF_INSN_CSRA, SEM_FN_NAME (frvbf,csra) },
27878 { FRVBF_INSN_CSCAN, SEM_FN_NAME (frvbf,cscan) },
27879 { FRVBF_INSN_ADDCC, SEM_FN_NAME (frvbf,addcc) },
27880 { FRVBF_INSN_SUBCC, SEM_FN_NAME (frvbf,subcc) },
27881 { FRVBF_INSN_ANDCC, SEM_FN_NAME (frvbf,andcc) },
27882 { FRVBF_INSN_ORCC, SEM_FN_NAME (frvbf,orcc) },
27883 { FRVBF_INSN_XORCC, SEM_FN_NAME (frvbf,xorcc) },
27884 { FRVBF_INSN_SLLCC, SEM_FN_NAME (frvbf,sllcc) },
27885 { FRVBF_INSN_SRLCC, SEM_FN_NAME (frvbf,srlcc) },
27886 { FRVBF_INSN_SRACC, SEM_FN_NAME (frvbf,sracc) },
27887 { FRVBF_INSN_SMULCC, SEM_FN_NAME (frvbf,smulcc) },
27888 { FRVBF_INSN_UMULCC, SEM_FN_NAME (frvbf,umulcc) },
27889 { FRVBF_INSN_CADDCC, SEM_FN_NAME (frvbf,caddcc) },
27890 { FRVBF_INSN_CSUBCC, SEM_FN_NAME (frvbf,csubcc) },
27891 { FRVBF_INSN_CSMULCC, SEM_FN_NAME (frvbf,csmulcc) },
27892 { FRVBF_INSN_CANDCC, SEM_FN_NAME (frvbf,candcc) },
27893 { FRVBF_INSN_CORCC, SEM_FN_NAME (frvbf,corcc) },
27894 { FRVBF_INSN_CXORCC, SEM_FN_NAME (frvbf,cxorcc) },
27895 { FRVBF_INSN_CSLLCC, SEM_FN_NAME (frvbf,csllcc) },
27896 { FRVBF_INSN_CSRLCC, SEM_FN_NAME (frvbf,csrlcc) },
27897 { FRVBF_INSN_CSRACC, SEM_FN_NAME (frvbf,csracc) },
27898 { FRVBF_INSN_ADDX, SEM_FN_NAME (frvbf,addx) },
27899 { FRVBF_INSN_SUBX, SEM_FN_NAME (frvbf,subx) },
27900 { FRVBF_INSN_ADDXCC, SEM_FN_NAME (frvbf,addxcc) },
27901 { FRVBF_INSN_SUBXCC, SEM_FN_NAME (frvbf,subxcc) },
27902 { FRVBF_INSN_ADDI, SEM_FN_NAME (frvbf,addi) },
27903 { FRVBF_INSN_SUBI, SEM_FN_NAME (frvbf,subi) },
27904 { FRVBF_INSN_ANDI, SEM_FN_NAME (frvbf,andi) },
27905 { FRVBF_INSN_ORI, SEM_FN_NAME (frvbf,ori) },
27906 { FRVBF_INSN_XORI, SEM_FN_NAME (frvbf,xori) },
27907 { FRVBF_INSN_SDIVI, SEM_FN_NAME (frvbf,sdivi) },
27908 { FRVBF_INSN_NSDIVI, SEM_FN_NAME (frvbf,nsdivi) },
27909 { FRVBF_INSN_UDIVI, SEM_FN_NAME (frvbf,udivi) },
27910 { FRVBF_INSN_NUDIVI, SEM_FN_NAME (frvbf,nudivi) },
27911 { FRVBF_INSN_SMULI, SEM_FN_NAME (frvbf,smuli) },
27912 { FRVBF_INSN_UMULI, SEM_FN_NAME (frvbf,umuli) },
27913 { FRVBF_INSN_SLLI, SEM_FN_NAME (frvbf,slli) },
27914 { FRVBF_INSN_SRLI, SEM_FN_NAME (frvbf,srli) },
27915 { FRVBF_INSN_SRAI, SEM_FN_NAME (frvbf,srai) },
27916 { FRVBF_INSN_SCANI, SEM_FN_NAME (frvbf,scani) },
27917 { FRVBF_INSN_ADDICC, SEM_FN_NAME (frvbf,addicc) },
27918 { FRVBF_INSN_SUBICC, SEM_FN_NAME (frvbf,subicc) },
27919 { FRVBF_INSN_ANDICC, SEM_FN_NAME (frvbf,andicc) },
27920 { FRVBF_INSN_ORICC, SEM_FN_NAME (frvbf,oricc) },
27921 { FRVBF_INSN_XORICC, SEM_FN_NAME (frvbf,xoricc) },
27922 { FRVBF_INSN_SMULICC, SEM_FN_NAME (frvbf,smulicc) },
27923 { FRVBF_INSN_UMULICC, SEM_FN_NAME (frvbf,umulicc) },
27924 { FRVBF_INSN_SLLICC, SEM_FN_NAME (frvbf,sllicc) },
27925 { FRVBF_INSN_SRLICC, SEM_FN_NAME (frvbf,srlicc) },
27926 { FRVBF_INSN_SRAICC, SEM_FN_NAME (frvbf,sraicc) },
27927 { FRVBF_INSN_ADDXI, SEM_FN_NAME (frvbf,addxi) },
27928 { FRVBF_INSN_SUBXI, SEM_FN_NAME (frvbf,subxi) },
27929 { FRVBF_INSN_ADDXICC, SEM_FN_NAME (frvbf,addxicc) },
27930 { FRVBF_INSN_SUBXICC, SEM_FN_NAME (frvbf,subxicc) },
27931 { FRVBF_INSN_CMPB, SEM_FN_NAME (frvbf,cmpb) },
27932 { FRVBF_INSN_CMPBA, SEM_FN_NAME (frvbf,cmpba) },
27933 { FRVBF_INSN_SETLO, SEM_FN_NAME (frvbf,setlo) },
27934 { FRVBF_INSN_SETHI, SEM_FN_NAME (frvbf,sethi) },
27935 { FRVBF_INSN_SETLOS, SEM_FN_NAME (frvbf,setlos) },
27936 { FRVBF_INSN_LDSB, SEM_FN_NAME (frvbf,ldsb) },
27937 { FRVBF_INSN_LDUB, SEM_FN_NAME (frvbf,ldub) },
27938 { FRVBF_INSN_LDSH, SEM_FN_NAME (frvbf,ldsh) },
27939 { FRVBF_INSN_LDUH, SEM_FN_NAME (frvbf,lduh) },
27940 { FRVBF_INSN_LD, SEM_FN_NAME (frvbf,ld) },
27941 { FRVBF_INSN_LDBF, SEM_FN_NAME (frvbf,ldbf) },
27942 { FRVBF_INSN_LDHF, SEM_FN_NAME (frvbf,ldhf) },
27943 { FRVBF_INSN_LDF, SEM_FN_NAME (frvbf,ldf) },
27944 { FRVBF_INSN_LDC, SEM_FN_NAME (frvbf,ldc) },
27945 { FRVBF_INSN_NLDSB, SEM_FN_NAME (frvbf,nldsb) },
27946 { FRVBF_INSN_NLDUB, SEM_FN_NAME (frvbf,nldub) },
27947 { FRVBF_INSN_NLDSH, SEM_FN_NAME (frvbf,nldsh) },
27948 { FRVBF_INSN_NLDUH, SEM_FN_NAME (frvbf,nlduh) },
27949 { FRVBF_INSN_NLD, SEM_FN_NAME (frvbf,nld) },
27950 { FRVBF_INSN_NLDBF, SEM_FN_NAME (frvbf,nldbf) },
27951 { FRVBF_INSN_NLDHF, SEM_FN_NAME (frvbf,nldhf) },
27952 { FRVBF_INSN_NLDF, SEM_FN_NAME (frvbf,nldf) },
27953 { FRVBF_INSN_LDD, SEM_FN_NAME (frvbf,ldd) },
27954 { FRVBF_INSN_LDDF, SEM_FN_NAME (frvbf,lddf) },
27955 { FRVBF_INSN_LDDC, SEM_FN_NAME (frvbf,lddc) },
27956 { FRVBF_INSN_NLDD, SEM_FN_NAME (frvbf,nldd) },
27957 { FRVBF_INSN_NLDDF, SEM_FN_NAME (frvbf,nlddf) },
27958 { FRVBF_INSN_LDQ, SEM_FN_NAME (frvbf,ldq) },
27959 { FRVBF_INSN_LDQF, SEM_FN_NAME (frvbf,ldqf) },
27960 { FRVBF_INSN_LDQC, SEM_FN_NAME (frvbf,ldqc) },
27961 { FRVBF_INSN_NLDQ, SEM_FN_NAME (frvbf,nldq) },
27962 { FRVBF_INSN_NLDQF, SEM_FN_NAME (frvbf,nldqf) },
27963 { FRVBF_INSN_LDSBU, SEM_FN_NAME (frvbf,ldsbu) },
27964 { FRVBF_INSN_LDUBU, SEM_FN_NAME (frvbf,ldubu) },
27965 { FRVBF_INSN_LDSHU, SEM_FN_NAME (frvbf,ldshu) },
27966 { FRVBF_INSN_LDUHU, SEM_FN_NAME (frvbf,lduhu) },
27967 { FRVBF_INSN_LDU, SEM_FN_NAME (frvbf,ldu) },
27968 { FRVBF_INSN_NLDSBU, SEM_FN_NAME (frvbf,nldsbu) },
27969 { FRVBF_INSN_NLDUBU, SEM_FN_NAME (frvbf,nldubu) },
27970 { FRVBF_INSN_NLDSHU, SEM_FN_NAME (frvbf,nldshu) },
27971 { FRVBF_INSN_NLDUHU, SEM_FN_NAME (frvbf,nlduhu) },
27972 { FRVBF_INSN_NLDU, SEM_FN_NAME (frvbf,nldu) },
27973 { FRVBF_INSN_LDBFU, SEM_FN_NAME (frvbf,ldbfu) },
27974 { FRVBF_INSN_LDHFU, SEM_FN_NAME (frvbf,ldhfu) },
27975 { FRVBF_INSN_LDFU, SEM_FN_NAME (frvbf,ldfu) },
27976 { FRVBF_INSN_LDCU, SEM_FN_NAME (frvbf,ldcu) },
27977 { FRVBF_INSN_NLDBFU, SEM_FN_NAME (frvbf,nldbfu) },
27978 { FRVBF_INSN_NLDHFU, SEM_FN_NAME (frvbf,nldhfu) },
27979 { FRVBF_INSN_NLDFU, SEM_FN_NAME (frvbf,nldfu) },
27980 { FRVBF_INSN_LDDU, SEM_FN_NAME (frvbf,lddu) },
27981 { FRVBF_INSN_NLDDU, SEM_FN_NAME (frvbf,nlddu) },
27982 { FRVBF_INSN_LDDFU, SEM_FN_NAME (frvbf,lddfu) },
27983 { FRVBF_INSN_LDDCU, SEM_FN_NAME (frvbf,lddcu) },
27984 { FRVBF_INSN_NLDDFU, SEM_FN_NAME (frvbf,nlddfu) },
27985 { FRVBF_INSN_LDQU, SEM_FN_NAME (frvbf,ldqu) },
27986 { FRVBF_INSN_NLDQU, SEM_FN_NAME (frvbf,nldqu) },
27987 { FRVBF_INSN_LDQFU, SEM_FN_NAME (frvbf,ldqfu) },
27988 { FRVBF_INSN_LDQCU, SEM_FN_NAME (frvbf,ldqcu) },
27989 { FRVBF_INSN_NLDQFU, SEM_FN_NAME (frvbf,nldqfu) },
27990 { FRVBF_INSN_LDSBI, SEM_FN_NAME (frvbf,ldsbi) },
27991 { FRVBF_INSN_LDSHI, SEM_FN_NAME (frvbf,ldshi) },
27992 { FRVBF_INSN_LDI, SEM_FN_NAME (frvbf,ldi) },
27993 { FRVBF_INSN_LDUBI, SEM_FN_NAME (frvbf,ldubi) },
27994 { FRVBF_INSN_LDUHI, SEM_FN_NAME (frvbf,lduhi) },
27995 { FRVBF_INSN_LDBFI, SEM_FN_NAME (frvbf,ldbfi) },
27996 { FRVBF_INSN_LDHFI, SEM_FN_NAME (frvbf,ldhfi) },
27997 { FRVBF_INSN_LDFI, SEM_FN_NAME (frvbf,ldfi) },
27998 { FRVBF_INSN_NLDSBI, SEM_FN_NAME (frvbf,nldsbi) },
27999 { FRVBF_INSN_NLDUBI, SEM_FN_NAME (frvbf,nldubi) },
28000 { FRVBF_INSN_NLDSHI, SEM_FN_NAME (frvbf,nldshi) },
28001 { FRVBF_INSN_NLDUHI, SEM_FN_NAME (frvbf,nlduhi) },
28002 { FRVBF_INSN_NLDI, SEM_FN_NAME (frvbf,nldi) },
28003 { FRVBF_INSN_NLDBFI, SEM_FN_NAME (frvbf,nldbfi) },
28004 { FRVBF_INSN_NLDHFI, SEM_FN_NAME (frvbf,nldhfi) },
28005 { FRVBF_INSN_NLDFI, SEM_FN_NAME (frvbf,nldfi) },
28006 { FRVBF_INSN_LDDI, SEM_FN_NAME (frvbf,lddi) },
28007 { FRVBF_INSN_LDDFI, SEM_FN_NAME (frvbf,lddfi) },
28008 { FRVBF_INSN_NLDDI, SEM_FN_NAME (frvbf,nlddi) },
28009 { FRVBF_INSN_NLDDFI, SEM_FN_NAME (frvbf,nlddfi) },
28010 { FRVBF_INSN_LDQI, SEM_FN_NAME (frvbf,ldqi) },
28011 { FRVBF_INSN_LDQFI, SEM_FN_NAME (frvbf,ldqfi) },
28012 { FRVBF_INSN_NLDQI, SEM_FN_NAME (frvbf,nldqi) },
28013 { FRVBF_INSN_NLDQFI, SEM_FN_NAME (frvbf,nldqfi) },
28014 { FRVBF_INSN_STB, SEM_FN_NAME (frvbf,stb) },
28015 { FRVBF_INSN_STH, SEM_FN_NAME (frvbf,sth) },
28016 { FRVBF_INSN_ST, SEM_FN_NAME (frvbf,st) },
28017 { FRVBF_INSN_STBF, SEM_FN_NAME (frvbf,stbf) },
28018 { FRVBF_INSN_STHF, SEM_FN_NAME (frvbf,sthf) },
28019 { FRVBF_INSN_STF, SEM_FN_NAME (frvbf,stf) },
28020 { FRVBF_INSN_STC, SEM_FN_NAME (frvbf,stc) },
28021 { FRVBF_INSN_RSTB, SEM_FN_NAME (frvbf,rstb) },
28022 { FRVBF_INSN_RSTH, SEM_FN_NAME (frvbf,rsth) },
28023 { FRVBF_INSN_RST, SEM_FN_NAME (frvbf,rst) },
28024 { FRVBF_INSN_RSTBF, SEM_FN_NAME (frvbf,rstbf) },
28025 { FRVBF_INSN_RSTHF, SEM_FN_NAME (frvbf,rsthf) },
28026 { FRVBF_INSN_RSTF, SEM_FN_NAME (frvbf,rstf) },
28027 { FRVBF_INSN_STD, SEM_FN_NAME (frvbf,std) },
28028 { FRVBF_INSN_STDF, SEM_FN_NAME (frvbf,stdf) },
28029 { FRVBF_INSN_STDC, SEM_FN_NAME (frvbf,stdc) },
28030 { FRVBF_INSN_RSTD, SEM_FN_NAME (frvbf,rstd) },
28031 { FRVBF_INSN_RSTDF, SEM_FN_NAME (frvbf,rstdf) },
28032 { FRVBF_INSN_STQ, SEM_FN_NAME (frvbf,stq) },
28033 { FRVBF_INSN_STQF, SEM_FN_NAME (frvbf,stqf) },
28034 { FRVBF_INSN_STQC, SEM_FN_NAME (frvbf,stqc) },
28035 { FRVBF_INSN_RSTQ, SEM_FN_NAME (frvbf,rstq) },
28036 { FRVBF_INSN_RSTQF, SEM_FN_NAME (frvbf,rstqf) },
28037 { FRVBF_INSN_STBU, SEM_FN_NAME (frvbf,stbu) },
28038 { FRVBF_INSN_STHU, SEM_FN_NAME (frvbf,sthu) },
28039 { FRVBF_INSN_STU, SEM_FN_NAME (frvbf,stu) },
28040 { FRVBF_INSN_STBFU, SEM_FN_NAME (frvbf,stbfu) },
28041 { FRVBF_INSN_STHFU, SEM_FN_NAME (frvbf,sthfu) },
28042 { FRVBF_INSN_STFU, SEM_FN_NAME (frvbf,stfu) },
28043 { FRVBF_INSN_STCU, SEM_FN_NAME (frvbf,stcu) },
28044 { FRVBF_INSN_STDU, SEM_FN_NAME (frvbf,stdu) },
28045 { FRVBF_INSN_STDFU, SEM_FN_NAME (frvbf,stdfu) },
28046 { FRVBF_INSN_STDCU, SEM_FN_NAME (frvbf,stdcu) },
28047 { FRVBF_INSN_STQU, SEM_FN_NAME (frvbf,stqu) },
28048 { FRVBF_INSN_STQFU, SEM_FN_NAME (frvbf,stqfu) },
28049 { FRVBF_INSN_STQCU, SEM_FN_NAME (frvbf,stqcu) },
28050 { FRVBF_INSN_CLDSB, SEM_FN_NAME (frvbf,cldsb) },
28051 { FRVBF_INSN_CLDUB, SEM_FN_NAME (frvbf,cldub) },
28052 { FRVBF_INSN_CLDSH, SEM_FN_NAME (frvbf,cldsh) },
28053 { FRVBF_INSN_CLDUH, SEM_FN_NAME (frvbf,clduh) },
28054 { FRVBF_INSN_CLD, SEM_FN_NAME (frvbf,cld) },
28055 { FRVBF_INSN_CLDBF, SEM_FN_NAME (frvbf,cldbf) },
28056 { FRVBF_INSN_CLDHF, SEM_FN_NAME (frvbf,cldhf) },
28057 { FRVBF_INSN_CLDF, SEM_FN_NAME (frvbf,cldf) },
28058 { FRVBF_INSN_CLDD, SEM_FN_NAME (frvbf,cldd) },
28059 { FRVBF_INSN_CLDDF, SEM_FN_NAME (frvbf,clddf) },
28060 { FRVBF_INSN_CLDQ, SEM_FN_NAME (frvbf,cldq) },
28061 { FRVBF_INSN_CLDSBU, SEM_FN_NAME (frvbf,cldsbu) },
28062 { FRVBF_INSN_CLDUBU, SEM_FN_NAME (frvbf,cldubu) },
28063 { FRVBF_INSN_CLDSHU, SEM_FN_NAME (frvbf,cldshu) },
28064 { FRVBF_INSN_CLDUHU, SEM_FN_NAME (frvbf,clduhu) },
28065 { FRVBF_INSN_CLDU, SEM_FN_NAME (frvbf,cldu) },
28066 { FRVBF_INSN_CLDBFU, SEM_FN_NAME (frvbf,cldbfu) },
28067 { FRVBF_INSN_CLDHFU, SEM_FN_NAME (frvbf,cldhfu) },
28068 { FRVBF_INSN_CLDFU, SEM_FN_NAME (frvbf,cldfu) },
28069 { FRVBF_INSN_CLDDU, SEM_FN_NAME (frvbf,clddu) },
28070 { FRVBF_INSN_CLDDFU, SEM_FN_NAME (frvbf,clddfu) },
28071 { FRVBF_INSN_CLDQU, SEM_FN_NAME (frvbf,cldqu) },
28072 { FRVBF_INSN_CSTB, SEM_FN_NAME (frvbf,cstb) },
28073 { FRVBF_INSN_CSTH, SEM_FN_NAME (frvbf,csth) },
28074 { FRVBF_INSN_CST, SEM_FN_NAME (frvbf,cst) },
28075 { FRVBF_INSN_CSTBF, SEM_FN_NAME (frvbf,cstbf) },
28076 { FRVBF_INSN_CSTHF, SEM_FN_NAME (frvbf,csthf) },
28077 { FRVBF_INSN_CSTF, SEM_FN_NAME (frvbf,cstf) },
28078 { FRVBF_INSN_CSTD, SEM_FN_NAME (frvbf,cstd) },
28079 { FRVBF_INSN_CSTDF, SEM_FN_NAME (frvbf,cstdf) },
28080 { FRVBF_INSN_CSTQ, SEM_FN_NAME (frvbf,cstq) },
28081 { FRVBF_INSN_CSTBU, SEM_FN_NAME (frvbf,cstbu) },
28082 { FRVBF_INSN_CSTHU, SEM_FN_NAME (frvbf,csthu) },
28083 { FRVBF_INSN_CSTU, SEM_FN_NAME (frvbf,cstu) },
28084 { FRVBF_INSN_CSTBFU, SEM_FN_NAME (frvbf,cstbfu) },
28085 { FRVBF_INSN_CSTHFU, SEM_FN_NAME (frvbf,csthfu) },
28086 { FRVBF_INSN_CSTFU, SEM_FN_NAME (frvbf,cstfu) },
28087 { FRVBF_INSN_CSTDU, SEM_FN_NAME (frvbf,cstdu) },
28088 { FRVBF_INSN_CSTDFU, SEM_FN_NAME (frvbf,cstdfu) },
28089 { FRVBF_INSN_STBI, SEM_FN_NAME (frvbf,stbi) },
28090 { FRVBF_INSN_STHI, SEM_FN_NAME (frvbf,sthi) },
28091 { FRVBF_INSN_STI, SEM_FN_NAME (frvbf,sti) },
28092 { FRVBF_INSN_STBFI, SEM_FN_NAME (frvbf,stbfi) },
28093 { FRVBF_INSN_STHFI, SEM_FN_NAME (frvbf,sthfi) },
28094 { FRVBF_INSN_STFI, SEM_FN_NAME (frvbf,stfi) },
28095 { FRVBF_INSN_STDI, SEM_FN_NAME (frvbf,stdi) },
28096 { FRVBF_INSN_STDFI, SEM_FN_NAME (frvbf,stdfi) },
28097 { FRVBF_INSN_STQI, SEM_FN_NAME (frvbf,stqi) },
28098 { FRVBF_INSN_STQFI, SEM_FN_NAME (frvbf,stqfi) },
28099 { FRVBF_INSN_SWAP, SEM_FN_NAME (frvbf,swap) },
28100 { FRVBF_INSN_SWAPI, SEM_FN_NAME (frvbf,swapi) },
28101 { FRVBF_INSN_CSWAP, SEM_FN_NAME (frvbf,cswap) },
28102 { FRVBF_INSN_MOVGF, SEM_FN_NAME (frvbf,movgf) },
28103 { FRVBF_INSN_MOVFG, SEM_FN_NAME (frvbf,movfg) },
28104 { FRVBF_INSN_MOVGFD, SEM_FN_NAME (frvbf,movgfd) },
28105 { FRVBF_INSN_MOVFGD, SEM_FN_NAME (frvbf,movfgd) },
28106 { FRVBF_INSN_MOVGFQ, SEM_FN_NAME (frvbf,movgfq) },
28107 { FRVBF_INSN_MOVFGQ, SEM_FN_NAME (frvbf,movfgq) },
28108 { FRVBF_INSN_CMOVGF, SEM_FN_NAME (frvbf,cmovgf) },
28109 { FRVBF_INSN_CMOVFG, SEM_FN_NAME (frvbf,cmovfg) },
28110 { FRVBF_INSN_CMOVGFD, SEM_FN_NAME (frvbf,cmovgfd) },
28111 { FRVBF_INSN_CMOVFGD, SEM_FN_NAME (frvbf,cmovfgd) },
28112 { FRVBF_INSN_MOVGS, SEM_FN_NAME (frvbf,movgs) },
28113 { FRVBF_INSN_MOVSG, SEM_FN_NAME (frvbf,movsg) },
28114 { FRVBF_INSN_BRA, SEM_FN_NAME (frvbf,bra) },
28115 { FRVBF_INSN_BNO, SEM_FN_NAME (frvbf,bno) },
28116 { FRVBF_INSN_BEQ, SEM_FN_NAME (frvbf,beq) },
28117 { FRVBF_INSN_BNE, SEM_FN_NAME (frvbf,bne) },
28118 { FRVBF_INSN_BLE, SEM_FN_NAME (frvbf,ble) },
28119 { FRVBF_INSN_BGT, SEM_FN_NAME (frvbf,bgt) },
28120 { FRVBF_INSN_BLT, SEM_FN_NAME (frvbf,blt) },
28121 { FRVBF_INSN_BGE, SEM_FN_NAME (frvbf,bge) },
28122 { FRVBF_INSN_BLS, SEM_FN_NAME (frvbf,bls) },
28123 { FRVBF_INSN_BHI, SEM_FN_NAME (frvbf,bhi) },
28124 { FRVBF_INSN_BC, SEM_FN_NAME (frvbf,bc) },
28125 { FRVBF_INSN_BNC, SEM_FN_NAME (frvbf,bnc) },
28126 { FRVBF_INSN_BN, SEM_FN_NAME (frvbf,bn) },
28127 { FRVBF_INSN_BP, SEM_FN_NAME (frvbf,bp) },
28128 { FRVBF_INSN_BV, SEM_FN_NAME (frvbf,bv) },
28129 { FRVBF_INSN_BNV, SEM_FN_NAME (frvbf,bnv) },
28130 { FRVBF_INSN_FBRA, SEM_FN_NAME (frvbf,fbra) },
28131 { FRVBF_INSN_FBNO, SEM_FN_NAME (frvbf,fbno) },
28132 { FRVBF_INSN_FBNE, SEM_FN_NAME (frvbf,fbne) },
28133 { FRVBF_INSN_FBEQ, SEM_FN_NAME (frvbf,fbeq) },
28134 { FRVBF_INSN_FBLG, SEM_FN_NAME (frvbf,fblg) },
28135 { FRVBF_INSN_FBUE, SEM_FN_NAME (frvbf,fbue) },
28136 { FRVBF_INSN_FBUL, SEM_FN_NAME (frvbf,fbul) },
28137 { FRVBF_INSN_FBGE, SEM_FN_NAME (frvbf,fbge) },
28138 { FRVBF_INSN_FBLT, SEM_FN_NAME (frvbf,fblt) },
28139 { FRVBF_INSN_FBUGE, SEM_FN_NAME (frvbf,fbuge) },
28140 { FRVBF_INSN_FBUG, SEM_FN_NAME (frvbf,fbug) },
28141 { FRVBF_INSN_FBLE, SEM_FN_NAME (frvbf,fble) },
28142 { FRVBF_INSN_FBGT, SEM_FN_NAME (frvbf,fbgt) },
28143 { FRVBF_INSN_FBULE, SEM_FN_NAME (frvbf,fbule) },
28144 { FRVBF_INSN_FBU, SEM_FN_NAME (frvbf,fbu) },
28145 { FRVBF_INSN_FBO, SEM_FN_NAME (frvbf,fbo) },
28146 { FRVBF_INSN_BCTRLR, SEM_FN_NAME (frvbf,bctrlr) },
28147 { FRVBF_INSN_BRALR, SEM_FN_NAME (frvbf,bralr) },
28148 { FRVBF_INSN_BNOLR, SEM_FN_NAME (frvbf,bnolr) },
28149 { FRVBF_INSN_BEQLR, SEM_FN_NAME (frvbf,beqlr) },
28150 { FRVBF_INSN_BNELR, SEM_FN_NAME (frvbf,bnelr) },
28151 { FRVBF_INSN_BLELR, SEM_FN_NAME (frvbf,blelr) },
28152 { FRVBF_INSN_BGTLR, SEM_FN_NAME (frvbf,bgtlr) },
28153 { FRVBF_INSN_BLTLR, SEM_FN_NAME (frvbf,bltlr) },
28154 { FRVBF_INSN_BGELR, SEM_FN_NAME (frvbf,bgelr) },
28155 { FRVBF_INSN_BLSLR, SEM_FN_NAME (frvbf,blslr) },
28156 { FRVBF_INSN_BHILR, SEM_FN_NAME (frvbf,bhilr) },
28157 { FRVBF_INSN_BCLR, SEM_FN_NAME (frvbf,bclr) },
28158 { FRVBF_INSN_BNCLR, SEM_FN_NAME (frvbf,bnclr) },
28159 { FRVBF_INSN_BNLR, SEM_FN_NAME (frvbf,bnlr) },
28160 { FRVBF_INSN_BPLR, SEM_FN_NAME (frvbf,bplr) },
28161 { FRVBF_INSN_BVLR, SEM_FN_NAME (frvbf,bvlr) },
28162 { FRVBF_INSN_BNVLR, SEM_FN_NAME (frvbf,bnvlr) },
28163 { FRVBF_INSN_FBRALR, SEM_FN_NAME (frvbf,fbralr) },
28164 { FRVBF_INSN_FBNOLR, SEM_FN_NAME (frvbf,fbnolr) },
28165 { FRVBF_INSN_FBEQLR, SEM_FN_NAME (frvbf,fbeqlr) },
28166 { FRVBF_INSN_FBNELR, SEM_FN_NAME (frvbf,fbnelr) },
28167 { FRVBF_INSN_FBLGLR, SEM_FN_NAME (frvbf,fblglr) },
28168 { FRVBF_INSN_FBUELR, SEM_FN_NAME (frvbf,fbuelr) },
28169 { FRVBF_INSN_FBULLR, SEM_FN_NAME (frvbf,fbullr) },
28170 { FRVBF_INSN_FBGELR, SEM_FN_NAME (frvbf,fbgelr) },
28171 { FRVBF_INSN_FBLTLR, SEM_FN_NAME (frvbf,fbltlr) },
28172 { FRVBF_INSN_FBUGELR, SEM_FN_NAME (frvbf,fbugelr) },
28173 { FRVBF_INSN_FBUGLR, SEM_FN_NAME (frvbf,fbuglr) },
28174 { FRVBF_INSN_FBLELR, SEM_FN_NAME (frvbf,fblelr) },
28175 { FRVBF_INSN_FBGTLR, SEM_FN_NAME (frvbf,fbgtlr) },
28176 { FRVBF_INSN_FBULELR, SEM_FN_NAME (frvbf,fbulelr) },
28177 { FRVBF_INSN_FBULR, SEM_FN_NAME (frvbf,fbulr) },
28178 { FRVBF_INSN_FBOLR, SEM_FN_NAME (frvbf,fbolr) },
28179 { FRVBF_INSN_BCRALR, SEM_FN_NAME (frvbf,bcralr) },
28180 { FRVBF_INSN_BCNOLR, SEM_FN_NAME (frvbf,bcnolr) },
28181 { FRVBF_INSN_BCEQLR, SEM_FN_NAME (frvbf,bceqlr) },
28182 { FRVBF_INSN_BCNELR, SEM_FN_NAME (frvbf,bcnelr) },
28183 { FRVBF_INSN_BCLELR, SEM_FN_NAME (frvbf,bclelr) },
28184 { FRVBF_INSN_BCGTLR, SEM_FN_NAME (frvbf,bcgtlr) },
28185 { FRVBF_INSN_BCLTLR, SEM_FN_NAME (frvbf,bcltlr) },
28186 { FRVBF_INSN_BCGELR, SEM_FN_NAME (frvbf,bcgelr) },
28187 { FRVBF_INSN_BCLSLR, SEM_FN_NAME (frvbf,bclslr) },
28188 { FRVBF_INSN_BCHILR, SEM_FN_NAME (frvbf,bchilr) },
28189 { FRVBF_INSN_BCCLR, SEM_FN_NAME (frvbf,bcclr) },
28190 { FRVBF_INSN_BCNCLR, SEM_FN_NAME (frvbf,bcnclr) },
28191 { FRVBF_INSN_BCNLR, SEM_FN_NAME (frvbf,bcnlr) },
28192 { FRVBF_INSN_BCPLR, SEM_FN_NAME (frvbf,bcplr) },
28193 { FRVBF_INSN_BCVLR, SEM_FN_NAME (frvbf,bcvlr) },
28194 { FRVBF_INSN_BCNVLR, SEM_FN_NAME (frvbf,bcnvlr) },
28195 { FRVBF_INSN_FCBRALR, SEM_FN_NAME (frvbf,fcbralr) },
28196 { FRVBF_INSN_FCBNOLR, SEM_FN_NAME (frvbf,fcbnolr) },
28197 { FRVBF_INSN_FCBEQLR, SEM_FN_NAME (frvbf,fcbeqlr) },
28198 { FRVBF_INSN_FCBNELR, SEM_FN_NAME (frvbf,fcbnelr) },
28199 { FRVBF_INSN_FCBLGLR, SEM_FN_NAME (frvbf,fcblglr) },
28200 { FRVBF_INSN_FCBUELR, SEM_FN_NAME (frvbf,fcbuelr) },
28201 { FRVBF_INSN_FCBULLR, SEM_FN_NAME (frvbf,fcbullr) },
28202 { FRVBF_INSN_FCBGELR, SEM_FN_NAME (frvbf,fcbgelr) },
28203 { FRVBF_INSN_FCBLTLR, SEM_FN_NAME (frvbf,fcbltlr) },
28204 { FRVBF_INSN_FCBUGELR, SEM_FN_NAME (frvbf,fcbugelr) },
28205 { FRVBF_INSN_FCBUGLR, SEM_FN_NAME (frvbf,fcbuglr) },
28206 { FRVBF_INSN_FCBLELR, SEM_FN_NAME (frvbf,fcblelr) },
28207 { FRVBF_INSN_FCBGTLR, SEM_FN_NAME (frvbf,fcbgtlr) },
28208 { FRVBF_INSN_FCBULELR, SEM_FN_NAME (frvbf,fcbulelr) },
28209 { FRVBF_INSN_FCBULR, SEM_FN_NAME (frvbf,fcbulr) },
28210 { FRVBF_INSN_FCBOLR, SEM_FN_NAME (frvbf,fcbolr) },
28211 { FRVBF_INSN_JMPL, SEM_FN_NAME (frvbf,jmpl) },
28212 { FRVBF_INSN_CALLL, SEM_FN_NAME (frvbf,calll) },
28213 { FRVBF_INSN_JMPIL, SEM_FN_NAME (frvbf,jmpil) },
28214 { FRVBF_INSN_CALLIL, SEM_FN_NAME (frvbf,callil) },
28215 { FRVBF_INSN_CALL, SEM_FN_NAME (frvbf,call) },
28216 { FRVBF_INSN_RETT, SEM_FN_NAME (frvbf,rett) },
28217 { FRVBF_INSN_REI, SEM_FN_NAME (frvbf,rei) },
28218 { FRVBF_INSN_TRA, SEM_FN_NAME (frvbf,tra) },
28219 { FRVBF_INSN_TNO, SEM_FN_NAME (frvbf,tno) },
28220 { FRVBF_INSN_TEQ, SEM_FN_NAME (frvbf,teq) },
28221 { FRVBF_INSN_TNE, SEM_FN_NAME (frvbf,tne) },
28222 { FRVBF_INSN_TLE, SEM_FN_NAME (frvbf,tle) },
28223 { FRVBF_INSN_TGT, SEM_FN_NAME (frvbf,tgt) },
28224 { FRVBF_INSN_TLT, SEM_FN_NAME (frvbf,tlt) },
28225 { FRVBF_INSN_TGE, SEM_FN_NAME (frvbf,tge) },
28226 { FRVBF_INSN_TLS, SEM_FN_NAME (frvbf,tls) },
28227 { FRVBF_INSN_THI, SEM_FN_NAME (frvbf,thi) },
28228 { FRVBF_INSN_TC, SEM_FN_NAME (frvbf,tc) },
28229 { FRVBF_INSN_TNC, SEM_FN_NAME (frvbf,tnc) },
28230 { FRVBF_INSN_TN, SEM_FN_NAME (frvbf,tn) },
28231 { FRVBF_INSN_TP, SEM_FN_NAME (frvbf,tp) },
28232 { FRVBF_INSN_TV, SEM_FN_NAME (frvbf,tv) },
28233 { FRVBF_INSN_TNV, SEM_FN_NAME (frvbf,tnv) },
28234 { FRVBF_INSN_FTRA, SEM_FN_NAME (frvbf,ftra) },
28235 { FRVBF_INSN_FTNO, SEM_FN_NAME (frvbf,ftno) },
28236 { FRVBF_INSN_FTNE, SEM_FN_NAME (frvbf,ftne) },
28237 { FRVBF_INSN_FTEQ, SEM_FN_NAME (frvbf,fteq) },
28238 { FRVBF_INSN_FTLG, SEM_FN_NAME (frvbf,ftlg) },
28239 { FRVBF_INSN_FTUE, SEM_FN_NAME (frvbf,ftue) },
28240 { FRVBF_INSN_FTUL, SEM_FN_NAME (frvbf,ftul) },
28241 { FRVBF_INSN_FTGE, SEM_FN_NAME (frvbf,ftge) },
28242 { FRVBF_INSN_FTLT, SEM_FN_NAME (frvbf,ftlt) },
28243 { FRVBF_INSN_FTUGE, SEM_FN_NAME (frvbf,ftuge) },
28244 { FRVBF_INSN_FTUG, SEM_FN_NAME (frvbf,ftug) },
28245 { FRVBF_INSN_FTLE, SEM_FN_NAME (frvbf,ftle) },
28246 { FRVBF_INSN_FTGT, SEM_FN_NAME (frvbf,ftgt) },
28247 { FRVBF_INSN_FTULE, SEM_FN_NAME (frvbf,ftule) },
28248 { FRVBF_INSN_FTU, SEM_FN_NAME (frvbf,ftu) },
28249 { FRVBF_INSN_FTO, SEM_FN_NAME (frvbf,fto) },
28250 { FRVBF_INSN_TIRA, SEM_FN_NAME (frvbf,tira) },
28251 { FRVBF_INSN_TINO, SEM_FN_NAME (frvbf,tino) },
28252 { FRVBF_INSN_TIEQ, SEM_FN_NAME (frvbf,tieq) },
28253 { FRVBF_INSN_TINE, SEM_FN_NAME (frvbf,tine) },
28254 { FRVBF_INSN_TILE, SEM_FN_NAME (frvbf,tile) },
28255 { FRVBF_INSN_TIGT, SEM_FN_NAME (frvbf,tigt) },
28256 { FRVBF_INSN_TILT, SEM_FN_NAME (frvbf,tilt) },
28257 { FRVBF_INSN_TIGE, SEM_FN_NAME (frvbf,tige) },
28258 { FRVBF_INSN_TILS, SEM_FN_NAME (frvbf,tils) },
28259 { FRVBF_INSN_TIHI, SEM_FN_NAME (frvbf,tihi) },
28260 { FRVBF_INSN_TIC, SEM_FN_NAME (frvbf,tic) },
28261 { FRVBF_INSN_TINC, SEM_FN_NAME (frvbf,tinc) },
28262 { FRVBF_INSN_TIN, SEM_FN_NAME (frvbf,tin) },
28263 { FRVBF_INSN_TIP, SEM_FN_NAME (frvbf,tip) },
28264 { FRVBF_INSN_TIV, SEM_FN_NAME (frvbf,tiv) },
28265 { FRVBF_INSN_TINV, SEM_FN_NAME (frvbf,tinv) },
28266 { FRVBF_INSN_FTIRA, SEM_FN_NAME (frvbf,ftira) },
28267 { FRVBF_INSN_FTINO, SEM_FN_NAME (frvbf,ftino) },
28268 { FRVBF_INSN_FTINE, SEM_FN_NAME (frvbf,ftine) },
28269 { FRVBF_INSN_FTIEQ, SEM_FN_NAME (frvbf,ftieq) },
28270 { FRVBF_INSN_FTILG, SEM_FN_NAME (frvbf,ftilg) },
28271 { FRVBF_INSN_FTIUE, SEM_FN_NAME (frvbf,ftiue) },
28272 { FRVBF_INSN_FTIUL, SEM_FN_NAME (frvbf,ftiul) },
28273 { FRVBF_INSN_FTIGE, SEM_FN_NAME (frvbf,ftige) },
28274 { FRVBF_INSN_FTILT, SEM_FN_NAME (frvbf,ftilt) },
28275 { FRVBF_INSN_FTIUGE, SEM_FN_NAME (frvbf,ftiuge) },
28276 { FRVBF_INSN_FTIUG, SEM_FN_NAME (frvbf,ftiug) },
28277 { FRVBF_INSN_FTILE, SEM_FN_NAME (frvbf,ftile) },
28278 { FRVBF_INSN_FTIGT, SEM_FN_NAME (frvbf,ftigt) },
28279 { FRVBF_INSN_FTIULE, SEM_FN_NAME (frvbf,ftiule) },
28280 { FRVBF_INSN_FTIU, SEM_FN_NAME (frvbf,ftiu) },
28281 { FRVBF_INSN_FTIO, SEM_FN_NAME (frvbf,ftio) },
28282 { FRVBF_INSN_BREAK, SEM_FN_NAME (frvbf,break) },
28283 { FRVBF_INSN_MTRAP, SEM_FN_NAME (frvbf,mtrap) },
28284 { FRVBF_INSN_ANDCR, SEM_FN_NAME (frvbf,andcr) },
28285 { FRVBF_INSN_ORCR, SEM_FN_NAME (frvbf,orcr) },
28286 { FRVBF_INSN_XORCR, SEM_FN_NAME (frvbf,xorcr) },
28287 { FRVBF_INSN_NANDCR, SEM_FN_NAME (frvbf,nandcr) },
28288 { FRVBF_INSN_NORCR, SEM_FN_NAME (frvbf,norcr) },
28289 { FRVBF_INSN_ANDNCR, SEM_FN_NAME (frvbf,andncr) },
28290 { FRVBF_INSN_ORNCR, SEM_FN_NAME (frvbf,orncr) },
28291 { FRVBF_INSN_NANDNCR, SEM_FN_NAME (frvbf,nandncr) },
28292 { FRVBF_INSN_NORNCR, SEM_FN_NAME (frvbf,norncr) },
28293 { FRVBF_INSN_NOTCR, SEM_FN_NAME (frvbf,notcr) },
28294 { FRVBF_INSN_CKRA, SEM_FN_NAME (frvbf,ckra) },
28295 { FRVBF_INSN_CKNO, SEM_FN_NAME (frvbf,ckno) },
28296 { FRVBF_INSN_CKEQ, SEM_FN_NAME (frvbf,ckeq) },
28297 { FRVBF_INSN_CKNE, SEM_FN_NAME (frvbf,ckne) },
28298 { FRVBF_INSN_CKLE, SEM_FN_NAME (frvbf,ckle) },
28299 { FRVBF_INSN_CKGT, SEM_FN_NAME (frvbf,ckgt) },
28300 { FRVBF_INSN_CKLT, SEM_FN_NAME (frvbf,cklt) },
28301 { FRVBF_INSN_CKGE, SEM_FN_NAME (frvbf,ckge) },
28302 { FRVBF_INSN_CKLS, SEM_FN_NAME (frvbf,ckls) },
28303 { FRVBF_INSN_CKHI, SEM_FN_NAME (frvbf,ckhi) },
28304 { FRVBF_INSN_CKC, SEM_FN_NAME (frvbf,ckc) },
28305 { FRVBF_INSN_CKNC, SEM_FN_NAME (frvbf,cknc) },
28306 { FRVBF_INSN_CKN, SEM_FN_NAME (frvbf,ckn) },
28307 { FRVBF_INSN_CKP, SEM_FN_NAME (frvbf,ckp) },
28308 { FRVBF_INSN_CKV, SEM_FN_NAME (frvbf,ckv) },
28309 { FRVBF_INSN_CKNV, SEM_FN_NAME (frvbf,cknv) },
28310 { FRVBF_INSN_FCKRA, SEM_FN_NAME (frvbf,fckra) },
28311 { FRVBF_INSN_FCKNO, SEM_FN_NAME (frvbf,fckno) },
28312 { FRVBF_INSN_FCKNE, SEM_FN_NAME (frvbf,fckne) },
28313 { FRVBF_INSN_FCKEQ, SEM_FN_NAME (frvbf,fckeq) },
28314 { FRVBF_INSN_FCKLG, SEM_FN_NAME (frvbf,fcklg) },
28315 { FRVBF_INSN_FCKUE, SEM_FN_NAME (frvbf,fckue) },
28316 { FRVBF_INSN_FCKUL, SEM_FN_NAME (frvbf,fckul) },
28317 { FRVBF_INSN_FCKGE, SEM_FN_NAME (frvbf,fckge) },
28318 { FRVBF_INSN_FCKLT, SEM_FN_NAME (frvbf,fcklt) },
28319 { FRVBF_INSN_FCKUGE, SEM_FN_NAME (frvbf,fckuge) },
28320 { FRVBF_INSN_FCKUG, SEM_FN_NAME (frvbf,fckug) },
28321 { FRVBF_INSN_FCKLE, SEM_FN_NAME (frvbf,fckle) },
28322 { FRVBF_INSN_FCKGT, SEM_FN_NAME (frvbf,fckgt) },
28323 { FRVBF_INSN_FCKULE, SEM_FN_NAME (frvbf,fckule) },
28324 { FRVBF_INSN_FCKU, SEM_FN_NAME (frvbf,fcku) },
28325 { FRVBF_INSN_FCKO, SEM_FN_NAME (frvbf,fcko) },
28326 { FRVBF_INSN_CCKRA, SEM_FN_NAME (frvbf,cckra) },
28327 { FRVBF_INSN_CCKNO, SEM_FN_NAME (frvbf,cckno) },
28328 { FRVBF_INSN_CCKEQ, SEM_FN_NAME (frvbf,cckeq) },
28329 { FRVBF_INSN_CCKNE, SEM_FN_NAME (frvbf,cckne) },
28330 { FRVBF_INSN_CCKLE, SEM_FN_NAME (frvbf,cckle) },
28331 { FRVBF_INSN_CCKGT, SEM_FN_NAME (frvbf,cckgt) },
28332 { FRVBF_INSN_CCKLT, SEM_FN_NAME (frvbf,ccklt) },
28333 { FRVBF_INSN_CCKGE, SEM_FN_NAME (frvbf,cckge) },
28334 { FRVBF_INSN_CCKLS, SEM_FN_NAME (frvbf,cckls) },
28335 { FRVBF_INSN_CCKHI, SEM_FN_NAME (frvbf,cckhi) },
28336 { FRVBF_INSN_CCKC, SEM_FN_NAME (frvbf,cckc) },
28337 { FRVBF_INSN_CCKNC, SEM_FN_NAME (frvbf,ccknc) },
28338 { FRVBF_INSN_CCKN, SEM_FN_NAME (frvbf,cckn) },
28339 { FRVBF_INSN_CCKP, SEM_FN_NAME (frvbf,cckp) },
28340 { FRVBF_INSN_CCKV, SEM_FN_NAME (frvbf,cckv) },
28341 { FRVBF_INSN_CCKNV, SEM_FN_NAME (frvbf,ccknv) },
28342 { FRVBF_INSN_CFCKRA, SEM_FN_NAME (frvbf,cfckra) },
28343 { FRVBF_INSN_CFCKNO, SEM_FN_NAME (frvbf,cfckno) },
28344 { FRVBF_INSN_CFCKNE, SEM_FN_NAME (frvbf,cfckne) },
28345 { FRVBF_INSN_CFCKEQ, SEM_FN_NAME (frvbf,cfckeq) },
28346 { FRVBF_INSN_CFCKLG, SEM_FN_NAME (frvbf,cfcklg) },
28347 { FRVBF_INSN_CFCKUE, SEM_FN_NAME (frvbf,cfckue) },
28348 { FRVBF_INSN_CFCKUL, SEM_FN_NAME (frvbf,cfckul) },
28349 { FRVBF_INSN_CFCKGE, SEM_FN_NAME (frvbf,cfckge) },
28350 { FRVBF_INSN_CFCKLT, SEM_FN_NAME (frvbf,cfcklt) },
28351 { FRVBF_INSN_CFCKUGE, SEM_FN_NAME (frvbf,cfckuge) },
28352 { FRVBF_INSN_CFCKUG, SEM_FN_NAME (frvbf,cfckug) },
28353 { FRVBF_INSN_CFCKLE, SEM_FN_NAME (frvbf,cfckle) },
28354 { FRVBF_INSN_CFCKGT, SEM_FN_NAME (frvbf,cfckgt) },
28355 { FRVBF_INSN_CFCKULE, SEM_FN_NAME (frvbf,cfckule) },
28356 { FRVBF_INSN_CFCKU, SEM_FN_NAME (frvbf,cfcku) },
28357 { FRVBF_INSN_CFCKO, SEM_FN_NAME (frvbf,cfcko) },
28358 { FRVBF_INSN_CJMPL, SEM_FN_NAME (frvbf,cjmpl) },
28359 { FRVBF_INSN_CCALLL, SEM_FN_NAME (frvbf,ccalll) },
28360 { FRVBF_INSN_ICI, SEM_FN_NAME (frvbf,ici) },
28361 { FRVBF_INSN_DCI, SEM_FN_NAME (frvbf,dci) },
28362 { FRVBF_INSN_ICEI, SEM_FN_NAME (frvbf,icei) },
28363 { FRVBF_INSN_DCEI, SEM_FN_NAME (frvbf,dcei) },
28364 { FRVBF_INSN_DCF, SEM_FN_NAME (frvbf,dcf) },
28365 { FRVBF_INSN_DCEF, SEM_FN_NAME (frvbf,dcef) },
28366 { FRVBF_INSN_WITLB, SEM_FN_NAME (frvbf,witlb) },
28367 { FRVBF_INSN_WDTLB, SEM_FN_NAME (frvbf,wdtlb) },
28368 { FRVBF_INSN_ITLBI, SEM_FN_NAME (frvbf,itlbi) },
28369 { FRVBF_INSN_DTLBI, SEM_FN_NAME (frvbf,dtlbi) },
28370 { FRVBF_INSN_ICPL, SEM_FN_NAME (frvbf,icpl) },
28371 { FRVBF_INSN_DCPL, SEM_FN_NAME (frvbf,dcpl) },
28372 { FRVBF_INSN_ICUL, SEM_FN_NAME (frvbf,icul) },
28373 { FRVBF_INSN_DCUL, SEM_FN_NAME (frvbf,dcul) },
28374 { FRVBF_INSN_BAR, SEM_FN_NAME (frvbf,bar) },
28375 { FRVBF_INSN_MEMBAR, SEM_FN_NAME (frvbf,membar) },
28376 { FRVBF_INSN_COP1, SEM_FN_NAME (frvbf,cop1) },
28377 { FRVBF_INSN_COP2, SEM_FN_NAME (frvbf,cop2) },
28378 { FRVBF_INSN_CLRGR, SEM_FN_NAME (frvbf,clrgr) },
28379 { FRVBF_INSN_CLRFR, SEM_FN_NAME (frvbf,clrfr) },
28380 { FRVBF_INSN_CLRGA, SEM_FN_NAME (frvbf,clrga) },
28381 { FRVBF_INSN_CLRFA, SEM_FN_NAME (frvbf,clrfa) },
28382 { FRVBF_INSN_COMMITGR, SEM_FN_NAME (frvbf,commitgr) },
28383 { FRVBF_INSN_COMMITFR, SEM_FN_NAME (frvbf,commitfr) },
28384 { FRVBF_INSN_COMMITGA, SEM_FN_NAME (frvbf,commitga) },
28385 { FRVBF_INSN_COMMITFA, SEM_FN_NAME (frvbf,commitfa) },
28386 { FRVBF_INSN_FITOS, SEM_FN_NAME (frvbf,fitos) },
28387 { FRVBF_INSN_FSTOI, SEM_FN_NAME (frvbf,fstoi) },
28388 { FRVBF_INSN_FITOD, SEM_FN_NAME (frvbf,fitod) },
28389 { FRVBF_INSN_FDTOI, SEM_FN_NAME (frvbf,fdtoi) },
28390 { FRVBF_INSN_FDITOS, SEM_FN_NAME (frvbf,fditos) },
28391 { FRVBF_INSN_FDSTOI, SEM_FN_NAME (frvbf,fdstoi) },
28392 { FRVBF_INSN_NFDITOS, SEM_FN_NAME (frvbf,nfditos) },
28393 { FRVBF_INSN_NFDSTOI, SEM_FN_NAME (frvbf,nfdstoi) },
28394 { FRVBF_INSN_CFITOS, SEM_FN_NAME (frvbf,cfitos) },
28395 { FRVBF_INSN_CFSTOI, SEM_FN_NAME (frvbf,cfstoi) },
28396 { FRVBF_INSN_NFITOS, SEM_FN_NAME (frvbf,nfitos) },
28397 { FRVBF_INSN_NFSTOI, SEM_FN_NAME (frvbf,nfstoi) },
28398 { FRVBF_INSN_FMOVS, SEM_FN_NAME (frvbf,fmovs) },
28399 { FRVBF_INSN_FMOVD, SEM_FN_NAME (frvbf,fmovd) },
28400 { FRVBF_INSN_FDMOVS, SEM_FN_NAME (frvbf,fdmovs) },
28401 { FRVBF_INSN_CFMOVS, SEM_FN_NAME (frvbf,cfmovs) },
28402 { FRVBF_INSN_FNEGS, SEM_FN_NAME (frvbf,fnegs) },
28403 { FRVBF_INSN_FNEGD, SEM_FN_NAME (frvbf,fnegd) },
28404 { FRVBF_INSN_FDNEGS, SEM_FN_NAME (frvbf,fdnegs) },
28405 { FRVBF_INSN_CFNEGS, SEM_FN_NAME (frvbf,cfnegs) },
28406 { FRVBF_INSN_FABSS, SEM_FN_NAME (frvbf,fabss) },
28407 { FRVBF_INSN_FABSD, SEM_FN_NAME (frvbf,fabsd) },
28408 { FRVBF_INSN_FDABSS, SEM_FN_NAME (frvbf,fdabss) },
28409 { FRVBF_INSN_CFABSS, SEM_FN_NAME (frvbf,cfabss) },
28410 { FRVBF_INSN_FSQRTS, SEM_FN_NAME (frvbf,fsqrts) },
28411 { FRVBF_INSN_FDSQRTS, SEM_FN_NAME (frvbf,fdsqrts) },
28412 { FRVBF_INSN_NFDSQRTS, SEM_FN_NAME (frvbf,nfdsqrts) },
28413 { FRVBF_INSN_FSQRTD, SEM_FN_NAME (frvbf,fsqrtd) },
28414 { FRVBF_INSN_CFSQRTS, SEM_FN_NAME (frvbf,cfsqrts) },
28415 { FRVBF_INSN_NFSQRTS, SEM_FN_NAME (frvbf,nfsqrts) },
28416 { FRVBF_INSN_FADDS, SEM_FN_NAME (frvbf,fadds) },
28417 { FRVBF_INSN_FSUBS, SEM_FN_NAME (frvbf,fsubs) },
28418 { FRVBF_INSN_FMULS, SEM_FN_NAME (frvbf,fmuls) },
28419 { FRVBF_INSN_FDIVS, SEM_FN_NAME (frvbf,fdivs) },
28420 { FRVBF_INSN_FADDD, SEM_FN_NAME (frvbf,faddd) },
28421 { FRVBF_INSN_FSUBD, SEM_FN_NAME (frvbf,fsubd) },
28422 { FRVBF_INSN_FMULD, SEM_FN_NAME (frvbf,fmuld) },
28423 { FRVBF_INSN_FDIVD, SEM_FN_NAME (frvbf,fdivd) },
28424 { FRVBF_INSN_CFADDS, SEM_FN_NAME (frvbf,cfadds) },
28425 { FRVBF_INSN_CFSUBS, SEM_FN_NAME (frvbf,cfsubs) },
28426 { FRVBF_INSN_CFMULS, SEM_FN_NAME (frvbf,cfmuls) },
28427 { FRVBF_INSN_CFDIVS, SEM_FN_NAME (frvbf,cfdivs) },
28428 { FRVBF_INSN_NFADDS, SEM_FN_NAME (frvbf,nfadds) },
28429 { FRVBF_INSN_NFSUBS, SEM_FN_NAME (frvbf,nfsubs) },
28430 { FRVBF_INSN_NFMULS, SEM_FN_NAME (frvbf,nfmuls) },
28431 { FRVBF_INSN_NFDIVS, SEM_FN_NAME (frvbf,nfdivs) },
28432 { FRVBF_INSN_FCMPS, SEM_FN_NAME (frvbf,fcmps) },
28433 { FRVBF_INSN_FCMPD, SEM_FN_NAME (frvbf,fcmpd) },
28434 { FRVBF_INSN_CFCMPS, SEM_FN_NAME (frvbf,cfcmps) },
28435 { FRVBF_INSN_FDCMPS, SEM_FN_NAME (frvbf,fdcmps) },
28436 { FRVBF_INSN_FMADDS, SEM_FN_NAME (frvbf,fmadds) },
28437 { FRVBF_INSN_FMSUBS, SEM_FN_NAME (frvbf,fmsubs) },
28438 { FRVBF_INSN_FMADDD, SEM_FN_NAME (frvbf,fmaddd) },
28439 { FRVBF_INSN_FMSUBD, SEM_FN_NAME (frvbf,fmsubd) },
28440 { FRVBF_INSN_FDMADDS, SEM_FN_NAME (frvbf,fdmadds) },
28441 { FRVBF_INSN_NFDMADDS, SEM_FN_NAME (frvbf,nfdmadds) },
28442 { FRVBF_INSN_CFMADDS, SEM_FN_NAME (frvbf,cfmadds) },
28443 { FRVBF_INSN_CFMSUBS, SEM_FN_NAME (frvbf,cfmsubs) },
28444 { FRVBF_INSN_NFMADDS, SEM_FN_NAME (frvbf,nfmadds) },
28445 { FRVBF_INSN_NFMSUBS, SEM_FN_NAME (frvbf,nfmsubs) },
28446 { FRVBF_INSN_FMAS, SEM_FN_NAME (frvbf,fmas) },
28447 { FRVBF_INSN_FMSS, SEM_FN_NAME (frvbf,fmss) },
28448 { FRVBF_INSN_FDMAS, SEM_FN_NAME (frvbf,fdmas) },
28449 { FRVBF_INSN_FDMSS, SEM_FN_NAME (frvbf,fdmss) },
28450 { FRVBF_INSN_NFDMAS, SEM_FN_NAME (frvbf,nfdmas) },
28451 { FRVBF_INSN_NFDMSS, SEM_FN_NAME (frvbf,nfdmss) },
28452 { FRVBF_INSN_CFMAS, SEM_FN_NAME (frvbf,cfmas) },
28453 { FRVBF_INSN_CFMSS, SEM_FN_NAME (frvbf,cfmss) },
28454 { FRVBF_INSN_FMAD, SEM_FN_NAME (frvbf,fmad) },
28455 { FRVBF_INSN_FMSD, SEM_FN_NAME (frvbf,fmsd) },
28456 { FRVBF_INSN_NFMAS, SEM_FN_NAME (frvbf,nfmas) },
28457 { FRVBF_INSN_NFMSS, SEM_FN_NAME (frvbf,nfmss) },
28458 { FRVBF_INSN_FDADDS, SEM_FN_NAME (frvbf,fdadds) },
28459 { FRVBF_INSN_FDSUBS, SEM_FN_NAME (frvbf,fdsubs) },
28460 { FRVBF_INSN_FDMULS, SEM_FN_NAME (frvbf,fdmuls) },
28461 { FRVBF_INSN_FDDIVS, SEM_FN_NAME (frvbf,fddivs) },
28462 { FRVBF_INSN_FDSADS, SEM_FN_NAME (frvbf,fdsads) },
28463 { FRVBF_INSN_FDMULCS, SEM_FN_NAME (frvbf,fdmulcs) },
28464 { FRVBF_INSN_NFDMULCS, SEM_FN_NAME (frvbf,nfdmulcs) },
28465 { FRVBF_INSN_NFDADDS, SEM_FN_NAME (frvbf,nfdadds) },
28466 { FRVBF_INSN_NFDSUBS, SEM_FN_NAME (frvbf,nfdsubs) },
28467 { FRVBF_INSN_NFDMULS, SEM_FN_NAME (frvbf,nfdmuls) },
28468 { FRVBF_INSN_NFDDIVS, SEM_FN_NAME (frvbf,nfddivs) },
28469 { FRVBF_INSN_NFDSADS, SEM_FN_NAME (frvbf,nfdsads) },
28470 { FRVBF_INSN_NFDCMPS, SEM_FN_NAME (frvbf,nfdcmps) },
28471 { FRVBF_INSN_MHSETLOS, SEM_FN_NAME (frvbf,mhsetlos) },
28472 { FRVBF_INSN_MHSETHIS, SEM_FN_NAME (frvbf,mhsethis) },
28473 { FRVBF_INSN_MHDSETS, SEM_FN_NAME (frvbf,mhdsets) },
28474 { FRVBF_INSN_MHSETLOH, SEM_FN_NAME (frvbf,mhsetloh) },
28475 { FRVBF_INSN_MHSETHIH, SEM_FN_NAME (frvbf,mhsethih) },
28476 { FRVBF_INSN_MHDSETH, SEM_FN_NAME (frvbf,mhdseth) },
28477 { FRVBF_INSN_MAND, SEM_FN_NAME (frvbf,mand) },
28478 { FRVBF_INSN_MOR, SEM_FN_NAME (frvbf,mor) },
28479 { FRVBF_INSN_MXOR, SEM_FN_NAME (frvbf,mxor) },
28480 { FRVBF_INSN_CMAND, SEM_FN_NAME (frvbf,cmand) },
28481 { FRVBF_INSN_CMOR, SEM_FN_NAME (frvbf,cmor) },
28482 { FRVBF_INSN_CMXOR, SEM_FN_NAME (frvbf,cmxor) },
28483 { FRVBF_INSN_MNOT, SEM_FN_NAME (frvbf,mnot) },
28484 { FRVBF_INSN_CMNOT, SEM_FN_NAME (frvbf,cmnot) },
28485 { FRVBF_INSN_MROTLI, SEM_FN_NAME (frvbf,mrotli) },
28486 { FRVBF_INSN_MROTRI, SEM_FN_NAME (frvbf,mrotri) },
28487 { FRVBF_INSN_MWCUT, SEM_FN_NAME (frvbf,mwcut) },
28488 { FRVBF_INSN_MWCUTI, SEM_FN_NAME (frvbf,mwcuti) },
28489 { FRVBF_INSN_MCUT, SEM_FN_NAME (frvbf,mcut) },
28490 { FRVBF_INSN_MCUTI, SEM_FN_NAME (frvbf,mcuti) },
28491 { FRVBF_INSN_MCUTSS, SEM_FN_NAME (frvbf,mcutss) },
28492 { FRVBF_INSN_MCUTSSI, SEM_FN_NAME (frvbf,mcutssi) },
28493 { FRVBF_INSN_MDCUTSSI, SEM_FN_NAME (frvbf,mdcutssi) },
28494 { FRVBF_INSN_MAVEH, SEM_FN_NAME (frvbf,maveh) },
28495 { FRVBF_INSN_MSLLHI, SEM_FN_NAME (frvbf,msllhi) },
28496 { FRVBF_INSN_MSRLHI, SEM_FN_NAME (frvbf,msrlhi) },
28497 { FRVBF_INSN_MSRAHI, SEM_FN_NAME (frvbf,msrahi) },
28498 { FRVBF_INSN_MDROTLI, SEM_FN_NAME (frvbf,mdrotli) },
28499 { FRVBF_INSN_MCPLHI, SEM_FN_NAME (frvbf,mcplhi) },
28500 { FRVBF_INSN_MCPLI, SEM_FN_NAME (frvbf,mcpli) },
28501 { FRVBF_INSN_MSATHS, SEM_FN_NAME (frvbf,msaths) },
28502 { FRVBF_INSN_MQSATHS, SEM_FN_NAME (frvbf,mqsaths) },
28503 { FRVBF_INSN_MSATHU, SEM_FN_NAME (frvbf,msathu) },
28504 { FRVBF_INSN_MCMPSH, SEM_FN_NAME (frvbf,mcmpsh) },
28505 { FRVBF_INSN_MCMPUH, SEM_FN_NAME (frvbf,mcmpuh) },
28506 { FRVBF_INSN_MABSHS, SEM_FN_NAME (frvbf,mabshs) },
28507 { FRVBF_INSN_MADDHSS, SEM_FN_NAME (frvbf,maddhss) },
28508 { FRVBF_INSN_MADDHUS, SEM_FN_NAME (frvbf,maddhus) },
28509 { FRVBF_INSN_MSUBHSS, SEM_FN_NAME (frvbf,msubhss) },
28510 { FRVBF_INSN_MSUBHUS, SEM_FN_NAME (frvbf,msubhus) },
28511 { FRVBF_INSN_CMADDHSS, SEM_FN_NAME (frvbf,cmaddhss) },
28512 { FRVBF_INSN_CMADDHUS, SEM_FN_NAME (frvbf,cmaddhus) },
28513 { FRVBF_INSN_CMSUBHSS, SEM_FN_NAME (frvbf,cmsubhss) },
28514 { FRVBF_INSN_CMSUBHUS, SEM_FN_NAME (frvbf,cmsubhus) },
28515 { FRVBF_INSN_MQADDHSS, SEM_FN_NAME (frvbf,mqaddhss) },
28516 { FRVBF_INSN_MQADDHUS, SEM_FN_NAME (frvbf,mqaddhus) },
28517 { FRVBF_INSN_MQSUBHSS, SEM_FN_NAME (frvbf,mqsubhss) },
28518 { FRVBF_INSN_MQSUBHUS, SEM_FN_NAME (frvbf,mqsubhus) },
28519 { FRVBF_INSN_CMQADDHSS, SEM_FN_NAME (frvbf,cmqaddhss) },
28520 { FRVBF_INSN_CMQADDHUS, SEM_FN_NAME (frvbf,cmqaddhus) },
28521 { FRVBF_INSN_CMQSUBHSS, SEM_FN_NAME (frvbf,cmqsubhss) },
28522 { FRVBF_INSN_CMQSUBHUS, SEM_FN_NAME (frvbf,cmqsubhus) },
28523 { FRVBF_INSN_MADDACCS, SEM_FN_NAME (frvbf,maddaccs) },
28524 { FRVBF_INSN_MSUBACCS, SEM_FN_NAME (frvbf,msubaccs) },
28525 { FRVBF_INSN_MDADDACCS, SEM_FN_NAME (frvbf,mdaddaccs) },
28526 { FRVBF_INSN_MDSUBACCS, SEM_FN_NAME (frvbf,mdsubaccs) },
28527 { FRVBF_INSN_MASACCS, SEM_FN_NAME (frvbf,masaccs) },
28528 { FRVBF_INSN_MDASACCS, SEM_FN_NAME (frvbf,mdasaccs) },
28529 { FRVBF_INSN_MMULHS, SEM_FN_NAME (frvbf,mmulhs) },
28530 { FRVBF_INSN_MMULHU, SEM_FN_NAME (frvbf,mmulhu) },
28531 { FRVBF_INSN_MMULXHS, SEM_FN_NAME (frvbf,mmulxhs) },
28532 { FRVBF_INSN_MMULXHU, SEM_FN_NAME (frvbf,mmulxhu) },
28533 { FRVBF_INSN_CMMULHS, SEM_FN_NAME (frvbf,cmmulhs) },
28534 { FRVBF_INSN_CMMULHU, SEM_FN_NAME (frvbf,cmmulhu) },
28535 { FRVBF_INSN_MQMULHS, SEM_FN_NAME (frvbf,mqmulhs) },
28536 { FRVBF_INSN_MQMULHU, SEM_FN_NAME (frvbf,mqmulhu) },
28537 { FRVBF_INSN_MQMULXHS, SEM_FN_NAME (frvbf,mqmulxhs) },
28538 { FRVBF_INSN_MQMULXHU, SEM_FN_NAME (frvbf,mqmulxhu) },
28539 { FRVBF_INSN_CMQMULHS, SEM_FN_NAME (frvbf,cmqmulhs) },
28540 { FRVBF_INSN_CMQMULHU, SEM_FN_NAME (frvbf,cmqmulhu) },
28541 { FRVBF_INSN_MMACHS, SEM_FN_NAME (frvbf,mmachs) },
28542 { FRVBF_INSN_MMACHU, SEM_FN_NAME (frvbf,mmachu) },
28543 { FRVBF_INSN_MMRDHS, SEM_FN_NAME (frvbf,mmrdhs) },
28544 { FRVBF_INSN_MMRDHU, SEM_FN_NAME (frvbf,mmrdhu) },
28545 { FRVBF_INSN_CMMACHS, SEM_FN_NAME (frvbf,cmmachs) },
28546 { FRVBF_INSN_CMMACHU, SEM_FN_NAME (frvbf,cmmachu) },
28547 { FRVBF_INSN_MQMACHS, SEM_FN_NAME (frvbf,mqmachs) },
28548 { FRVBF_INSN_MQMACHU, SEM_FN_NAME (frvbf,mqmachu) },
28549 { FRVBF_INSN_CMQMACHS, SEM_FN_NAME (frvbf,cmqmachs) },
28550 { FRVBF_INSN_CMQMACHU, SEM_FN_NAME (frvbf,cmqmachu) },
28551 { FRVBF_INSN_MQXMACHS, SEM_FN_NAME (frvbf,mqxmachs) },
28552 { FRVBF_INSN_MQXMACXHS, SEM_FN_NAME (frvbf,mqxmacxhs) },
28553 { FRVBF_INSN_MQMACXHS, SEM_FN_NAME (frvbf,mqmacxhs) },
28554 { FRVBF_INSN_MCPXRS, SEM_FN_NAME (frvbf,mcpxrs) },
28555 { FRVBF_INSN_MCPXRU, SEM_FN_NAME (frvbf,mcpxru) },
28556 { FRVBF_INSN_MCPXIS, SEM_FN_NAME (frvbf,mcpxis) },
28557 { FRVBF_INSN_MCPXIU, SEM_FN_NAME (frvbf,mcpxiu) },
28558 { FRVBF_INSN_CMCPXRS, SEM_FN_NAME (frvbf,cmcpxrs) },
28559 { FRVBF_INSN_CMCPXRU, SEM_FN_NAME (frvbf,cmcpxru) },
28560 { FRVBF_INSN_CMCPXIS, SEM_FN_NAME (frvbf,cmcpxis) },
28561 { FRVBF_INSN_CMCPXIU, SEM_FN_NAME (frvbf,cmcpxiu) },
28562 { FRVBF_INSN_MQCPXRS, SEM_FN_NAME (frvbf,mqcpxrs) },
28563 { FRVBF_INSN_MQCPXRU, SEM_FN_NAME (frvbf,mqcpxru) },
28564 { FRVBF_INSN_MQCPXIS, SEM_FN_NAME (frvbf,mqcpxis) },
28565 { FRVBF_INSN_MQCPXIU, SEM_FN_NAME (frvbf,mqcpxiu) },
28566 { FRVBF_INSN_MEXPDHW, SEM_FN_NAME (frvbf,mexpdhw) },
28567 { FRVBF_INSN_CMEXPDHW, SEM_FN_NAME (frvbf,cmexpdhw) },
28568 { FRVBF_INSN_MEXPDHD, SEM_FN_NAME (frvbf,mexpdhd) },
28569 { FRVBF_INSN_CMEXPDHD, SEM_FN_NAME (frvbf,cmexpdhd) },
28570 { FRVBF_INSN_MPACKH, SEM_FN_NAME (frvbf,mpackh) },
28571 { FRVBF_INSN_MDPACKH, SEM_FN_NAME (frvbf,mdpackh) },
28572 { FRVBF_INSN_MUNPACKH, SEM_FN_NAME (frvbf,munpackh) },
28573 { FRVBF_INSN_MDUNPACKH, SEM_FN_NAME (frvbf,mdunpackh) },
28574 { FRVBF_INSN_MBTOH, SEM_FN_NAME (frvbf,mbtoh) },
28575 { FRVBF_INSN_CMBTOH, SEM_FN_NAME (frvbf,cmbtoh) },
28576 { FRVBF_INSN_MHTOB, SEM_FN_NAME (frvbf,mhtob) },
28577 { FRVBF_INSN_CMHTOB, SEM_FN_NAME (frvbf,cmhtob) },
28578 { FRVBF_INSN_MBTOHE, SEM_FN_NAME (frvbf,mbtohe) },
28579 { FRVBF_INSN_CMBTOHE, SEM_FN_NAME (frvbf,cmbtohe) },
28580 { FRVBF_INSN_MNOP, SEM_FN_NAME (frvbf,mnop) },
28581 { FRVBF_INSN_MCLRACC_0, SEM_FN_NAME (frvbf,mclracc_0) },
28582 { FRVBF_INSN_MCLRACC_1, SEM_FN_NAME (frvbf,mclracc_1) },
28583 { FRVBF_INSN_MRDACC, SEM_FN_NAME (frvbf,mrdacc) },
28584 { FRVBF_INSN_MRDACCG, SEM_FN_NAME (frvbf,mrdaccg) },
28585 { FRVBF_INSN_MWTACC, SEM_FN_NAME (frvbf,mwtacc) },
28586 { FRVBF_INSN_MWTACCG, SEM_FN_NAME (frvbf,mwtaccg) },
28587 { FRVBF_INSN_MCOP1, SEM_FN_NAME (frvbf,mcop1) },
28588 { FRVBF_INSN_MCOP2, SEM_FN_NAME (frvbf,mcop2) },
28589 { FRVBF_INSN_FNOP, SEM_FN_NAME (frvbf,fnop) },
28593 /* Add the semantic fns to IDESC_TABLE. */
28596 SEM_FN_NAME (frvbf,init_idesc_table) (SIM_CPU *current_cpu)
28598 IDESC *idesc_table = CPU_IDESC (current_cpu);
28599 const struct sem_fn_desc *sf;
28600 int mach_num = MACH_NUM (CPU_MACH (current_cpu));
28602 for (sf = &sem_fns[0]; sf->fn != 0; ++sf)
28604 const CGEN_INSN *insn = idesc_table[sf->index].idata;
28605 int valid_p = (CGEN_INSN_VIRTUAL_P (insn)
28606 || CGEN_INSN_MACH_HAS_P (insn, mach_num));
28609 idesc_table[sf->index].sem_fast = sf->fn;
28611 idesc_table[sf->index].sem_fast = SEM_FN_NAME (frvbf,x_invalid);
28614 idesc_table[sf->index].sem_full = sf->fn;
28616 idesc_table[sf->index].sem_full = SEM_FN_NAME (frvbf,x_invalid);