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 /* nldqfi: nldqfi$pack @($GRi,$d12),$FRintk */
5323 SEM_FN_NAME (frvbf,nldqfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5325 #define FLD(f) abuf->fields.sfmt_stdfi.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_FRk), FLD (f_d12), 6, 1);
5338 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
5339 frvbf_load_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
5349 /* stb: stb$pack $GRk,@($GRi,$GRj) */
5352 SEM_FN_NAME (frvbf,stb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5354 #define FLD(f) abuf->fields.sfmt_cswap.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);
5360 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)));
5366 /* sth: sth$pack $GRk,@($GRi,$GRj) */
5369 SEM_FN_NAME (frvbf,sth) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5371 #define FLD(f) abuf->fields.sfmt_cswap.f
5372 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5373 int UNUSED written = 0;
5374 IADDR UNUSED pc = abuf->addr;
5375 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5377 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)));
5383 /* st: st$pack $GRk,@($GRi,$GRj) */
5386 SEM_FN_NAME (frvbf,st) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5388 #define FLD(f) abuf->fields.sfmt_cswap.f
5389 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5390 int UNUSED written = 0;
5391 IADDR UNUSED pc = abuf->addr;
5392 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5394 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)));
5400 /* stbf: stbf$pack $FRintk,@($GRi,$GRj) */
5403 SEM_FN_NAME (frvbf,stbf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5405 #define FLD(f) abuf->fields.sfmt_cstbfu.f
5406 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5407 int UNUSED written = 0;
5408 IADDR UNUSED pc = abuf->addr;
5409 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5411 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)));
5417 /* sthf: sthf$pack $FRintk,@($GRi,$GRj) */
5420 SEM_FN_NAME (frvbf,sthf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5422 #define FLD(f) abuf->fields.sfmt_cstbfu.f
5423 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5424 int UNUSED written = 0;
5425 IADDR UNUSED pc = abuf->addr;
5426 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5428 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)));
5434 /* stf: stf$pack $FRintk,@($GRi,$GRj) */
5437 SEM_FN_NAME (frvbf,stf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5439 #define FLD(f) abuf->fields.sfmt_cstbfu.f
5440 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5441 int UNUSED written = 0;
5442 IADDR UNUSED pc = abuf->addr;
5443 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5445 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)));
5451 /* stc: stc$pack $CPRk,@($GRi,$GRj) */
5454 SEM_FN_NAME (frvbf,stc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5456 #define FLD(f) abuf->fields.sfmt_stcu.f
5457 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5458 int UNUSED written = 0;
5459 IADDR UNUSED pc = abuf->addr;
5460 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5462 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)]));
5468 /* rstb: rstb$pack $GRk,@($GRi,$GRj) */
5471 SEM_FN_NAME (frvbf,rstb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5473 #define FLD(f) abuf->fields.sfmt_cswap.f
5474 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5475 int UNUSED written = 0;
5476 IADDR UNUSED pc = abuf->addr;
5477 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5481 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5482 frvbf_write_mem_QI (current_cpu, pc, tmp_address, GET_H_GR (FLD (f_GRk)));
5483 frvbf_check_recovering_store (current_cpu, tmp_address, FLD (f_GRk), 1, 0);
5490 /* rsth: rsth$pack $GRk,@($GRi,$GRj) */
5493 SEM_FN_NAME (frvbf,rsth) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5495 #define FLD(f) abuf->fields.sfmt_cswap.f
5496 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5497 int UNUSED written = 0;
5498 IADDR UNUSED pc = abuf->addr;
5499 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5503 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5504 frvbf_write_mem_HI (current_cpu, pc, tmp_address, GET_H_GR (FLD (f_GRk)));
5505 frvbf_check_recovering_store (current_cpu, tmp_address, FLD (f_GRk), 2, 0);
5512 /* rst: rst$pack $GRk,@($GRi,$GRj) */
5515 SEM_FN_NAME (frvbf,rst) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5517 #define FLD(f) abuf->fields.sfmt_cswap.f
5518 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5519 int UNUSED written = 0;
5520 IADDR UNUSED pc = abuf->addr;
5521 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5525 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5526 frvbf_write_mem_SI (current_cpu, pc, tmp_address, GET_H_GR (FLD (f_GRk)));
5527 frvbf_check_recovering_store (current_cpu, tmp_address, FLD (f_GRk), 4, 0);
5534 /* rstbf: rstbf$pack $FRintk,@($GRi,$GRj) */
5537 SEM_FN_NAME (frvbf,rstbf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5539 #define FLD(f) abuf->fields.sfmt_cstbfu.f
5540 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5541 int UNUSED written = 0;
5542 IADDR UNUSED pc = abuf->addr;
5543 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5547 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5548 frvbf_write_mem_QI (current_cpu, pc, tmp_address, GET_H_FR_INT (FLD (f_FRk)));
5549 frvbf_check_recovering_store (current_cpu, tmp_address, FLD (f_FRk), 1, 1);
5556 /* rsthf: rsthf$pack $FRintk,@($GRi,$GRj) */
5559 SEM_FN_NAME (frvbf,rsthf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5561 #define FLD(f) abuf->fields.sfmt_cstbfu.f
5562 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5563 int UNUSED written = 0;
5564 IADDR UNUSED pc = abuf->addr;
5565 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5569 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5570 frvbf_write_mem_HI (current_cpu, pc, tmp_address, GET_H_FR_INT (FLD (f_FRk)));
5571 frvbf_check_recovering_store (current_cpu, tmp_address, FLD (f_FRk), 2, 1);
5578 /* rstf: rstf$pack $FRintk,@($GRi,$GRj) */
5581 SEM_FN_NAME (frvbf,rstf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5583 #define FLD(f) abuf->fields.sfmt_cstbfu.f
5584 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5585 int UNUSED written = 0;
5586 IADDR UNUSED pc = abuf->addr;
5587 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5591 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5592 frvbf_write_mem_SI (current_cpu, pc, tmp_address, GET_H_FR_INT (FLD (f_FRk)));
5593 frvbf_check_recovering_store (current_cpu, tmp_address, FLD (f_FRk), 4, 1);
5600 /* std: std$pack $GRk,@($GRi,$GRj) */
5603 SEM_FN_NAME (frvbf,std) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5605 #define FLD(f) abuf->fields.sfmt_cstdu.f
5606 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5607 int UNUSED written = 0;
5608 IADDR UNUSED pc = abuf->addr;
5609 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5614 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5615 frvbf_write_mem_DI (current_cpu, pc, tmp_address, GET_H_GR_DOUBLE (FLD (f_GRk)));
5623 /* stdf: stdf$pack $FRk,@($GRi,$GRj) */
5626 SEM_FN_NAME (frvbf,stdf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5628 #define FLD(f) abuf->fields.sfmt_cstdfu.f
5629 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5630 int UNUSED written = 0;
5631 IADDR UNUSED pc = abuf->addr;
5632 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5637 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5638 frvbf_write_mem_DF (current_cpu, pc, tmp_address, GET_H_FR_DOUBLE (FLD (f_FRk)));
5646 /* stdc: stdc$pack $CPRk,@($GRi,$GRj) */
5649 SEM_FN_NAME (frvbf,stdc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5651 #define FLD(f) abuf->fields.sfmt_stdcu.f
5652 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5653 int UNUSED written = 0;
5654 IADDR UNUSED pc = abuf->addr;
5655 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5660 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5661 frvbf_write_mem_DI (current_cpu, pc, tmp_address, GET_H_CPR_DOUBLE (FLD (f_CPRk)));
5669 /* rstd: rstd$pack $GRk,@($GRi,$GRj) */
5672 SEM_FN_NAME (frvbf,rstd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5674 #define FLD(f) abuf->fields.sfmt_cstdu.f
5675 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5676 int UNUSED written = 0;
5677 IADDR UNUSED pc = abuf->addr;
5678 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5683 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5684 frvbf_write_mem_DI (current_cpu, pc, tmp_address, GET_H_GR_DOUBLE (FLD (f_GRk)));
5686 frvbf_check_recovering_store (current_cpu, tmp_address, FLD (f_GRk), 8, 0);
5693 /* rstdf: rstdf$pack $FRk,@($GRi,$GRj) */
5696 SEM_FN_NAME (frvbf,rstdf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5698 #define FLD(f) abuf->fields.sfmt_cstdfu.f
5699 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5700 int UNUSED written = 0;
5701 IADDR UNUSED pc = abuf->addr;
5702 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5707 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5708 frvbf_write_mem_DF (current_cpu, pc, tmp_address, GET_H_FR_DOUBLE (FLD (f_FRk)));
5710 frvbf_check_recovering_store (current_cpu, tmp_address, FLD (f_FRk), 8, 1);
5717 /* stq: stq$pack $GRk,@($GRi,$GRj) */
5720 SEM_FN_NAME (frvbf,stq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5722 #define FLD(f) abuf->fields.sfmt_smulcc.f
5723 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5724 int UNUSED written = 0;
5725 IADDR UNUSED pc = abuf->addr;
5726 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5731 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5732 frvbf_store_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
5740 /* stqf: stqf$pack $FRintk,@($GRi,$GRj) */
5743 SEM_FN_NAME (frvbf,stqf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5745 #define FLD(f) abuf->fields.sfmt_cstdfu.f
5746 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5747 int UNUSED written = 0;
5748 IADDR UNUSED pc = abuf->addr;
5749 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5754 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5755 frvbf_store_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
5763 /* stqc: stqc$pack $CPRk,@($GRi,$GRj) */
5766 SEM_FN_NAME (frvbf,stqc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5768 #define FLD(f) abuf->fields.sfmt_stdcu.f
5769 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5770 int UNUSED written = 0;
5771 IADDR UNUSED pc = abuf->addr;
5772 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5777 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5778 frvbf_store_quad_CPR (current_cpu, pc, tmp_address, FLD (f_CPRk));
5786 /* rstq: rstq$pack $GRk,@($GRi,$GRj) */
5789 SEM_FN_NAME (frvbf,rstq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5791 #define FLD(f) abuf->fields.sfmt_smulcc.f
5792 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5793 int UNUSED written = 0;
5794 IADDR UNUSED pc = abuf->addr;
5795 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5800 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5801 frvbf_store_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
5803 frvbf_check_recovering_store (current_cpu, tmp_address, FLD (f_GRk), 16, 0);
5810 /* rstqf: rstqf$pack $FRintk,@($GRi,$GRj) */
5813 SEM_FN_NAME (frvbf,rstqf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5815 #define FLD(f) abuf->fields.sfmt_cstdfu.f
5816 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5817 int UNUSED written = 0;
5818 IADDR UNUSED pc = abuf->addr;
5819 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5824 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5825 frvbf_store_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
5827 frvbf_check_recovering_store (current_cpu, tmp_address, FLD (f_FRk), 16, 1);
5834 /* stbu: stbu$pack $GRk,@($GRi,$GRj) */
5837 SEM_FN_NAME (frvbf,stbu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5839 #define FLD(f) abuf->fields.sfmt_cstbu.f
5840 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5841 int UNUSED written = 0;
5842 IADDR UNUSED pc = abuf->addr;
5843 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5847 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5848 frvbf_write_mem_QI (current_cpu, pc, tmp_address, GET_H_GR (FLD (f_GRk)));
5850 SI opval = tmp_address;
5851 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
5852 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5860 /* sthu: sthu$pack $GRk,@($GRi,$GRj) */
5863 SEM_FN_NAME (frvbf,sthu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5865 #define FLD(f) abuf->fields.sfmt_cstbu.f
5866 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5867 int UNUSED written = 0;
5868 IADDR UNUSED pc = abuf->addr;
5869 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5873 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5874 frvbf_write_mem_HI (current_cpu, pc, tmp_address, GET_H_GR (FLD (f_GRk)));
5876 SI opval = tmp_address;
5877 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
5878 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5886 /* stu: stu$pack $GRk,@($GRi,$GRj) */
5889 SEM_FN_NAME (frvbf,stu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5891 #define FLD(f) abuf->fields.sfmt_cstbu.f
5892 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5893 int UNUSED written = 0;
5894 IADDR UNUSED pc = abuf->addr;
5895 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5899 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5900 frvbf_write_mem_WI (current_cpu, pc, tmp_address, GET_H_GR (FLD (f_GRk)));
5902 SI opval = tmp_address;
5903 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
5904 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5912 /* stbfu: stbfu$pack $FRintk,@($GRi,$GRj) */
5915 SEM_FN_NAME (frvbf,stbfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5917 #define FLD(f) abuf->fields.sfmt_cstbfu.f
5918 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5919 int UNUSED written = 0;
5920 IADDR UNUSED pc = abuf->addr;
5921 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5925 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5926 frvbf_write_mem_QI (current_cpu, pc, tmp_address, GET_H_FR_INT (FLD (f_FRk)));
5928 SI opval = tmp_address;
5929 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
5930 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5938 /* sthfu: sthfu$pack $FRintk,@($GRi,$GRj) */
5941 SEM_FN_NAME (frvbf,sthfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5943 #define FLD(f) abuf->fields.sfmt_cstbfu.f
5944 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5945 int UNUSED written = 0;
5946 IADDR UNUSED pc = abuf->addr;
5947 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5951 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5952 frvbf_write_mem_HI (current_cpu, pc, tmp_address, GET_H_FR_INT (FLD (f_FRk)));
5954 SI opval = tmp_address;
5955 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
5956 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5964 /* stfu: stfu$pack $FRintk,@($GRi,$GRj) */
5967 SEM_FN_NAME (frvbf,stfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5969 #define FLD(f) abuf->fields.sfmt_cstbfu.f
5970 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5971 int UNUSED written = 0;
5972 IADDR UNUSED pc = abuf->addr;
5973 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5977 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5978 frvbf_write_mem_SI (current_cpu, pc, tmp_address, GET_H_FR_INT (FLD (f_FRk)));
5980 SI opval = tmp_address;
5981 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
5982 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5990 /* stcu: stcu$pack $CPRk,@($GRi,$GRj) */
5993 SEM_FN_NAME (frvbf,stcu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5995 #define FLD(f) abuf->fields.sfmt_stcu.f
5996 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5997 int UNUSED written = 0;
5998 IADDR UNUSED pc = abuf->addr;
5999 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6003 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6004 frvbf_write_mem_SI (current_cpu, pc, tmp_address, CPU (h_cpr[FLD (f_CPRk)]));
6006 SI opval = tmp_address;
6007 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6008 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6016 /* stdu: stdu$pack $GRk,@($GRi,$GRj) */
6019 SEM_FN_NAME (frvbf,stdu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6021 #define FLD(f) abuf->fields.sfmt_cstdu.f
6022 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6023 int UNUSED written = 0;
6024 IADDR UNUSED pc = abuf->addr;
6025 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6030 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6031 frvbf_write_mem_DI (current_cpu, pc, tmp_address, GET_H_GR_DOUBLE (FLD (f_GRk)));
6034 SI opval = tmp_address;
6035 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6036 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6044 /* stdfu: stdfu$pack $FRk,@($GRi,$GRj) */
6047 SEM_FN_NAME (frvbf,stdfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6049 #define FLD(f) abuf->fields.sfmt_cstdfu.f
6050 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6051 int UNUSED written = 0;
6052 IADDR UNUSED pc = abuf->addr;
6053 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6058 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6059 frvbf_write_mem_DF (current_cpu, pc, tmp_address, GET_H_FR_DOUBLE (FLD (f_FRk)));
6062 SI opval = tmp_address;
6063 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6064 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6072 /* stdcu: stdcu$pack $CPRk,@($GRi,$GRj) */
6075 SEM_FN_NAME (frvbf,stdcu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6077 #define FLD(f) abuf->fields.sfmt_stdcu.f
6078 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6079 int UNUSED written = 0;
6080 IADDR UNUSED pc = abuf->addr;
6081 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6086 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6087 frvbf_write_mem_DI (current_cpu, pc, tmp_address, GET_H_CPR_DOUBLE (FLD (f_CPRk)));
6090 SI opval = tmp_address;
6091 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6092 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6100 /* stqu: stqu$pack $GRk,@($GRi,$GRj) */
6103 SEM_FN_NAME (frvbf,stqu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6105 #define FLD(f) abuf->fields.sfmt_cstdu.f
6106 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6107 int UNUSED written = 0;
6108 IADDR UNUSED pc = abuf->addr;
6109 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6114 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6115 frvbf_store_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
6118 SI opval = tmp_address;
6119 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6120 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6128 /* stqfu: stqfu$pack $FRintk,@($GRi,$GRj) */
6131 SEM_FN_NAME (frvbf,stqfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6133 #define FLD(f) abuf->fields.sfmt_cstdfu.f
6134 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6135 int UNUSED written = 0;
6136 IADDR UNUSED pc = abuf->addr;
6137 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6142 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6143 frvbf_store_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
6146 SI opval = tmp_address;
6147 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6148 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6156 /* stqcu: stqcu$pack $CPRk,@($GRi,$GRj) */
6159 SEM_FN_NAME (frvbf,stqcu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6161 #define FLD(f) abuf->fields.sfmt_stdcu.f
6162 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6163 int UNUSED written = 0;
6164 IADDR UNUSED pc = abuf->addr;
6165 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6170 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6171 frvbf_store_quad_CPR (current_cpu, pc, tmp_address, FLD (f_CPRk));
6174 SI opval = tmp_address;
6175 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6176 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6184 /* cldsb: cldsb$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6187 SEM_FN_NAME (frvbf,cldsb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6189 #define FLD(f) abuf->fields.sfmt_cswap.f
6190 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6191 int UNUSED written = 0;
6192 IADDR UNUSED pc = abuf->addr;
6193 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6195 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6197 SI opval = frvbf_read_mem_QI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
6198 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6199 written |= (1 << 5);
6200 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6204 abuf->written = written;
6209 /* cldub: cldub$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6212 SEM_FN_NAME (frvbf,cldub) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6214 #define FLD(f) abuf->fields.sfmt_cswap.f
6215 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6216 int UNUSED written = 0;
6217 IADDR UNUSED pc = abuf->addr;
6218 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6220 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6222 SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
6223 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6224 written |= (1 << 5);
6225 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6229 abuf->written = written;
6234 /* cldsh: cldsh$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6237 SEM_FN_NAME (frvbf,cldsh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6239 #define FLD(f) abuf->fields.sfmt_cswap.f
6240 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6241 int UNUSED written = 0;
6242 IADDR UNUSED pc = abuf->addr;
6243 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6245 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6247 SI opval = frvbf_read_mem_HI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
6248 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6249 written |= (1 << 5);
6250 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6254 abuf->written = written;
6259 /* clduh: clduh$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6262 SEM_FN_NAME (frvbf,clduh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6264 #define FLD(f) abuf->fields.sfmt_cswap.f
6265 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6266 int UNUSED written = 0;
6267 IADDR UNUSED pc = abuf->addr;
6268 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6270 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6272 SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
6273 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6274 written |= (1 << 5);
6275 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6279 abuf->written = written;
6284 /* cld: cld$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6287 SEM_FN_NAME (frvbf,cld) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6289 #define FLD(f) abuf->fields.sfmt_cswap.f
6290 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6291 int UNUSED written = 0;
6292 IADDR UNUSED pc = abuf->addr;
6293 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6295 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6297 SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
6298 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6299 written |= (1 << 5);
6300 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6304 abuf->written = written;
6309 /* cldbf: cldbf$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6312 SEM_FN_NAME (frvbf,cldbf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6314 #define FLD(f) abuf->fields.sfmt_cldbfu.f
6315 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6316 int UNUSED written = 0;
6317 IADDR UNUSED pc = abuf->addr;
6318 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6320 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6322 SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
6323 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
6324 written |= (1 << 5);
6325 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
6329 abuf->written = written;
6334 /* cldhf: cldhf$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6337 SEM_FN_NAME (frvbf,cldhf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6339 #define FLD(f) abuf->fields.sfmt_cldbfu.f
6340 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6341 int UNUSED written = 0;
6342 IADDR UNUSED pc = abuf->addr;
6343 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6345 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6347 SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
6348 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
6349 written |= (1 << 5);
6350 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
6354 abuf->written = written;
6359 /* cldf: cldf$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6362 SEM_FN_NAME (frvbf,cldf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6364 #define FLD(f) abuf->fields.sfmt_cldbfu.f
6365 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6366 int UNUSED written = 0;
6367 IADDR UNUSED pc = abuf->addr;
6368 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6370 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6372 SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
6373 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
6374 written |= (1 << 5);
6375 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
6379 abuf->written = written;
6384 /* cldd: cldd$pack @($GRi,$GRj),$GRdoublek,$CCi,$cond */
6387 SEM_FN_NAME (frvbf,cldd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6389 #define FLD(f) abuf->fields.sfmt_clddu.f
6390 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6391 int UNUSED written = 0;
6392 IADDR UNUSED pc = abuf->addr;
6393 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6395 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6398 if (NESI (FLD (f_GRk), 0)) {
6400 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6402 DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
6403 sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
6404 written |= (1 << 6);
6405 TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
6412 abuf->written = written;
6417 /* clddf: clddf$pack @($GRi,$GRj),$FRdoublek,$CCi,$cond */
6420 SEM_FN_NAME (frvbf,clddf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6422 #define FLD(f) abuf->fields.sfmt_clddfu.f
6423 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6424 int UNUSED written = 0;
6425 IADDR UNUSED pc = abuf->addr;
6426 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6428 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6432 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6434 DF opval = frvbf_read_mem_DF (current_cpu, pc, tmp_address);
6435 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
6436 written |= (1 << 5);
6437 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
6443 abuf->written = written;
6448 /* cldq: cldq$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6451 SEM_FN_NAME (frvbf,cldq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6453 #define FLD(f) abuf->fields.sfmt_cswap.f
6454 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6455 int UNUSED written = 0;
6456 IADDR UNUSED pc = abuf->addr;
6457 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6459 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6463 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6464 frvbf_load_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
6473 /* cldsbu: cldsbu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6476 SEM_FN_NAME (frvbf,cldsbu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6478 #define FLD(f) abuf->fields.sfmt_cldsbu.f
6479 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6480 int UNUSED written = 0;
6481 IADDR UNUSED pc = abuf->addr;
6482 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6484 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6487 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6489 SI opval = frvbf_read_mem_QI (current_cpu, pc, tmp_address);
6490 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6491 written |= (1 << 8);
6492 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6494 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
6496 SI opval = tmp_address;
6497 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6498 written |= (1 << 7);
6499 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6505 abuf->written = written;
6510 /* cldubu: cldubu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6513 SEM_FN_NAME (frvbf,cldubu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6515 #define FLD(f) abuf->fields.sfmt_cldsbu.f
6516 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6517 int UNUSED written = 0;
6518 IADDR UNUSED pc = abuf->addr;
6519 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6521 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6524 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6526 SI opval = frvbf_read_mem_UQI (current_cpu, pc, tmp_address);
6527 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6528 written |= (1 << 8);
6529 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6531 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
6533 SI opval = tmp_address;
6534 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6535 written |= (1 << 7);
6536 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6542 abuf->written = written;
6547 /* cldshu: cldshu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6550 SEM_FN_NAME (frvbf,cldshu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6552 #define FLD(f) abuf->fields.sfmt_cldsbu.f
6553 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6554 int UNUSED written = 0;
6555 IADDR UNUSED pc = abuf->addr;
6556 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6558 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6561 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6563 SI opval = frvbf_read_mem_HI (current_cpu, pc, tmp_address);
6564 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6565 written |= (1 << 8);
6566 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6568 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
6570 SI opval = tmp_address;
6571 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6572 written |= (1 << 7);
6573 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6579 abuf->written = written;
6584 /* clduhu: clduhu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6587 SEM_FN_NAME (frvbf,clduhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6589 #define FLD(f) abuf->fields.sfmt_cldsbu.f
6590 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6591 int UNUSED written = 0;
6592 IADDR UNUSED pc = abuf->addr;
6593 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6595 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6598 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6600 SI opval = frvbf_read_mem_UHI (current_cpu, pc, tmp_address);
6601 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6602 written |= (1 << 8);
6603 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6605 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
6607 SI opval = tmp_address;
6608 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6609 written |= (1 << 7);
6610 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6616 abuf->written = written;
6621 /* cldu: cldu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6624 SEM_FN_NAME (frvbf,cldu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6626 #define FLD(f) abuf->fields.sfmt_cldsbu.f
6627 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6628 int UNUSED written = 0;
6629 IADDR UNUSED pc = abuf->addr;
6630 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6632 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6635 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6637 SI opval = frvbf_read_mem_SI (current_cpu, pc, tmp_address);
6638 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6639 written |= (1 << 8);
6640 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6642 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
6644 SI opval = tmp_address;
6645 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6646 written |= (1 << 7);
6647 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6653 abuf->written = written;
6658 /* cldbfu: cldbfu$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6661 SEM_FN_NAME (frvbf,cldbfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6663 #define FLD(f) abuf->fields.sfmt_cldbfu.f
6664 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6665 int UNUSED written = 0;
6666 IADDR UNUSED pc = abuf->addr;
6667 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6669 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6672 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6674 SI opval = frvbf_read_mem_UQI (current_cpu, pc, tmp_address);
6675 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
6676 written |= (1 << 5);
6677 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
6680 SI opval = tmp_address;
6681 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6682 written |= (1 << 6);
6683 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6688 abuf->written = written;
6693 /* cldhfu: cldhfu$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6696 SEM_FN_NAME (frvbf,cldhfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6698 #define FLD(f) abuf->fields.sfmt_cldbfu.f
6699 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6700 int UNUSED written = 0;
6701 IADDR UNUSED pc = abuf->addr;
6702 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6704 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6707 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6709 SI opval = frvbf_read_mem_UHI (current_cpu, pc, tmp_address);
6710 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
6711 written |= (1 << 5);
6712 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
6715 SI opval = tmp_address;
6716 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6717 written |= (1 << 6);
6718 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6723 abuf->written = written;
6728 /* cldfu: cldfu$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6731 SEM_FN_NAME (frvbf,cldfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6733 #define FLD(f) abuf->fields.sfmt_cldbfu.f
6734 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6735 int UNUSED written = 0;
6736 IADDR UNUSED pc = abuf->addr;
6737 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6739 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6742 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6744 SI opval = frvbf_read_mem_SI (current_cpu, pc, tmp_address);
6745 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
6746 written |= (1 << 5);
6747 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
6750 SI opval = tmp_address;
6751 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6752 written |= (1 << 6);
6753 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6758 abuf->written = written;
6763 /* clddu: clddu$pack @($GRi,$GRj),$GRdoublek,$CCi,$cond */
6766 SEM_FN_NAME (frvbf,clddu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6768 #define FLD(f) abuf->fields.sfmt_clddu.f
6769 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6770 int UNUSED written = 0;
6771 IADDR UNUSED pc = abuf->addr;
6772 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6774 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6777 if (NESI (FLD (f_GRk), 0)) {
6779 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6781 DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
6782 sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
6783 written |= (1 << 7);
6784 TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
6788 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
6790 SI opval = tmp_address;
6791 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6792 written |= (1 << 8);
6793 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6799 abuf->written = written;
6804 /* clddfu: clddfu$pack @($GRi,$GRj),$FRdoublek,$CCi,$cond */
6807 SEM_FN_NAME (frvbf,clddfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6809 #define FLD(f) abuf->fields.sfmt_clddfu.f
6810 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6811 int UNUSED written = 0;
6812 IADDR UNUSED pc = abuf->addr;
6813 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6815 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6819 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6821 DF opval = frvbf_read_mem_DF (current_cpu, pc, tmp_address);
6822 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
6823 written |= (1 << 5);
6824 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
6828 SI opval = tmp_address;
6829 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6830 written |= (1 << 6);
6831 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6836 abuf->written = written;
6841 /* cldqu: cldqu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6844 SEM_FN_NAME (frvbf,cldqu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6846 #define FLD(f) abuf->fields.sfmt_cstdu.f
6847 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6848 int UNUSED written = 0;
6849 IADDR UNUSED pc = abuf->addr;
6850 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6852 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6856 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6857 frvbf_load_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
6859 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
6861 SI opval = tmp_address;
6862 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6863 written |= (1 << 7);
6864 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6870 abuf->written = written;
6875 /* cstb: cstb$pack $GRk,@($GRi,$GRj),$CCi,$cond */
6878 SEM_FN_NAME (frvbf,cstb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6880 #define FLD(f) abuf->fields.sfmt_cswap.f
6881 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6882 int UNUSED written = 0;
6883 IADDR UNUSED pc = abuf->addr;
6884 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6886 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6887 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)));
6894 /* csth: csth$pack $GRk,@($GRi,$GRj),$CCi,$cond */
6897 SEM_FN_NAME (frvbf,csth) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6899 #define FLD(f) abuf->fields.sfmt_cswap.f
6900 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6901 int UNUSED written = 0;
6902 IADDR UNUSED pc = abuf->addr;
6903 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6905 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6906 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)));
6913 /* cst: cst$pack $GRk,@($GRi,$GRj),$CCi,$cond */
6916 SEM_FN_NAME (frvbf,cst) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6918 #define FLD(f) abuf->fields.sfmt_cswap.f
6919 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6920 int UNUSED written = 0;
6921 IADDR UNUSED pc = abuf->addr;
6922 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6924 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6925 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)));
6932 /* cstbf: cstbf$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
6935 SEM_FN_NAME (frvbf,cstbf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6937 #define FLD(f) abuf->fields.sfmt_cstbfu.f
6938 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6939 int UNUSED written = 0;
6940 IADDR UNUSED pc = abuf->addr;
6941 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6943 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6944 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)));
6951 /* csthf: csthf$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
6954 SEM_FN_NAME (frvbf,csthf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6956 #define FLD(f) abuf->fields.sfmt_cstbfu.f
6957 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6958 int UNUSED written = 0;
6959 IADDR UNUSED pc = abuf->addr;
6960 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6962 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6963 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)));
6970 /* cstf: cstf$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
6973 SEM_FN_NAME (frvbf,cstf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6975 #define FLD(f) abuf->fields.sfmt_cstbfu.f
6976 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6977 int UNUSED written = 0;
6978 IADDR UNUSED pc = abuf->addr;
6979 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6981 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6982 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)));
6989 /* cstd: cstd$pack $GRk,@($GRi,$GRj),$CCi,$cond */
6992 SEM_FN_NAME (frvbf,cstd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6994 #define FLD(f) abuf->fields.sfmt_cstdu.f
6995 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6996 int UNUSED written = 0;
6997 IADDR UNUSED pc = abuf->addr;
6998 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7000 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7004 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7005 frvbf_write_mem_DI (current_cpu, pc, tmp_address, GET_H_GR_DOUBLE (FLD (f_GRk)));
7014 /* cstdf: cstdf$pack $FRk,@($GRi,$GRj),$CCi,$cond */
7017 SEM_FN_NAME (frvbf,cstdf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7019 #define FLD(f) abuf->fields.sfmt_cstdfu.f
7020 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7021 int UNUSED written = 0;
7022 IADDR UNUSED pc = abuf->addr;
7023 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7025 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7029 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7030 frvbf_write_mem_DF (current_cpu, pc, tmp_address, GET_H_FR_DOUBLE (FLD (f_FRk)));
7039 /* cstq: cstq$pack $GRk,@($GRi,$GRj),$CCi,$cond */
7042 SEM_FN_NAME (frvbf,cstq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7044 #define FLD(f) abuf->fields.sfmt_cswap.f
7045 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7046 int UNUSED written = 0;
7047 IADDR UNUSED pc = abuf->addr;
7048 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7050 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7054 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7055 frvbf_store_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
7064 /* cstbu: cstbu$pack $GRk,@($GRi,$GRj),$CCi,$cond */
7067 SEM_FN_NAME (frvbf,cstbu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7069 #define FLD(f) abuf->fields.sfmt_cstbu.f
7070 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7071 int UNUSED written = 0;
7072 IADDR UNUSED pc = abuf->addr;
7073 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7075 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7078 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7079 frvbf_write_mem_QI (current_cpu, pc, tmp_address, GET_H_GR (FLD (f_GRk)));
7081 SI opval = tmp_address;
7082 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
7083 written |= (1 << 6);
7084 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7089 abuf->written = written;
7094 /* csthu: csthu$pack $GRk,@($GRi,$GRj),$CCi,$cond */
7097 SEM_FN_NAME (frvbf,csthu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7099 #define FLD(f) abuf->fields.sfmt_cstbu.f
7100 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7101 int UNUSED written = 0;
7102 IADDR UNUSED pc = abuf->addr;
7103 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7105 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7108 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7109 frvbf_write_mem_HI (current_cpu, pc, tmp_address, GET_H_GR (FLD (f_GRk)));
7111 SI opval = tmp_address;
7112 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
7113 written |= (1 << 6);
7114 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7119 abuf->written = written;
7124 /* cstu: cstu$pack $GRk,@($GRi,$GRj),$CCi,$cond */
7127 SEM_FN_NAME (frvbf,cstu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7129 #define FLD(f) abuf->fields.sfmt_cstbu.f
7130 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7131 int UNUSED written = 0;
7132 IADDR UNUSED pc = abuf->addr;
7133 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7135 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7138 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7139 frvbf_write_mem_SI (current_cpu, pc, tmp_address, GET_H_GR (FLD (f_GRk)));
7141 SI opval = tmp_address;
7142 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
7143 written |= (1 << 6);
7144 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7149 abuf->written = written;
7154 /* cstbfu: cstbfu$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
7157 SEM_FN_NAME (frvbf,cstbfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7159 #define FLD(f) abuf->fields.sfmt_cstbfu.f
7160 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7161 int UNUSED written = 0;
7162 IADDR UNUSED pc = abuf->addr;
7163 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7165 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7168 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7169 frvbf_write_mem_QI (current_cpu, pc, tmp_address, GET_H_FR_INT (FLD (f_FRk)));
7171 SI opval = tmp_address;
7172 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
7173 written |= (1 << 6);
7174 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7179 abuf->written = written;
7184 /* csthfu: csthfu$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
7187 SEM_FN_NAME (frvbf,csthfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7189 #define FLD(f) abuf->fields.sfmt_cstbfu.f
7190 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7191 int UNUSED written = 0;
7192 IADDR UNUSED pc = abuf->addr;
7193 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7195 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7198 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7199 frvbf_write_mem_HI (current_cpu, pc, tmp_address, GET_H_FR_INT (FLD (f_FRk)));
7201 SI opval = tmp_address;
7202 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
7203 written |= (1 << 6);
7204 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7209 abuf->written = written;
7214 /* cstfu: cstfu$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
7217 SEM_FN_NAME (frvbf,cstfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7219 #define FLD(f) abuf->fields.sfmt_cstbfu.f
7220 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7221 int UNUSED written = 0;
7222 IADDR UNUSED pc = abuf->addr;
7223 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7225 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7228 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7229 frvbf_write_mem_SI (current_cpu, pc, tmp_address, GET_H_FR_INT (FLD (f_FRk)));
7231 SI opval = tmp_address;
7232 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
7233 written |= (1 << 6);
7234 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7239 abuf->written = written;
7244 /* cstdu: cstdu$pack $GRk,@($GRi,$GRj),$CCi,$cond */
7247 SEM_FN_NAME (frvbf,cstdu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7249 #define FLD(f) abuf->fields.sfmt_cstdu.f
7250 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7251 int UNUSED written = 0;
7252 IADDR UNUSED pc = abuf->addr;
7253 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7255 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7259 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7260 frvbf_write_mem_DI (current_cpu, pc, tmp_address, GET_H_GR_DOUBLE (FLD (f_GRk)));
7263 SI opval = tmp_address;
7264 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
7265 written |= (1 << 6);
7266 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7271 abuf->written = written;
7276 /* cstdfu: cstdfu$pack $FRk,@($GRi,$GRj),$CCi,$cond */
7279 SEM_FN_NAME (frvbf,cstdfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7281 #define FLD(f) abuf->fields.sfmt_cstdfu.f
7282 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7283 int UNUSED written = 0;
7284 IADDR UNUSED pc = abuf->addr;
7285 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7287 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7291 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7292 frvbf_write_mem_DF (current_cpu, pc, tmp_address, GET_H_FR_DOUBLE (FLD (f_FRk)));
7295 SI opval = tmp_address;
7296 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
7297 written |= (1 << 6);
7298 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7303 abuf->written = written;
7308 /* stbi: stbi$pack $GRk,@($GRi,$d12) */
7311 SEM_FN_NAME (frvbf,stbi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7313 #define FLD(f) abuf->fields.sfmt_swapi.f
7314 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7315 int UNUSED written = 0;
7316 IADDR UNUSED pc = abuf->addr;
7317 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7319 frvbf_write_mem_QI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), GET_H_GR (FLD (f_GRk)));
7325 /* sthi: sthi$pack $GRk,@($GRi,$d12) */
7328 SEM_FN_NAME (frvbf,sthi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7330 #define FLD(f) abuf->fields.sfmt_swapi.f
7331 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7332 int UNUSED written = 0;
7333 IADDR UNUSED pc = abuf->addr;
7334 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7336 frvbf_write_mem_HI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), GET_H_GR (FLD (f_GRk)));
7342 /* sti: sti$pack $GRk,@($GRi,$d12) */
7345 SEM_FN_NAME (frvbf,sti) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7347 #define FLD(f) abuf->fields.sfmt_swapi.f
7348 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7349 int UNUSED written = 0;
7350 IADDR UNUSED pc = abuf->addr;
7351 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7353 frvbf_write_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), GET_H_GR (FLD (f_GRk)));
7359 /* stbfi: stbfi$pack $FRintk,@($GRi,$d12) */
7362 SEM_FN_NAME (frvbf,stbfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7364 #define FLD(f) abuf->fields.sfmt_stbfi.f
7365 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7366 int UNUSED written = 0;
7367 IADDR UNUSED pc = abuf->addr;
7368 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7370 frvbf_write_mem_QI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), GET_H_FR_INT (FLD (f_FRk)));
7376 /* sthfi: sthfi$pack $FRintk,@($GRi,$d12) */
7379 SEM_FN_NAME (frvbf,sthfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7381 #define FLD(f) abuf->fields.sfmt_stbfi.f
7382 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7383 int UNUSED written = 0;
7384 IADDR UNUSED pc = abuf->addr;
7385 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7387 frvbf_write_mem_HI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), GET_H_FR_INT (FLD (f_FRk)));
7393 /* stfi: stfi$pack $FRintk,@($GRi,$d12) */
7396 SEM_FN_NAME (frvbf,stfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7398 #define FLD(f) abuf->fields.sfmt_stbfi.f
7399 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7400 int UNUSED written = 0;
7401 IADDR UNUSED pc = abuf->addr;
7402 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7404 frvbf_write_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), GET_H_FR_INT (FLD (f_FRk)));
7410 /* stdi: stdi$pack $GRk,@($GRi,$d12) */
7413 SEM_FN_NAME (frvbf,stdi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7415 #define FLD(f) abuf->fields.sfmt_stdi.f
7416 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7417 int UNUSED written = 0;
7418 IADDR UNUSED pc = abuf->addr;
7419 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7424 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
7425 frvbf_write_mem_DI (current_cpu, pc, tmp_address, GET_H_GR_DOUBLE (FLD (f_GRk)));
7433 /* stdfi: stdfi$pack $FRk,@($GRi,$d12) */
7436 SEM_FN_NAME (frvbf,stdfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7438 #define FLD(f) abuf->fields.sfmt_stdfi.f
7439 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7440 int UNUSED written = 0;
7441 IADDR UNUSED pc = abuf->addr;
7442 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7447 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
7448 frvbf_write_mem_DF (current_cpu, pc, tmp_address, GET_H_FR_DOUBLE (FLD (f_FRk)));
7456 /* stqi: stqi$pack $GRk,@($GRi,$d12) */
7459 SEM_FN_NAME (frvbf,stqi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7461 #define FLD(f) abuf->fields.sfmt_stdi.f
7462 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7463 int UNUSED written = 0;
7464 IADDR UNUSED pc = abuf->addr;
7465 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7470 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
7471 frvbf_store_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
7479 /* stqfi: stqfi$pack $FRintk,@($GRi,$d12) */
7482 SEM_FN_NAME (frvbf,stqfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7484 #define FLD(f) abuf->fields.sfmt_stdfi.f
7485 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7486 int UNUSED written = 0;
7487 IADDR UNUSED pc = abuf->addr;
7488 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7493 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
7494 frvbf_store_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
7502 /* swap: swap$pack @($GRi,$GRj),$GRk */
7505 SEM_FN_NAME (frvbf,swap) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7507 #define FLD(f) abuf->fields.sfmt_cswap.f
7508 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7509 int UNUSED written = 0;
7510 IADDR UNUSED pc = abuf->addr;
7511 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7516 tmp_tmp = GET_H_GR (FLD (f_GRk));
7517 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7519 SI opval = frvbf_read_mem_WI (current_cpu, pc, tmp_address);
7520 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
7521 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7523 frvbf_write_mem_WI (current_cpu, pc, tmp_address, tmp_tmp);
7530 /* swapi: swapi$pack @($GRi,$d12),$GRk */
7533 SEM_FN_NAME (frvbf,swapi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7535 #define FLD(f) abuf->fields.sfmt_swapi.f
7536 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7537 int UNUSED written = 0;
7538 IADDR UNUSED pc = abuf->addr;
7539 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7544 tmp_tmp = GET_H_GR (FLD (f_GRk));
7545 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
7547 SI opval = frvbf_read_mem_WI (current_cpu, pc, tmp_address);
7548 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
7549 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7551 frvbf_write_mem_WI (current_cpu, pc, tmp_address, tmp_tmp);
7558 /* cswap: cswap$pack @($GRi,$GRj),$GRk,$CCi,$cond */
7561 SEM_FN_NAME (frvbf,cswap) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7563 #define FLD(f) abuf->fields.sfmt_cswap.f
7564 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7565 int UNUSED written = 0;
7566 IADDR UNUSED pc = abuf->addr;
7567 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7569 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7573 tmp_tmp = GET_H_GR (FLD (f_GRk));
7574 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
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 written |= (1 << 6);
7579 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7581 frvbf_write_mem_WI (current_cpu, pc, tmp_address, tmp_tmp);
7585 abuf->written = written;
7590 /* movgf: movgf$pack $GRj,$FRintk */
7593 SEM_FN_NAME (frvbf,movgf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7595 #define FLD(f) abuf->fields.sfmt_cmovgfd.f
7596 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7597 int UNUSED written = 0;
7598 IADDR UNUSED pc = abuf->addr;
7599 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7602 SI opval = GET_H_GR (FLD (f_GRj));
7603 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
7604 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7611 /* movfg: movfg$pack $FRintk,$GRj */
7614 SEM_FN_NAME (frvbf,movfg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7616 #define FLD(f) abuf->fields.sfmt_cmovfgd.f
7617 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7618 int UNUSED written = 0;
7619 IADDR UNUSED pc = abuf->addr;
7620 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7623 SI opval = GET_H_FR_INT (FLD (f_FRk));
7624 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRj), opval);
7625 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7632 /* movgfd: movgfd$pack $GRj,$FRintk */
7635 SEM_FN_NAME (frvbf,movgfd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7637 #define FLD(f) abuf->fields.sfmt_cmovgfd.f
7638 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7639 int UNUSED written = 0;
7640 IADDR UNUSED pc = abuf->addr;
7641 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7643 if (EQSI (FLD (f_GRj), 0)) {
7647 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
7648 written |= (1 << 4);
7649 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7653 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
7654 written |= (1 << 5);
7655 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7661 SI opval = GET_H_GR (FLD (f_GRj));
7662 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
7663 written |= (1 << 4);
7664 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7667 USI opval = GET_H_GR (((FLD (f_GRj)) + (1)));
7668 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
7669 written |= (1 << 5);
7670 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7675 abuf->written = written;
7680 /* movfgd: movfgd$pack $FRintk,$GRj */
7683 SEM_FN_NAME (frvbf,movfgd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7685 #define FLD(f) abuf->fields.sfmt_cmovfgd.f
7686 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7687 int UNUSED written = 0;
7688 IADDR UNUSED pc = abuf->addr;
7689 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7691 if (NESI (FLD (f_GRj), 0)) {
7694 SI opval = GET_H_FR_INT (FLD (f_FRk));
7695 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRj), opval);
7696 written |= (1 << 4);
7697 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7700 USI opval = GET_H_FR_INT (((FLD (f_FRk)) + (1)));
7701 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, ((FLD (f_GRj)) + (1)), opval);
7702 written |= (1 << 5);
7703 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7708 abuf->written = written;
7713 /* movgfq: movgfq$pack $GRj,$FRintk */
7716 SEM_FN_NAME (frvbf,movgfq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7718 #define FLD(f) abuf->fields.sfmt_movgfq.f
7719 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7720 int UNUSED written = 0;
7721 IADDR UNUSED pc = abuf->addr;
7722 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7724 if (EQSI (FLD (f_GRj), 0)) {
7728 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
7729 written |= (1 << 6);
7730 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7734 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
7735 written |= (1 << 7);
7736 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7740 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (2)), opval);
7741 written |= (1 << 8);
7742 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7746 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (3)), opval);
7747 written |= (1 << 9);
7748 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7754 SI opval = GET_H_GR (FLD (f_GRj));
7755 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
7756 written |= (1 << 6);
7757 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7760 USI opval = GET_H_GR (((FLD (f_GRj)) + (1)));
7761 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
7762 written |= (1 << 7);
7763 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7766 USI opval = GET_H_GR (((FLD (f_GRj)) + (2)));
7767 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (2)), opval);
7768 written |= (1 << 8);
7769 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7772 USI opval = GET_H_GR (((FLD (f_GRj)) + (3)));
7773 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (3)), opval);
7774 written |= (1 << 9);
7775 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7780 abuf->written = written;
7785 /* movfgq: movfgq$pack $FRintk,$GRj */
7788 SEM_FN_NAME (frvbf,movfgq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7790 #define FLD(f) abuf->fields.sfmt_movfgq.f
7791 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7792 int UNUSED written = 0;
7793 IADDR UNUSED pc = abuf->addr;
7794 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7796 if (NESI (FLD (f_GRj), 0)) {
7799 SI opval = GET_H_FR_INT (FLD (f_FRk));
7800 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRj), opval);
7801 written |= (1 << 6);
7802 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7805 USI opval = GET_H_FR_INT (((FLD (f_FRk)) + (1)));
7806 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, ((FLD (f_GRj)) + (1)), opval);
7807 written |= (1 << 7);
7808 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7811 USI opval = GET_H_FR_INT (((FLD (f_FRk)) + (2)));
7812 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, ((FLD (f_GRj)) + (2)), opval);
7813 written |= (1 << 8);
7814 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7817 USI opval = GET_H_FR_INT (((FLD (f_FRk)) + (3)));
7818 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, ((FLD (f_GRj)) + (3)), opval);
7819 written |= (1 << 9);
7820 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7825 abuf->written = written;
7830 /* cmovgf: cmovgf$pack $GRj,$FRintk,$CCi,$cond */
7833 SEM_FN_NAME (frvbf,cmovgf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7835 #define FLD(f) abuf->fields.sfmt_cmovgfd.f
7836 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7837 int UNUSED written = 0;
7838 IADDR UNUSED pc = abuf->addr;
7839 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7841 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7843 SI opval = GET_H_GR (FLD (f_GRj));
7844 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
7845 written |= (1 << 3);
7846 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7850 abuf->written = written;
7855 /* cmovfg: cmovfg$pack $FRintk,$GRj,$CCi,$cond */
7858 SEM_FN_NAME (frvbf,cmovfg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7860 #define FLD(f) abuf->fields.sfmt_cmovfgd.f
7861 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7862 int UNUSED written = 0;
7863 IADDR UNUSED pc = abuf->addr;
7864 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7866 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7868 SI opval = GET_H_FR_INT (FLD (f_FRk));
7869 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRj), opval);
7870 written |= (1 << 3);
7871 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7875 abuf->written = written;
7880 /* cmovgfd: cmovgfd$pack $GRj,$FRintk,$CCi,$cond */
7883 SEM_FN_NAME (frvbf,cmovgfd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7885 #define FLD(f) abuf->fields.sfmt_cmovgfd.f
7886 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7887 int UNUSED written = 0;
7888 IADDR UNUSED pc = abuf->addr;
7889 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7891 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7892 if (EQSI (FLD (f_GRj), 0)) {
7896 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
7897 written |= (1 << 6);
7898 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7902 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
7903 written |= (1 << 7);
7904 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7910 SI opval = GET_H_GR (FLD (f_GRj));
7911 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
7912 written |= (1 << 6);
7913 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7916 USI opval = GET_H_GR (((FLD (f_GRj)) + (1)));
7917 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
7918 written |= (1 << 7);
7919 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7925 abuf->written = written;
7930 /* cmovfgd: cmovfgd$pack $FRintk,$GRj,$CCi,$cond */
7933 SEM_FN_NAME (frvbf,cmovfgd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7935 #define FLD(f) abuf->fields.sfmt_cmovfgd.f
7936 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7937 int UNUSED written = 0;
7938 IADDR UNUSED pc = abuf->addr;
7939 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7941 if (ANDIF (NESI (FLD (f_GRj), 0), EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2)))) {
7944 SI opval = GET_H_FR_INT (FLD (f_FRk));
7945 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRj), opval);
7946 written |= (1 << 6);
7947 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7950 USI opval = GET_H_FR_INT (((FLD (f_FRk)) + (1)));
7951 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, ((FLD (f_GRj)) + (1)), opval);
7952 written |= (1 << 7);
7953 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7958 abuf->written = written;
7963 /* movgs: movgs$pack $GRj,$spr */
7966 SEM_FN_NAME (frvbf,movgs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7968 #define FLD(f) abuf->fields.sfmt_movgs.f
7969 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7970 int UNUSED written = 0;
7971 IADDR UNUSED pc = abuf->addr;
7972 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7975 USI opval = GET_H_GR (FLD (f_GRj));
7976 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, FLD (f_spr), opval);
7977 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
7984 /* movsg: movsg$pack $spr,$GRj */
7987 SEM_FN_NAME (frvbf,movsg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7989 #define FLD(f) abuf->fields.sfmt_movsg.f
7990 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7991 int UNUSED written = 0;
7992 IADDR UNUSED pc = abuf->addr;
7993 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7996 SI opval = GET_H_SPR (FLD (f_spr));
7997 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRj), opval);
7998 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
8005 /* bra: bra$pack $hint_taken$label16 */
8008 SEM_FN_NAME (frvbf,bra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8010 #define FLD(f) abuf->fields.sfmt_fbne.f
8011 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8012 int UNUSED written = 0;
8013 IADDR UNUSED pc = abuf->addr;
8014 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8017 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8019 USI opval = FLD (i_label16);
8020 sim_queue_pc_write (current_cpu, opval);
8021 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8029 /* bno: bno$pack$hint_not_taken */
8032 SEM_FN_NAME (frvbf,bno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8034 #define FLD(f) abuf->fields.sfmt_fbne.f
8035 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8036 int UNUSED written = 0;
8037 IADDR UNUSED pc = abuf->addr;
8038 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8040 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8046 /* beq: beq$pack $ICCi_2,$hint,$label16 */
8049 SEM_FN_NAME (frvbf,beq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8051 #define FLD(f) abuf->fields.sfmt_beq.f
8052 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8053 int UNUSED written = 0;
8054 IADDR UNUSED pc = abuf->addr;
8055 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8058 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8059 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2))) {
8061 USI opval = FLD (i_label16);
8062 sim_queue_pc_write (current_cpu, opval);
8063 written |= (1 << 3);
8064 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8069 abuf->written = written;
8074 /* bne: bne$pack $ICCi_2,$hint,$label16 */
8077 SEM_FN_NAME (frvbf,bne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8079 #define FLD(f) abuf->fields.sfmt_beq.f
8080 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8081 int UNUSED written = 0;
8082 IADDR UNUSED pc = abuf->addr;
8083 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8086 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8087 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
8089 USI opval = FLD (i_label16);
8090 sim_queue_pc_write (current_cpu, opval);
8091 written |= (1 << 3);
8092 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8097 abuf->written = written;
8102 /* ble: ble$pack $ICCi_2,$hint,$label16 */
8105 SEM_FN_NAME (frvbf,ble) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8107 #define FLD(f) abuf->fields.sfmt_beq.f
8108 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8109 int UNUSED written = 0;
8110 IADDR UNUSED pc = abuf->addr;
8111 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8114 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8115 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))))) {
8117 USI opval = FLD (i_label16);
8118 sim_queue_pc_write (current_cpu, opval);
8119 written |= (1 << 3);
8120 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8125 abuf->written = written;
8130 /* bgt: bgt$pack $ICCi_2,$hint,$label16 */
8133 SEM_FN_NAME (frvbf,bgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8135 #define FLD(f) abuf->fields.sfmt_beq.f
8136 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8137 int UNUSED written = 0;
8138 IADDR UNUSED pc = abuf->addr;
8139 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8142 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8143 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)))))) {
8145 USI opval = FLD (i_label16);
8146 sim_queue_pc_write (current_cpu, opval);
8147 written |= (1 << 3);
8148 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8153 abuf->written = written;
8158 /* blt: blt$pack $ICCi_2,$hint,$label16 */
8161 SEM_FN_NAME (frvbf,blt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8163 #define FLD(f) abuf->fields.sfmt_beq.f
8164 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8165 int UNUSED written = 0;
8166 IADDR UNUSED pc = abuf->addr;
8167 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8170 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8171 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)))) {
8173 USI opval = FLD (i_label16);
8174 sim_queue_pc_write (current_cpu, opval);
8175 written |= (1 << 3);
8176 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8181 abuf->written = written;
8186 /* bge: bge$pack $ICCi_2,$hint,$label16 */
8189 SEM_FN_NAME (frvbf,bge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8191 #define FLD(f) abuf->fields.sfmt_beq.f
8192 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8193 int UNUSED written = 0;
8194 IADDR UNUSED pc = abuf->addr;
8195 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8198 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8199 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))))) {
8201 USI opval = FLD (i_label16);
8202 sim_queue_pc_write (current_cpu, opval);
8203 written |= (1 << 3);
8204 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8209 abuf->written = written;
8214 /* bls: bls$pack $ICCi_2,$hint,$label16 */
8217 SEM_FN_NAME (frvbf,bls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8219 #define FLD(f) abuf->fields.sfmt_beq.f
8220 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8221 int UNUSED written = 0;
8222 IADDR UNUSED pc = abuf->addr;
8223 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8226 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8227 if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
8229 USI opval = FLD (i_label16);
8230 sim_queue_pc_write (current_cpu, opval);
8231 written |= (1 << 3);
8232 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8237 abuf->written = written;
8242 /* bhi: bhi$pack $ICCi_2,$hint,$label16 */
8245 SEM_FN_NAME (frvbf,bhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8247 #define FLD(f) abuf->fields.sfmt_beq.f
8248 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8249 int UNUSED written = 0;
8250 IADDR UNUSED pc = abuf->addr;
8251 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8254 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8255 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))))) {
8257 USI opval = FLD (i_label16);
8258 sim_queue_pc_write (current_cpu, opval);
8259 written |= (1 << 3);
8260 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8265 abuf->written = written;
8270 /* bc: bc$pack $ICCi_2,$hint,$label16 */
8273 SEM_FN_NAME (frvbf,bc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8275 #define FLD(f) abuf->fields.sfmt_beq.f
8276 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8277 int UNUSED written = 0;
8278 IADDR UNUSED pc = abuf->addr;
8279 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8282 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8283 if (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1))) {
8285 USI opval = FLD (i_label16);
8286 sim_queue_pc_write (current_cpu, opval);
8287 written |= (1 << 3);
8288 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8293 abuf->written = written;
8298 /* bnc: bnc$pack $ICCi_2,$hint,$label16 */
8301 SEM_FN_NAME (frvbf,bnc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8303 #define FLD(f) abuf->fields.sfmt_beq.f
8304 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8305 int UNUSED written = 0;
8306 IADDR UNUSED pc = abuf->addr;
8307 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8310 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8311 if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)))) {
8313 USI opval = FLD (i_label16);
8314 sim_queue_pc_write (current_cpu, opval);
8315 written |= (1 << 3);
8316 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8321 abuf->written = written;
8326 /* bn: bn$pack $ICCi_2,$hint,$label16 */
8329 SEM_FN_NAME (frvbf,bn) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8331 #define FLD(f) abuf->fields.sfmt_beq.f
8332 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8333 int UNUSED written = 0;
8334 IADDR UNUSED pc = abuf->addr;
8335 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8338 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8339 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3))) {
8341 USI opval = FLD (i_label16);
8342 sim_queue_pc_write (current_cpu, opval);
8343 written |= (1 << 3);
8344 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8349 abuf->written = written;
8354 /* bp: bp$pack $ICCi_2,$hint,$label16 */
8357 SEM_FN_NAME (frvbf,bp) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8359 #define FLD(f) abuf->fields.sfmt_beq.f
8360 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8361 int UNUSED written = 0;
8362 IADDR UNUSED pc = abuf->addr;
8363 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8366 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8367 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3)))) {
8369 USI opval = FLD (i_label16);
8370 sim_queue_pc_write (current_cpu, opval);
8371 written |= (1 << 3);
8372 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8377 abuf->written = written;
8382 /* bv: bv$pack $ICCi_2,$hint,$label16 */
8385 SEM_FN_NAME (frvbf,bv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8387 #define FLD(f) abuf->fields.sfmt_beq.f
8388 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8389 int UNUSED written = 0;
8390 IADDR UNUSED pc = abuf->addr;
8391 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8394 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8395 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1))) {
8397 USI opval = FLD (i_label16);
8398 sim_queue_pc_write (current_cpu, opval);
8399 written |= (1 << 3);
8400 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8405 abuf->written = written;
8410 /* bnv: bnv$pack $ICCi_2,$hint,$label16 */
8413 SEM_FN_NAME (frvbf,bnv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8415 #define FLD(f) abuf->fields.sfmt_beq.f
8416 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8417 int UNUSED written = 0;
8418 IADDR UNUSED pc = abuf->addr;
8419 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8422 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8423 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1)))) {
8425 USI opval = FLD (i_label16);
8426 sim_queue_pc_write (current_cpu, opval);
8427 written |= (1 << 3);
8428 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8433 abuf->written = written;
8438 /* fbra: fbra$pack $hint_taken$label16 */
8441 SEM_FN_NAME (frvbf,fbra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8443 #define FLD(f) abuf->fields.sfmt_fbne.f
8444 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8445 int UNUSED written = 0;
8446 IADDR UNUSED pc = abuf->addr;
8447 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8450 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8452 USI opval = FLD (i_label16);
8453 sim_queue_pc_write (current_cpu, opval);
8454 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8462 /* fbno: fbno$pack$hint_not_taken */
8465 SEM_FN_NAME (frvbf,fbno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8467 #define FLD(f) abuf->fields.sfmt_fbne.f
8468 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8469 int UNUSED written = 0;
8470 IADDR UNUSED pc = abuf->addr;
8471 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8473 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8479 /* fbne: fbne$pack $FCCi_2,$hint,$label16 */
8482 SEM_FN_NAME (frvbf,fbne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8484 #define FLD(f) abuf->fields.sfmt_fbne.f
8485 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8486 int UNUSED written = 0;
8487 IADDR UNUSED pc = abuf->addr;
8488 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8491 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8492 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))))) {
8494 USI opval = FLD (i_label16);
8495 sim_queue_pc_write (current_cpu, opval);
8496 written |= (1 << 3);
8497 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8502 abuf->written = written;
8507 /* fbeq: fbeq$pack $FCCi_2,$hint,$label16 */
8510 SEM_FN_NAME (frvbf,fbeq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8512 #define FLD(f) abuf->fields.sfmt_fbne.f
8513 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8514 int UNUSED written = 0;
8515 IADDR UNUSED pc = abuf->addr;
8516 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8519 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8520 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3))) {
8522 USI opval = FLD (i_label16);
8523 sim_queue_pc_write (current_cpu, opval);
8524 written |= (1 << 3);
8525 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8530 abuf->written = written;
8535 /* fblg: fblg$pack $FCCi_2,$hint,$label16 */
8538 SEM_FN_NAME (frvbf,fblg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8540 #define FLD(f) abuf->fields.sfmt_fbne.f
8541 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8542 int UNUSED written = 0;
8543 IADDR UNUSED pc = abuf->addr;
8544 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8547 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8548 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)))) {
8550 USI opval = FLD (i_label16);
8551 sim_queue_pc_write (current_cpu, opval);
8552 written |= (1 << 3);
8553 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8558 abuf->written = written;
8563 /* fbue: fbue$pack $FCCi_2,$hint,$label16 */
8566 SEM_FN_NAME (frvbf,fbue) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8568 #define FLD(f) abuf->fields.sfmt_fbne.f
8569 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8570 int UNUSED written = 0;
8571 IADDR UNUSED pc = abuf->addr;
8572 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8575 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8576 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
8578 USI opval = FLD (i_label16);
8579 sim_queue_pc_write (current_cpu, opval);
8580 written |= (1 << 3);
8581 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8586 abuf->written = written;
8591 /* fbul: fbul$pack $FCCi_2,$hint,$label16 */
8594 SEM_FN_NAME (frvbf,fbul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8596 #define FLD(f) abuf->fields.sfmt_fbne.f
8597 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8598 int UNUSED written = 0;
8599 IADDR UNUSED pc = abuf->addr;
8600 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8603 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8604 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
8606 USI opval = FLD (i_label16);
8607 sim_queue_pc_write (current_cpu, opval);
8608 written |= (1 << 3);
8609 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8614 abuf->written = written;
8619 /* fbge: fbge$pack $FCCi_2,$hint,$label16 */
8622 SEM_FN_NAME (frvbf,fbge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8624 #define FLD(f) abuf->fields.sfmt_fbne.f
8625 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8626 int UNUSED written = 0;
8627 IADDR UNUSED pc = abuf->addr;
8628 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8631 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8632 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)))) {
8634 USI opval = FLD (i_label16);
8635 sim_queue_pc_write (current_cpu, opval);
8636 written |= (1 << 3);
8637 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8642 abuf->written = written;
8647 /* fblt: fblt$pack $FCCi_2,$hint,$label16 */
8650 SEM_FN_NAME (frvbf,fblt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8652 #define FLD(f) abuf->fields.sfmt_fbne.f
8653 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8654 int UNUSED written = 0;
8655 IADDR UNUSED pc = abuf->addr;
8656 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8659 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8660 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2))) {
8662 USI opval = FLD (i_label16);
8663 sim_queue_pc_write (current_cpu, opval);
8664 written |= (1 << 3);
8665 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8670 abuf->written = written;
8675 /* fbuge: fbuge$pack $FCCi_2,$hint,$label16 */
8678 SEM_FN_NAME (frvbf,fbuge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8680 #define FLD(f) abuf->fields.sfmt_fbne.f
8681 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8682 int UNUSED written = 0;
8683 IADDR UNUSED pc = abuf->addr;
8684 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8687 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8688 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))))) {
8690 USI opval = FLD (i_label16);
8691 sim_queue_pc_write (current_cpu, opval);
8692 written |= (1 << 3);
8693 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8698 abuf->written = written;
8703 /* fbug: fbug$pack $FCCi_2,$hint,$label16 */
8706 SEM_FN_NAME (frvbf,fbug) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8708 #define FLD(f) abuf->fields.sfmt_fbne.f
8709 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8710 int UNUSED written = 0;
8711 IADDR UNUSED pc = abuf->addr;
8712 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8715 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8716 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
8718 USI opval = FLD (i_label16);
8719 sim_queue_pc_write (current_cpu, opval);
8720 written |= (1 << 3);
8721 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8726 abuf->written = written;
8731 /* fble: fble$pack $FCCi_2,$hint,$label16 */
8734 SEM_FN_NAME (frvbf,fble) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8736 #define FLD(f) abuf->fields.sfmt_fbne.f
8737 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8738 int UNUSED written = 0;
8739 IADDR UNUSED pc = abuf->addr;
8740 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8743 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8744 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)))) {
8746 USI opval = FLD (i_label16);
8747 sim_queue_pc_write (current_cpu, opval);
8748 written |= (1 << 3);
8749 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8754 abuf->written = written;
8759 /* fbgt: fbgt$pack $FCCi_2,$hint,$label16 */
8762 SEM_FN_NAME (frvbf,fbgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8764 #define FLD(f) abuf->fields.sfmt_fbne.f
8765 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8766 int UNUSED written = 0;
8767 IADDR UNUSED pc = abuf->addr;
8768 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8771 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8772 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1))) {
8774 USI opval = FLD (i_label16);
8775 sim_queue_pc_write (current_cpu, opval);
8776 written |= (1 << 3);
8777 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8782 abuf->written = written;
8787 /* fbule: fbule$pack $FCCi_2,$hint,$label16 */
8790 SEM_FN_NAME (frvbf,fbule) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8792 #define FLD(f) abuf->fields.sfmt_fbne.f
8793 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8794 int UNUSED written = 0;
8795 IADDR UNUSED pc = abuf->addr;
8796 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8799 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8800 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))))) {
8802 USI opval = FLD (i_label16);
8803 sim_queue_pc_write (current_cpu, opval);
8804 written |= (1 << 3);
8805 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8810 abuf->written = written;
8815 /* fbu: fbu$pack $FCCi_2,$hint,$label16 */
8818 SEM_FN_NAME (frvbf,fbu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8820 #define FLD(f) abuf->fields.sfmt_fbne.f
8821 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8822 int UNUSED written = 0;
8823 IADDR UNUSED pc = abuf->addr;
8824 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8827 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8828 if (TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1))) {
8830 USI opval = FLD (i_label16);
8831 sim_queue_pc_write (current_cpu, opval);
8832 written |= (1 << 3);
8833 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8838 abuf->written = written;
8843 /* fbo: fbo$pack $FCCi_2,$hint,$label16 */
8846 SEM_FN_NAME (frvbf,fbo) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8848 #define FLD(f) abuf->fields.sfmt_fbne.f
8849 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8850 int UNUSED written = 0;
8851 IADDR UNUSED pc = abuf->addr;
8852 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8855 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8856 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))))) {
8858 USI opval = FLD (i_label16);
8859 sim_queue_pc_write (current_cpu, opval);
8860 written |= (1 << 3);
8861 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8866 abuf->written = written;
8871 /* bctrlr: bctrlr$pack $ccond,$hint */
8874 SEM_FN_NAME (frvbf,bctrlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8876 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
8877 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8878 int UNUSED written = 0;
8879 IADDR UNUSED pc = abuf->addr;
8880 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8883 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
8886 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
8888 USI opval = tmp_tmp;
8889 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
8890 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
8892 if (EQSI (FLD (f_ccond), 0)) {
8893 if (NESI (tmp_tmp, 0)) {
8895 USI opval = GET_H_SPR (((UINT) 272));
8896 sim_queue_pc_write (current_cpu, opval);
8897 written |= (1 << 5);
8898 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8902 if (EQSI (tmp_tmp, 0)) {
8904 USI opval = GET_H_SPR (((UINT) 272));
8905 sim_queue_pc_write (current_cpu, opval);
8906 written |= (1 << 5);
8907 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8914 abuf->written = written;
8919 /* bralr: bralr$pack$hint_taken */
8922 SEM_FN_NAME (frvbf,bralr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8924 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
8925 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8926 int UNUSED written = 0;
8927 IADDR UNUSED pc = abuf->addr;
8928 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8931 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
8933 USI opval = GET_H_SPR (((UINT) 272));
8934 sim_queue_pc_write (current_cpu, opval);
8935 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8943 /* bnolr: bnolr$pack$hint_not_taken */
8946 SEM_FN_NAME (frvbf,bnolr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8948 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
8949 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8950 int UNUSED written = 0;
8951 IADDR UNUSED pc = abuf->addr;
8952 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8954 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
8960 /* beqlr: beqlr$pack $ICCi_2,$hint */
8963 SEM_FN_NAME (frvbf,beqlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8965 #define FLD(f) abuf->fields.sfmt_bceqlr.f
8966 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8967 int UNUSED written = 0;
8968 IADDR UNUSED pc = abuf->addr;
8969 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8972 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
8973 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2))) {
8975 USI opval = GET_H_SPR (((UINT) 272));
8976 sim_queue_pc_write (current_cpu, opval);
8977 written |= (1 << 3);
8978 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8983 abuf->written = written;
8988 /* bnelr: bnelr$pack $ICCi_2,$hint */
8991 SEM_FN_NAME (frvbf,bnelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8993 #define FLD(f) abuf->fields.sfmt_bceqlr.f
8994 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8995 int UNUSED written = 0;
8996 IADDR UNUSED pc = abuf->addr;
8997 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9000 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9001 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
9003 USI opval = GET_H_SPR (((UINT) 272));
9004 sim_queue_pc_write (current_cpu, opval);
9005 written |= (1 << 3);
9006 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9011 abuf->written = written;
9016 /* blelr: blelr$pack $ICCi_2,$hint */
9019 SEM_FN_NAME (frvbf,blelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9021 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9022 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9023 int UNUSED written = 0;
9024 IADDR UNUSED pc = abuf->addr;
9025 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9028 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9029 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))))) {
9031 USI opval = GET_H_SPR (((UINT) 272));
9032 sim_queue_pc_write (current_cpu, opval);
9033 written |= (1 << 3);
9034 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9039 abuf->written = written;
9044 /* bgtlr: bgtlr$pack $ICCi_2,$hint */
9047 SEM_FN_NAME (frvbf,bgtlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9049 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9050 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9051 int UNUSED written = 0;
9052 IADDR UNUSED pc = abuf->addr;
9053 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9056 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9057 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)))))) {
9059 USI opval = GET_H_SPR (((UINT) 272));
9060 sim_queue_pc_write (current_cpu, opval);
9061 written |= (1 << 3);
9062 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9067 abuf->written = written;
9072 /* bltlr: bltlr$pack $ICCi_2,$hint */
9075 SEM_FN_NAME (frvbf,bltlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9077 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9078 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9079 int UNUSED written = 0;
9080 IADDR UNUSED pc = abuf->addr;
9081 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9084 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9085 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)))) {
9087 USI opval = GET_H_SPR (((UINT) 272));
9088 sim_queue_pc_write (current_cpu, opval);
9089 written |= (1 << 3);
9090 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9095 abuf->written = written;
9100 /* bgelr: bgelr$pack $ICCi_2,$hint */
9103 SEM_FN_NAME (frvbf,bgelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9105 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9106 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9107 int UNUSED written = 0;
9108 IADDR UNUSED pc = abuf->addr;
9109 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9112 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9113 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))))) {
9115 USI opval = GET_H_SPR (((UINT) 272));
9116 sim_queue_pc_write (current_cpu, opval);
9117 written |= (1 << 3);
9118 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9123 abuf->written = written;
9128 /* blslr: blslr$pack $ICCi_2,$hint */
9131 SEM_FN_NAME (frvbf,blslr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9133 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9134 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9135 int UNUSED written = 0;
9136 IADDR UNUSED pc = abuf->addr;
9137 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9140 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9141 if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
9143 USI opval = GET_H_SPR (((UINT) 272));
9144 sim_queue_pc_write (current_cpu, opval);
9145 written |= (1 << 3);
9146 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9151 abuf->written = written;
9156 /* bhilr: bhilr$pack $ICCi_2,$hint */
9159 SEM_FN_NAME (frvbf,bhilr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9161 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9162 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9163 int UNUSED written = 0;
9164 IADDR UNUSED pc = abuf->addr;
9165 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9168 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9169 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))))) {
9171 USI opval = GET_H_SPR (((UINT) 272));
9172 sim_queue_pc_write (current_cpu, opval);
9173 written |= (1 << 3);
9174 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9179 abuf->written = written;
9184 /* bclr: bclr$pack $ICCi_2,$hint */
9187 SEM_FN_NAME (frvbf,bclr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9189 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9190 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9191 int UNUSED written = 0;
9192 IADDR UNUSED pc = abuf->addr;
9193 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9196 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9197 if (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1))) {
9199 USI opval = GET_H_SPR (((UINT) 272));
9200 sim_queue_pc_write (current_cpu, opval);
9201 written |= (1 << 3);
9202 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9207 abuf->written = written;
9212 /* bnclr: bnclr$pack $ICCi_2,$hint */
9215 SEM_FN_NAME (frvbf,bnclr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9217 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9218 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9219 int UNUSED written = 0;
9220 IADDR UNUSED pc = abuf->addr;
9221 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9224 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9225 if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)))) {
9227 USI opval = GET_H_SPR (((UINT) 272));
9228 sim_queue_pc_write (current_cpu, opval);
9229 written |= (1 << 3);
9230 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9235 abuf->written = written;
9240 /* bnlr: bnlr$pack $ICCi_2,$hint */
9243 SEM_FN_NAME (frvbf,bnlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9245 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9246 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9247 int UNUSED written = 0;
9248 IADDR UNUSED pc = abuf->addr;
9249 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9252 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9253 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3))) {
9255 USI opval = GET_H_SPR (((UINT) 272));
9256 sim_queue_pc_write (current_cpu, opval);
9257 written |= (1 << 3);
9258 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9263 abuf->written = written;
9268 /* bplr: bplr$pack $ICCi_2,$hint */
9271 SEM_FN_NAME (frvbf,bplr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9273 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9274 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9275 int UNUSED written = 0;
9276 IADDR UNUSED pc = abuf->addr;
9277 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9280 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9281 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3)))) {
9283 USI opval = GET_H_SPR (((UINT) 272));
9284 sim_queue_pc_write (current_cpu, opval);
9285 written |= (1 << 3);
9286 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9291 abuf->written = written;
9296 /* bvlr: bvlr$pack $ICCi_2,$hint */
9299 SEM_FN_NAME (frvbf,bvlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9301 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9302 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9303 int UNUSED written = 0;
9304 IADDR UNUSED pc = abuf->addr;
9305 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9308 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9309 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1))) {
9311 USI opval = GET_H_SPR (((UINT) 272));
9312 sim_queue_pc_write (current_cpu, opval);
9313 written |= (1 << 3);
9314 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9319 abuf->written = written;
9324 /* bnvlr: bnvlr$pack $ICCi_2,$hint */
9327 SEM_FN_NAME (frvbf,bnvlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9329 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9330 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9331 int UNUSED written = 0;
9332 IADDR UNUSED pc = abuf->addr;
9333 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9336 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9337 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1)))) {
9339 USI opval = GET_H_SPR (((UINT) 272));
9340 sim_queue_pc_write (current_cpu, opval);
9341 written |= (1 << 3);
9342 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9347 abuf->written = written;
9352 /* fbralr: fbralr$pack$hint_taken */
9355 SEM_FN_NAME (frvbf,fbralr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9357 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9358 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9359 int UNUSED written = 0;
9360 IADDR UNUSED pc = abuf->addr;
9361 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9364 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9366 USI opval = GET_H_SPR (((UINT) 272));
9367 sim_queue_pc_write (current_cpu, opval);
9368 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9376 /* fbnolr: fbnolr$pack$hint_not_taken */
9379 SEM_FN_NAME (frvbf,fbnolr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9381 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9382 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9383 int UNUSED written = 0;
9384 IADDR UNUSED pc = abuf->addr;
9385 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9387 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9393 /* fbeqlr: fbeqlr$pack $FCCi_2,$hint */
9396 SEM_FN_NAME (frvbf,fbeqlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9398 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9399 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9400 int UNUSED written = 0;
9401 IADDR UNUSED pc = abuf->addr;
9402 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9405 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9406 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3))) {
9408 USI opval = GET_H_SPR (((UINT) 272));
9409 sim_queue_pc_write (current_cpu, opval);
9410 written |= (1 << 3);
9411 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9416 abuf->written = written;
9421 /* fbnelr: fbnelr$pack $FCCi_2,$hint */
9424 SEM_FN_NAME (frvbf,fbnelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9426 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9427 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9428 int UNUSED written = 0;
9429 IADDR UNUSED pc = abuf->addr;
9430 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9433 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9434 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))))) {
9436 USI opval = GET_H_SPR (((UINT) 272));
9437 sim_queue_pc_write (current_cpu, opval);
9438 written |= (1 << 3);
9439 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9444 abuf->written = written;
9449 /* fblglr: fblglr$pack $FCCi_2,$hint */
9452 SEM_FN_NAME (frvbf,fblglr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9454 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9455 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9456 int UNUSED written = 0;
9457 IADDR UNUSED pc = abuf->addr;
9458 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9461 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9462 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)))) {
9464 USI opval = GET_H_SPR (((UINT) 272));
9465 sim_queue_pc_write (current_cpu, opval);
9466 written |= (1 << 3);
9467 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9472 abuf->written = written;
9477 /* fbuelr: fbuelr$pack $FCCi_2,$hint */
9480 SEM_FN_NAME (frvbf,fbuelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9482 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9483 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9484 int UNUSED written = 0;
9485 IADDR UNUSED pc = abuf->addr;
9486 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9489 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9490 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
9492 USI opval = GET_H_SPR (((UINT) 272));
9493 sim_queue_pc_write (current_cpu, opval);
9494 written |= (1 << 3);
9495 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9500 abuf->written = written;
9505 /* fbullr: fbullr$pack $FCCi_2,$hint */
9508 SEM_FN_NAME (frvbf,fbullr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9510 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9511 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9512 int UNUSED written = 0;
9513 IADDR UNUSED pc = abuf->addr;
9514 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9517 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9518 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
9520 USI opval = GET_H_SPR (((UINT) 272));
9521 sim_queue_pc_write (current_cpu, opval);
9522 written |= (1 << 3);
9523 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9528 abuf->written = written;
9533 /* fbgelr: fbgelr$pack $FCCi_2,$hint */
9536 SEM_FN_NAME (frvbf,fbgelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9538 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9539 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9540 int UNUSED written = 0;
9541 IADDR UNUSED pc = abuf->addr;
9542 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9545 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9546 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)))) {
9548 USI opval = GET_H_SPR (((UINT) 272));
9549 sim_queue_pc_write (current_cpu, opval);
9550 written |= (1 << 3);
9551 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9556 abuf->written = written;
9561 /* fbltlr: fbltlr$pack $FCCi_2,$hint */
9564 SEM_FN_NAME (frvbf,fbltlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9566 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9567 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9568 int UNUSED written = 0;
9569 IADDR UNUSED pc = abuf->addr;
9570 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9573 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9574 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2))) {
9576 USI opval = GET_H_SPR (((UINT) 272));
9577 sim_queue_pc_write (current_cpu, opval);
9578 written |= (1 << 3);
9579 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9584 abuf->written = written;
9589 /* fbugelr: fbugelr$pack $FCCi_2,$hint */
9592 SEM_FN_NAME (frvbf,fbugelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9594 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9595 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9596 int UNUSED written = 0;
9597 IADDR UNUSED pc = abuf->addr;
9598 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9601 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9602 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))))) {
9604 USI opval = GET_H_SPR (((UINT) 272));
9605 sim_queue_pc_write (current_cpu, opval);
9606 written |= (1 << 3);
9607 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9612 abuf->written = written;
9617 /* fbuglr: fbuglr$pack $FCCi_2,$hint */
9620 SEM_FN_NAME (frvbf,fbuglr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9622 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9623 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9624 int UNUSED written = 0;
9625 IADDR UNUSED pc = abuf->addr;
9626 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9629 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9630 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
9632 USI opval = GET_H_SPR (((UINT) 272));
9633 sim_queue_pc_write (current_cpu, opval);
9634 written |= (1 << 3);
9635 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9640 abuf->written = written;
9645 /* fblelr: fblelr$pack $FCCi_2,$hint */
9648 SEM_FN_NAME (frvbf,fblelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9650 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9651 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9652 int UNUSED written = 0;
9653 IADDR UNUSED pc = abuf->addr;
9654 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9657 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9658 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)))) {
9660 USI opval = GET_H_SPR (((UINT) 272));
9661 sim_queue_pc_write (current_cpu, opval);
9662 written |= (1 << 3);
9663 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9668 abuf->written = written;
9673 /* fbgtlr: fbgtlr$pack $FCCi_2,$hint */
9676 SEM_FN_NAME (frvbf,fbgtlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9678 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9679 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9680 int UNUSED written = 0;
9681 IADDR UNUSED pc = abuf->addr;
9682 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9685 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9686 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1))) {
9688 USI opval = GET_H_SPR (((UINT) 272));
9689 sim_queue_pc_write (current_cpu, opval);
9690 written |= (1 << 3);
9691 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9696 abuf->written = written;
9701 /* fbulelr: fbulelr$pack $FCCi_2,$hint */
9704 SEM_FN_NAME (frvbf,fbulelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9706 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9707 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9708 int UNUSED written = 0;
9709 IADDR UNUSED pc = abuf->addr;
9710 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9713 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9714 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))))) {
9716 USI opval = GET_H_SPR (((UINT) 272));
9717 sim_queue_pc_write (current_cpu, opval);
9718 written |= (1 << 3);
9719 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9724 abuf->written = written;
9729 /* fbulr: fbulr$pack $FCCi_2,$hint */
9732 SEM_FN_NAME (frvbf,fbulr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9734 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9735 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9736 int UNUSED written = 0;
9737 IADDR UNUSED pc = abuf->addr;
9738 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9741 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9742 if (TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1))) {
9744 USI opval = GET_H_SPR (((UINT) 272));
9745 sim_queue_pc_write (current_cpu, opval);
9746 written |= (1 << 3);
9747 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9752 abuf->written = written;
9757 /* fbolr: fbolr$pack $FCCi_2,$hint */
9760 SEM_FN_NAME (frvbf,fbolr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9762 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9763 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9764 int UNUSED written = 0;
9765 IADDR UNUSED pc = abuf->addr;
9766 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9769 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9770 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))))) {
9772 USI opval = GET_H_SPR (((UINT) 272));
9773 sim_queue_pc_write (current_cpu, opval);
9774 written |= (1 << 3);
9775 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9780 abuf->written = written;
9785 /* bcralr: bcralr$pack $ccond$hint_taken */
9788 SEM_FN_NAME (frvbf,bcralr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9790 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9791 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9792 int UNUSED written = 0;
9793 IADDR UNUSED pc = abuf->addr;
9794 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9797 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9800 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
9802 USI opval = tmp_tmp;
9803 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
9804 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
9806 if (EQSI (FLD (f_ccond), 0)) {
9807 if (NESI (tmp_tmp, 0)) {
9809 USI opval = GET_H_SPR (((UINT) 272));
9810 sim_queue_pc_write (current_cpu, opval);
9811 written |= (1 << 5);
9812 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9816 if (EQSI (tmp_tmp, 0)) {
9818 USI opval = GET_H_SPR (((UINT) 272));
9819 sim_queue_pc_write (current_cpu, opval);
9820 written |= (1 << 5);
9821 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9828 abuf->written = written;
9833 /* bcnolr: bcnolr$pack$hint_not_taken */
9836 SEM_FN_NAME (frvbf,bcnolr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9838 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9839 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9840 int UNUSED written = 0;
9841 IADDR UNUSED pc = abuf->addr;
9842 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9845 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9848 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
9850 USI opval = tmp_tmp;
9851 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
9852 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
9862 /* bceqlr: bceqlr$pack $ICCi_2,$ccond,$hint */
9865 SEM_FN_NAME (frvbf,bceqlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9867 #define FLD(f) abuf->fields.sfmt_bceqlr.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);
9883 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2))) {
9884 if (EQSI (FLD (f_ccond), 0)) {
9885 if (NESI (tmp_tmp, 0)) {
9887 USI opval = GET_H_SPR (((UINT) 272));
9888 sim_queue_pc_write (current_cpu, opval);
9889 written |= (1 << 6);
9890 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9894 if (EQSI (tmp_tmp, 0)) {
9896 USI opval = GET_H_SPR (((UINT) 272));
9897 sim_queue_pc_write (current_cpu, opval);
9898 written |= (1 << 6);
9899 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9907 abuf->written = written;
9912 /* bcnelr: bcnelr$pack $ICCi_2,$ccond,$hint */
9915 SEM_FN_NAME (frvbf,bcnelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9917 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9918 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9919 int UNUSED written = 0;
9920 IADDR UNUSED pc = abuf->addr;
9921 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9924 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9927 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
9929 USI opval = tmp_tmp;
9930 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
9931 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
9933 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
9934 if (EQSI (FLD (f_ccond), 0)) {
9935 if (NESI (tmp_tmp, 0)) {
9937 USI opval = GET_H_SPR (((UINT) 272));
9938 sim_queue_pc_write (current_cpu, opval);
9939 written |= (1 << 6);
9940 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9944 if (EQSI (tmp_tmp, 0)) {
9946 USI opval = GET_H_SPR (((UINT) 272));
9947 sim_queue_pc_write (current_cpu, opval);
9948 written |= (1 << 6);
9949 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9957 abuf->written = written;
9962 /* bclelr: bclelr$pack $ICCi_2,$ccond,$hint */
9965 SEM_FN_NAME (frvbf,bclelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9967 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9968 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9969 int UNUSED written = 0;
9970 IADDR UNUSED pc = abuf->addr;
9971 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9974 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9977 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
9979 USI opval = tmp_tmp;
9980 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
9981 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
9983 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))))) {
9984 if (EQSI (FLD (f_ccond), 0)) {
9985 if (NESI (tmp_tmp, 0)) {
9987 USI opval = GET_H_SPR (((UINT) 272));
9988 sim_queue_pc_write (current_cpu, opval);
9989 written |= (1 << 6);
9990 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9994 if (EQSI (tmp_tmp, 0)) {
9996 USI opval = GET_H_SPR (((UINT) 272));
9997 sim_queue_pc_write (current_cpu, opval);
9998 written |= (1 << 6);
9999 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10007 abuf->written = written;
10012 /* bcgtlr: bcgtlr$pack $ICCi_2,$ccond,$hint */
10015 SEM_FN_NAME (frvbf,bcgtlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10017 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10018 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10019 int UNUSED written = 0;
10020 IADDR UNUSED pc = abuf->addr;
10021 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10024 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10027 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10029 USI opval = tmp_tmp;
10030 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10031 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10033 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)))))) {
10034 if (EQSI (FLD (f_ccond), 0)) {
10035 if (NESI (tmp_tmp, 0)) {
10037 USI opval = GET_H_SPR (((UINT) 272));
10038 sim_queue_pc_write (current_cpu, opval);
10039 written |= (1 << 6);
10040 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10044 if (EQSI (tmp_tmp, 0)) {
10046 USI opval = GET_H_SPR (((UINT) 272));
10047 sim_queue_pc_write (current_cpu, opval);
10048 written |= (1 << 6);
10049 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10057 abuf->written = written;
10062 /* bcltlr: bcltlr$pack $ICCi_2,$ccond,$hint */
10065 SEM_FN_NAME (frvbf,bcltlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10067 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10068 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10069 int UNUSED written = 0;
10070 IADDR UNUSED pc = abuf->addr;
10071 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10074 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10077 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10079 USI opval = tmp_tmp;
10080 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10081 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10083 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)))) {
10084 if (EQSI (FLD (f_ccond), 0)) {
10085 if (NESI (tmp_tmp, 0)) {
10087 USI opval = GET_H_SPR (((UINT) 272));
10088 sim_queue_pc_write (current_cpu, opval);
10089 written |= (1 << 6);
10090 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10094 if (EQSI (tmp_tmp, 0)) {
10096 USI opval = GET_H_SPR (((UINT) 272));
10097 sim_queue_pc_write (current_cpu, opval);
10098 written |= (1 << 6);
10099 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10107 abuf->written = written;
10112 /* bcgelr: bcgelr$pack $ICCi_2,$ccond,$hint */
10115 SEM_FN_NAME (frvbf,bcgelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10117 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10118 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10119 int UNUSED written = 0;
10120 IADDR UNUSED pc = abuf->addr;
10121 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10124 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10127 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10129 USI opval = tmp_tmp;
10130 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10131 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10133 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))))) {
10134 if (EQSI (FLD (f_ccond), 0)) {
10135 if (NESI (tmp_tmp, 0)) {
10137 USI opval = GET_H_SPR (((UINT) 272));
10138 sim_queue_pc_write (current_cpu, opval);
10139 written |= (1 << 6);
10140 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10144 if (EQSI (tmp_tmp, 0)) {
10146 USI opval = GET_H_SPR (((UINT) 272));
10147 sim_queue_pc_write (current_cpu, opval);
10148 written |= (1 << 6);
10149 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10157 abuf->written = written;
10162 /* bclslr: bclslr$pack $ICCi_2,$ccond,$hint */
10165 SEM_FN_NAME (frvbf,bclslr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10167 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10168 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10169 int UNUSED written = 0;
10170 IADDR UNUSED pc = abuf->addr;
10171 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10174 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10177 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10179 USI opval = tmp_tmp;
10180 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10181 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10183 if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
10184 if (EQSI (FLD (f_ccond), 0)) {
10185 if (NESI (tmp_tmp, 0)) {
10187 USI opval = GET_H_SPR (((UINT) 272));
10188 sim_queue_pc_write (current_cpu, opval);
10189 written |= (1 << 6);
10190 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10194 if (EQSI (tmp_tmp, 0)) {
10196 USI opval = GET_H_SPR (((UINT) 272));
10197 sim_queue_pc_write (current_cpu, opval);
10198 written |= (1 << 6);
10199 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10207 abuf->written = written;
10212 /* bchilr: bchilr$pack $ICCi_2,$ccond,$hint */
10215 SEM_FN_NAME (frvbf,bchilr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10217 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10218 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10219 int UNUSED written = 0;
10220 IADDR UNUSED pc = abuf->addr;
10221 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10224 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10227 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10229 USI opval = tmp_tmp;
10230 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10231 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10233 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))))) {
10234 if (EQSI (FLD (f_ccond), 0)) {
10235 if (NESI (tmp_tmp, 0)) {
10237 USI opval = GET_H_SPR (((UINT) 272));
10238 sim_queue_pc_write (current_cpu, opval);
10239 written |= (1 << 6);
10240 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10244 if (EQSI (tmp_tmp, 0)) {
10246 USI opval = GET_H_SPR (((UINT) 272));
10247 sim_queue_pc_write (current_cpu, opval);
10248 written |= (1 << 6);
10249 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10257 abuf->written = written;
10262 /* bcclr: bcclr$pack $ICCi_2,$ccond,$hint */
10265 SEM_FN_NAME (frvbf,bcclr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10267 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10268 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10269 int UNUSED written = 0;
10270 IADDR UNUSED pc = abuf->addr;
10271 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10274 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10277 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10279 USI opval = tmp_tmp;
10280 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10281 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10283 if (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1))) {
10284 if (EQSI (FLD (f_ccond), 0)) {
10285 if (NESI (tmp_tmp, 0)) {
10287 USI opval = GET_H_SPR (((UINT) 272));
10288 sim_queue_pc_write (current_cpu, opval);
10289 written |= (1 << 6);
10290 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10294 if (EQSI (tmp_tmp, 0)) {
10296 USI opval = GET_H_SPR (((UINT) 272));
10297 sim_queue_pc_write (current_cpu, opval);
10298 written |= (1 << 6);
10299 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10307 abuf->written = written;
10312 /* bcnclr: bcnclr$pack $ICCi_2,$ccond,$hint */
10315 SEM_FN_NAME (frvbf,bcnclr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10317 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10318 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10319 int UNUSED written = 0;
10320 IADDR UNUSED pc = abuf->addr;
10321 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10324 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10327 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10329 USI opval = tmp_tmp;
10330 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10331 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10333 if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)))) {
10334 if (EQSI (FLD (f_ccond), 0)) {
10335 if (NESI (tmp_tmp, 0)) {
10337 USI opval = GET_H_SPR (((UINT) 272));
10338 sim_queue_pc_write (current_cpu, opval);
10339 written |= (1 << 6);
10340 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10344 if (EQSI (tmp_tmp, 0)) {
10346 USI opval = GET_H_SPR (((UINT) 272));
10347 sim_queue_pc_write (current_cpu, opval);
10348 written |= (1 << 6);
10349 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10357 abuf->written = written;
10362 /* bcnlr: bcnlr$pack $ICCi_2,$ccond,$hint */
10365 SEM_FN_NAME (frvbf,bcnlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10367 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10368 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10369 int UNUSED written = 0;
10370 IADDR UNUSED pc = abuf->addr;
10371 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10374 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10377 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10379 USI opval = tmp_tmp;
10380 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10381 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10383 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3))) {
10384 if (EQSI (FLD (f_ccond), 0)) {
10385 if (NESI (tmp_tmp, 0)) {
10387 USI opval = GET_H_SPR (((UINT) 272));
10388 sim_queue_pc_write (current_cpu, opval);
10389 written |= (1 << 6);
10390 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10394 if (EQSI (tmp_tmp, 0)) {
10396 USI opval = GET_H_SPR (((UINT) 272));
10397 sim_queue_pc_write (current_cpu, opval);
10398 written |= (1 << 6);
10399 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10407 abuf->written = written;
10412 /* bcplr: bcplr$pack $ICCi_2,$ccond,$hint */
10415 SEM_FN_NAME (frvbf,bcplr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10417 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10418 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10419 int UNUSED written = 0;
10420 IADDR UNUSED pc = abuf->addr;
10421 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10424 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10427 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10429 USI opval = tmp_tmp;
10430 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10431 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10433 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3)))) {
10434 if (EQSI (FLD (f_ccond), 0)) {
10435 if (NESI (tmp_tmp, 0)) {
10437 USI opval = GET_H_SPR (((UINT) 272));
10438 sim_queue_pc_write (current_cpu, opval);
10439 written |= (1 << 6);
10440 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10444 if (EQSI (tmp_tmp, 0)) {
10446 USI opval = GET_H_SPR (((UINT) 272));
10447 sim_queue_pc_write (current_cpu, opval);
10448 written |= (1 << 6);
10449 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10457 abuf->written = written;
10462 /* bcvlr: bcvlr$pack $ICCi_2,$ccond,$hint */
10465 SEM_FN_NAME (frvbf,bcvlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10467 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10468 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10469 int UNUSED written = 0;
10470 IADDR UNUSED pc = abuf->addr;
10471 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10474 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10477 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10479 USI opval = tmp_tmp;
10480 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10481 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10483 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1))) {
10484 if (EQSI (FLD (f_ccond), 0)) {
10485 if (NESI (tmp_tmp, 0)) {
10487 USI opval = GET_H_SPR (((UINT) 272));
10488 sim_queue_pc_write (current_cpu, opval);
10489 written |= (1 << 6);
10490 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10494 if (EQSI (tmp_tmp, 0)) {
10496 USI opval = GET_H_SPR (((UINT) 272));
10497 sim_queue_pc_write (current_cpu, opval);
10498 written |= (1 << 6);
10499 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10507 abuf->written = written;
10512 /* bcnvlr: bcnvlr$pack $ICCi_2,$ccond,$hint */
10515 SEM_FN_NAME (frvbf,bcnvlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10517 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10518 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10519 int UNUSED written = 0;
10520 IADDR UNUSED pc = abuf->addr;
10521 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10524 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10527 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10529 USI opval = tmp_tmp;
10530 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10531 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10533 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1)))) {
10534 if (EQSI (FLD (f_ccond), 0)) {
10535 if (NESI (tmp_tmp, 0)) {
10537 USI opval = GET_H_SPR (((UINT) 272));
10538 sim_queue_pc_write (current_cpu, opval);
10539 written |= (1 << 6);
10540 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10544 if (EQSI (tmp_tmp, 0)) {
10546 USI opval = GET_H_SPR (((UINT) 272));
10547 sim_queue_pc_write (current_cpu, opval);
10548 written |= (1 << 6);
10549 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10557 abuf->written = written;
10562 /* fcbralr: fcbralr$pack $ccond$hint_taken */
10565 SEM_FN_NAME (frvbf,fcbralr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10567 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10568 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10569 int UNUSED written = 0;
10570 IADDR UNUSED pc = abuf->addr;
10571 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10574 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10577 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10579 USI opval = tmp_tmp;
10580 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10581 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10583 if (EQSI (FLD (f_ccond), 0)) {
10584 if (NESI (tmp_tmp, 0)) {
10586 USI opval = GET_H_SPR (((UINT) 272));
10587 sim_queue_pc_write (current_cpu, opval);
10588 written |= (1 << 5);
10589 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10593 if (EQSI (tmp_tmp, 0)) {
10595 USI opval = GET_H_SPR (((UINT) 272));
10596 sim_queue_pc_write (current_cpu, opval);
10597 written |= (1 << 5);
10598 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10605 abuf->written = written;
10610 /* fcbnolr: fcbnolr$pack$hint_not_taken */
10613 SEM_FN_NAME (frvbf,fcbnolr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10615 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10616 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10617 int UNUSED written = 0;
10618 IADDR UNUSED pc = abuf->addr;
10619 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10622 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10625 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10627 USI opval = tmp_tmp;
10628 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10629 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10631 ((void) 0); /*nop*/
10639 /* fcbeqlr: fcbeqlr$pack $FCCi_2,$ccond,$hint */
10642 SEM_FN_NAME (frvbf,fcbeqlr) (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 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3))) {
10661 if (EQSI (FLD (f_ccond), 0)) {
10662 if (NESI (tmp_tmp, 0)) {
10664 USI opval = GET_H_SPR (((UINT) 272));
10665 sim_queue_pc_write (current_cpu, opval);
10666 written |= (1 << 6);
10667 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10671 if (EQSI (tmp_tmp, 0)) {
10673 USI opval = GET_H_SPR (((UINT) 272));
10674 sim_queue_pc_write (current_cpu, opval);
10675 written |= (1 << 6);
10676 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10684 abuf->written = written;
10689 /* fcbnelr: fcbnelr$pack $FCCi_2,$ccond,$hint */
10692 SEM_FN_NAME (frvbf,fcbnelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10694 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10695 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10696 int UNUSED written = 0;
10697 IADDR UNUSED pc = abuf->addr;
10698 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10701 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10704 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10706 USI opval = tmp_tmp;
10707 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10708 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10710 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))))) {
10711 if (EQSI (FLD (f_ccond), 0)) {
10712 if (NESI (tmp_tmp, 0)) {
10714 USI opval = GET_H_SPR (((UINT) 272));
10715 sim_queue_pc_write (current_cpu, opval);
10716 written |= (1 << 6);
10717 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10721 if (EQSI (tmp_tmp, 0)) {
10723 USI opval = GET_H_SPR (((UINT) 272));
10724 sim_queue_pc_write (current_cpu, opval);
10725 written |= (1 << 6);
10726 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10734 abuf->written = written;
10739 /* fcblglr: fcblglr$pack $FCCi_2,$ccond,$hint */
10742 SEM_FN_NAME (frvbf,fcblglr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10744 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10745 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10746 int UNUSED written = 0;
10747 IADDR UNUSED pc = abuf->addr;
10748 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10751 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10754 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10756 USI opval = tmp_tmp;
10757 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10758 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10760 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)))) {
10761 if (EQSI (FLD (f_ccond), 0)) {
10762 if (NESI (tmp_tmp, 0)) {
10764 USI opval = GET_H_SPR (((UINT) 272));
10765 sim_queue_pc_write (current_cpu, opval);
10766 written |= (1 << 6);
10767 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10771 if (EQSI (tmp_tmp, 0)) {
10773 USI opval = GET_H_SPR (((UINT) 272));
10774 sim_queue_pc_write (current_cpu, opval);
10775 written |= (1 << 6);
10776 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10784 abuf->written = written;
10789 /* fcbuelr: fcbuelr$pack $FCCi_2,$ccond,$hint */
10792 SEM_FN_NAME (frvbf,fcbuelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10794 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10795 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10796 int UNUSED written = 0;
10797 IADDR UNUSED pc = abuf->addr;
10798 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10801 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10804 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10806 USI opval = tmp_tmp;
10807 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10808 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10810 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
10811 if (EQSI (FLD (f_ccond), 0)) {
10812 if (NESI (tmp_tmp, 0)) {
10814 USI opval = GET_H_SPR (((UINT) 272));
10815 sim_queue_pc_write (current_cpu, opval);
10816 written |= (1 << 6);
10817 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10821 if (EQSI (tmp_tmp, 0)) {
10823 USI opval = GET_H_SPR (((UINT) 272));
10824 sim_queue_pc_write (current_cpu, opval);
10825 written |= (1 << 6);
10826 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10834 abuf->written = written;
10839 /* fcbullr: fcbullr$pack $FCCi_2,$ccond,$hint */
10842 SEM_FN_NAME (frvbf,fcbullr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10844 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10845 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10846 int UNUSED written = 0;
10847 IADDR UNUSED pc = abuf->addr;
10848 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10851 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10854 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10856 USI opval = tmp_tmp;
10857 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10858 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10860 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
10861 if (EQSI (FLD (f_ccond), 0)) {
10862 if (NESI (tmp_tmp, 0)) {
10864 USI opval = GET_H_SPR (((UINT) 272));
10865 sim_queue_pc_write (current_cpu, opval);
10866 written |= (1 << 6);
10867 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10871 if (EQSI (tmp_tmp, 0)) {
10873 USI opval = GET_H_SPR (((UINT) 272));
10874 sim_queue_pc_write (current_cpu, opval);
10875 written |= (1 << 6);
10876 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10884 abuf->written = written;
10889 /* fcbgelr: fcbgelr$pack $FCCi_2,$ccond,$hint */
10892 SEM_FN_NAME (frvbf,fcbgelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10894 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10895 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10896 int UNUSED written = 0;
10897 IADDR UNUSED pc = abuf->addr;
10898 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10901 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10904 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10906 USI opval = tmp_tmp;
10907 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10908 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10910 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)))) {
10911 if (EQSI (FLD (f_ccond), 0)) {
10912 if (NESI (tmp_tmp, 0)) {
10914 USI opval = GET_H_SPR (((UINT) 272));
10915 sim_queue_pc_write (current_cpu, opval);
10916 written |= (1 << 6);
10917 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10921 if (EQSI (tmp_tmp, 0)) {
10923 USI opval = GET_H_SPR (((UINT) 272));
10924 sim_queue_pc_write (current_cpu, opval);
10925 written |= (1 << 6);
10926 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10934 abuf->written = written;
10939 /* fcbltlr: fcbltlr$pack $FCCi_2,$ccond,$hint */
10942 SEM_FN_NAME (frvbf,fcbltlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10944 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10945 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10946 int UNUSED written = 0;
10947 IADDR UNUSED pc = abuf->addr;
10948 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10951 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10954 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10956 USI opval = tmp_tmp;
10957 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10958 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10960 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2))) {
10961 if (EQSI (FLD (f_ccond), 0)) {
10962 if (NESI (tmp_tmp, 0)) {
10964 USI opval = GET_H_SPR (((UINT) 272));
10965 sim_queue_pc_write (current_cpu, opval);
10966 written |= (1 << 6);
10967 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10971 if (EQSI (tmp_tmp, 0)) {
10973 USI opval = GET_H_SPR (((UINT) 272));
10974 sim_queue_pc_write (current_cpu, opval);
10975 written |= (1 << 6);
10976 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10984 abuf->written = written;
10989 /* fcbugelr: fcbugelr$pack $FCCi_2,$ccond,$hint */
10992 SEM_FN_NAME (frvbf,fcbugelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10994 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10995 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10996 int UNUSED written = 0;
10997 IADDR UNUSED pc = abuf->addr;
10998 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11001 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
11004 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
11006 USI opval = tmp_tmp;
11007 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
11008 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
11010 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))))) {
11011 if (EQSI (FLD (f_ccond), 0)) {
11012 if (NESI (tmp_tmp, 0)) {
11014 USI opval = GET_H_SPR (((UINT) 272));
11015 sim_queue_pc_write (current_cpu, opval);
11016 written |= (1 << 6);
11017 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11021 if (EQSI (tmp_tmp, 0)) {
11023 USI opval = GET_H_SPR (((UINT) 272));
11024 sim_queue_pc_write (current_cpu, opval);
11025 written |= (1 << 6);
11026 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11034 abuf->written = written;
11039 /* fcbuglr: fcbuglr$pack $FCCi_2,$ccond,$hint */
11042 SEM_FN_NAME (frvbf,fcbuglr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11044 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11045 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11046 int UNUSED written = 0;
11047 IADDR UNUSED pc = abuf->addr;
11048 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11051 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
11054 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
11056 USI opval = tmp_tmp;
11057 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
11058 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
11060 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
11061 if (EQSI (FLD (f_ccond), 0)) {
11062 if (NESI (tmp_tmp, 0)) {
11064 USI opval = GET_H_SPR (((UINT) 272));
11065 sim_queue_pc_write (current_cpu, opval);
11066 written |= (1 << 6);
11067 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11071 if (EQSI (tmp_tmp, 0)) {
11073 USI opval = GET_H_SPR (((UINT) 272));
11074 sim_queue_pc_write (current_cpu, opval);
11075 written |= (1 << 6);
11076 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11084 abuf->written = written;
11089 /* fcblelr: fcblelr$pack $FCCi_2,$ccond,$hint */
11092 SEM_FN_NAME (frvbf,fcblelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11094 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11095 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11096 int UNUSED written = 0;
11097 IADDR UNUSED pc = abuf->addr;
11098 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11101 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
11104 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
11106 USI opval = tmp_tmp;
11107 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
11108 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
11110 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)))) {
11111 if (EQSI (FLD (f_ccond), 0)) {
11112 if (NESI (tmp_tmp, 0)) {
11114 USI opval = GET_H_SPR (((UINT) 272));
11115 sim_queue_pc_write (current_cpu, opval);
11116 written |= (1 << 6);
11117 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11121 if (EQSI (tmp_tmp, 0)) {
11123 USI opval = GET_H_SPR (((UINT) 272));
11124 sim_queue_pc_write (current_cpu, opval);
11125 written |= (1 << 6);
11126 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11134 abuf->written = written;
11139 /* fcbgtlr: fcbgtlr$pack $FCCi_2,$ccond,$hint */
11142 SEM_FN_NAME (frvbf,fcbgtlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11144 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11145 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11146 int UNUSED written = 0;
11147 IADDR UNUSED pc = abuf->addr;
11148 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11151 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
11154 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
11156 USI opval = tmp_tmp;
11157 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
11158 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
11160 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1))) {
11161 if (EQSI (FLD (f_ccond), 0)) {
11162 if (NESI (tmp_tmp, 0)) {
11164 USI opval = GET_H_SPR (((UINT) 272));
11165 sim_queue_pc_write (current_cpu, opval);
11166 written |= (1 << 6);
11167 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11171 if (EQSI (tmp_tmp, 0)) {
11173 USI opval = GET_H_SPR (((UINT) 272));
11174 sim_queue_pc_write (current_cpu, opval);
11175 written |= (1 << 6);
11176 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11184 abuf->written = written;
11189 /* fcbulelr: fcbulelr$pack $FCCi_2,$ccond,$hint */
11192 SEM_FN_NAME (frvbf,fcbulelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11194 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11195 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11196 int UNUSED written = 0;
11197 IADDR UNUSED pc = abuf->addr;
11198 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11201 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
11204 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
11206 USI opval = tmp_tmp;
11207 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
11208 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
11210 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))))) {
11211 if (EQSI (FLD (f_ccond), 0)) {
11212 if (NESI (tmp_tmp, 0)) {
11214 USI opval = GET_H_SPR (((UINT) 272));
11215 sim_queue_pc_write (current_cpu, opval);
11216 written |= (1 << 6);
11217 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11221 if (EQSI (tmp_tmp, 0)) {
11223 USI opval = GET_H_SPR (((UINT) 272));
11224 sim_queue_pc_write (current_cpu, opval);
11225 written |= (1 << 6);
11226 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11234 abuf->written = written;
11239 /* fcbulr: fcbulr$pack $FCCi_2,$ccond,$hint */
11242 SEM_FN_NAME (frvbf,fcbulr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11244 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11245 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11246 int UNUSED written = 0;
11247 IADDR UNUSED pc = abuf->addr;
11248 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11251 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
11254 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
11256 USI opval = tmp_tmp;
11257 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
11258 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
11260 if (TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1))) {
11261 if (EQSI (FLD (f_ccond), 0)) {
11262 if (NESI (tmp_tmp, 0)) {
11264 USI opval = GET_H_SPR (((UINT) 272));
11265 sim_queue_pc_write (current_cpu, opval);
11266 written |= (1 << 6);
11267 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11271 if (EQSI (tmp_tmp, 0)) {
11273 USI opval = GET_H_SPR (((UINT) 272));
11274 sim_queue_pc_write (current_cpu, opval);
11275 written |= (1 << 6);
11276 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11284 abuf->written = written;
11289 /* fcbolr: fcbolr$pack $FCCi_2,$ccond,$hint */
11292 SEM_FN_NAME (frvbf,fcbolr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11294 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11295 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11296 int UNUSED written = 0;
11297 IADDR UNUSED pc = abuf->addr;
11298 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11301 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
11304 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
11306 USI opval = tmp_tmp;
11307 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
11308 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
11310 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))))) {
11311 if (EQSI (FLD (f_ccond), 0)) {
11312 if (NESI (tmp_tmp, 0)) {
11314 USI opval = GET_H_SPR (((UINT) 272));
11315 sim_queue_pc_write (current_cpu, opval);
11316 written |= (1 << 6);
11317 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11321 if (EQSI (tmp_tmp, 0)) {
11323 USI opval = GET_H_SPR (((UINT) 272));
11324 sim_queue_pc_write (current_cpu, opval);
11325 written |= (1 << 6);
11326 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11334 abuf->written = written;
11339 /* jmpl: jmpl$pack @($GRi,$GRj) */
11342 SEM_FN_NAME (frvbf,jmpl) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11344 #define FLD(f) abuf->fields.sfmt_cjmpl.f
11345 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11346 int UNUSED written = 0;
11347 IADDR UNUSED pc = abuf->addr;
11348 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11351 if (EQSI (FLD (f_LI), 1)) {
11352 frvbf_set_write_next_vliw_addr_to_LR (current_cpu, 1);
11355 USI opval = ANDSI (ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), 0xfffffffc);
11356 sim_queue_pc_write (current_cpu, opval);
11357 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11359 frvbf_model_branch (current_cpu, pc, 2);
11366 /* calll: calll$pack @($GRi,$GRj) */
11369 SEM_FN_NAME (frvbf,calll) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11371 #define FLD(f) abuf->fields.sfmt_cjmpl.f
11372 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11373 int UNUSED written = 0;
11374 IADDR UNUSED pc = abuf->addr;
11375 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11378 if (EQSI (FLD (f_LI), 1)) {
11379 frvbf_set_write_next_vliw_addr_to_LR (current_cpu, 1);
11382 USI opval = ANDSI (ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), 0xfffffffc);
11383 sim_queue_pc_write (current_cpu, opval);
11384 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11386 frvbf_model_branch (current_cpu, pc, 2);
11393 /* jmpil: jmpil$pack @($GRi,$s12) */
11396 SEM_FN_NAME (frvbf,jmpil) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11398 #define FLD(f) abuf->fields.sfmt_jmpil.f
11399 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11400 int UNUSED written = 0;
11401 IADDR UNUSED pc = abuf->addr;
11402 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11405 if (EQSI (FLD (f_LI), 1)) {
11406 frvbf_set_write_next_vliw_addr_to_LR (current_cpu, 1);
11409 USI opval = ANDSI (ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), 0xfffffffc);
11410 sim_queue_pc_write (current_cpu, opval);
11411 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11413 frvbf_model_branch (current_cpu, pc, 2);
11420 /* callil: callil$pack @($GRi,$s12) */
11423 SEM_FN_NAME (frvbf,callil) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11425 #define FLD(f) abuf->fields.sfmt_jmpil.f
11426 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11427 int UNUSED written = 0;
11428 IADDR UNUSED pc = abuf->addr;
11429 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11432 if (EQSI (FLD (f_LI), 1)) {
11433 frvbf_set_write_next_vliw_addr_to_LR (current_cpu, 1);
11436 USI opval = ANDSI (ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), 0xfffffffc);
11437 sim_queue_pc_write (current_cpu, opval);
11438 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11440 frvbf_model_branch (current_cpu, pc, 2);
11447 /* call: call$pack $label24 */
11450 SEM_FN_NAME (frvbf,call) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11452 #define FLD(f) abuf->fields.sfmt_call.f
11453 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11454 int UNUSED written = 0;
11455 IADDR UNUSED pc = abuf->addr;
11456 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11459 frvbf_set_write_next_vliw_addr_to_LR (current_cpu, 1);
11461 USI opval = FLD (i_label24);
11462 sim_queue_pc_write (current_cpu, opval);
11463 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11465 frvbf_model_branch (current_cpu, pc, 2);
11472 /* rett: rett$pack $debug */
11475 SEM_FN_NAME (frvbf,rett) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11477 #define FLD(f) abuf->fields.sfmt_rett.f
11478 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11479 int UNUSED written = 0;
11480 IADDR UNUSED pc = abuf->addr;
11481 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11485 USI opval = frv_rett (current_cpu, pc, FLD (f_debug));
11486 sim_queue_pc_write (current_cpu, opval);
11487 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11489 frvbf_model_branch (current_cpu, pc, 2);
11496 /* rei: rei$pack $eir */
11499 SEM_FN_NAME (frvbf,rei) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11501 #define FLD(f) abuf->fields.fmt_empty.f
11502 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11503 int UNUSED written = 0;
11504 IADDR UNUSED pc = abuf->addr;
11505 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11507 ((void) 0); /*nop*/
11513 /* tra: tra$pack $GRi,$GRj */
11516 SEM_FN_NAME (frvbf,tra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11518 #define FLD(f) abuf->fields.sfmt_ftne.f
11519 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11520 int UNUSED written = 0;
11521 IADDR UNUSED pc = abuf->addr;
11522 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11529 if (NEBI (CPU (h_psr_esr), 0)) {
11537 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11540 abuf->written = written;
11545 /* tno: tno$pack */
11548 SEM_FN_NAME (frvbf,tno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11550 #define FLD(f) abuf->fields.fmt_empty.f
11551 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11552 int UNUSED written = 0;
11553 IADDR UNUSED pc = abuf->addr;
11554 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11556 ((void) 0); /*nop*/
11562 /* teq: teq$pack $ICCi_2,$GRi,$GRj */
11565 SEM_FN_NAME (frvbf,teq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11567 #define FLD(f) abuf->fields.sfmt_teq.f
11568 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11569 int UNUSED written = 0;
11570 IADDR UNUSED pc = abuf->addr;
11571 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11573 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2))) {
11579 if (NEBI (CPU (h_psr_esr), 0)) {
11587 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11591 abuf->written = written;
11596 /* tne: tne$pack $ICCi_2,$GRi,$GRj */
11599 SEM_FN_NAME (frvbf,tne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11601 #define FLD(f) abuf->fields.sfmt_teq.f
11602 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11603 int UNUSED written = 0;
11604 IADDR UNUSED pc = abuf->addr;
11605 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11607 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
11613 if (NEBI (CPU (h_psr_esr), 0)) {
11621 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11625 abuf->written = written;
11630 /* tle: tle$pack $ICCi_2,$GRi,$GRj */
11633 SEM_FN_NAME (frvbf,tle) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11635 #define FLD(f) abuf->fields.sfmt_teq.f
11636 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11637 int UNUSED written = 0;
11638 IADDR UNUSED pc = abuf->addr;
11639 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11641 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))))) {
11647 if (NEBI (CPU (h_psr_esr), 0)) {
11655 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11659 abuf->written = written;
11664 /* tgt: tgt$pack $ICCi_2,$GRi,$GRj */
11667 SEM_FN_NAME (frvbf,tgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11669 #define FLD(f) abuf->fields.sfmt_teq.f
11670 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11671 int UNUSED written = 0;
11672 IADDR UNUSED pc = abuf->addr;
11673 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11675 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)))))) {
11681 if (NEBI (CPU (h_psr_esr), 0)) {
11689 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11693 abuf->written = written;
11698 /* tlt: tlt$pack $ICCi_2,$GRi,$GRj */
11701 SEM_FN_NAME (frvbf,tlt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11703 #define FLD(f) abuf->fields.sfmt_teq.f
11704 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11705 int UNUSED written = 0;
11706 IADDR UNUSED pc = abuf->addr;
11707 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11709 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)))) {
11715 if (NEBI (CPU (h_psr_esr), 0)) {
11723 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11727 abuf->written = written;
11732 /* tge: tge$pack $ICCi_2,$GRi,$GRj */
11735 SEM_FN_NAME (frvbf,tge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11737 #define FLD(f) abuf->fields.sfmt_teq.f
11738 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11739 int UNUSED written = 0;
11740 IADDR UNUSED pc = abuf->addr;
11741 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11743 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))))) {
11749 if (NEBI (CPU (h_psr_esr), 0)) {
11757 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11761 abuf->written = written;
11766 /* tls: tls$pack $ICCi_2,$GRi,$GRj */
11769 SEM_FN_NAME (frvbf,tls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11771 #define FLD(f) abuf->fields.sfmt_teq.f
11772 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11773 int UNUSED written = 0;
11774 IADDR UNUSED pc = abuf->addr;
11775 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11777 if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
11783 if (NEBI (CPU (h_psr_esr), 0)) {
11791 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11795 abuf->written = written;
11800 /* thi: thi$pack $ICCi_2,$GRi,$GRj */
11803 SEM_FN_NAME (frvbf,thi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11805 #define FLD(f) abuf->fields.sfmt_teq.f
11806 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11807 int UNUSED written = 0;
11808 IADDR UNUSED pc = abuf->addr;
11809 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11811 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))))) {
11817 if (NEBI (CPU (h_psr_esr), 0)) {
11825 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11829 abuf->written = written;
11834 /* tc: tc$pack $ICCi_2,$GRi,$GRj */
11837 SEM_FN_NAME (frvbf,tc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11839 #define FLD(f) abuf->fields.sfmt_teq.f
11840 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11841 int UNUSED written = 0;
11842 IADDR UNUSED pc = abuf->addr;
11843 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11845 if (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1))) {
11851 if (NEBI (CPU (h_psr_esr), 0)) {
11859 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11863 abuf->written = written;
11868 /* tnc: tnc$pack $ICCi_2,$GRi,$GRj */
11871 SEM_FN_NAME (frvbf,tnc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11873 #define FLD(f) abuf->fields.sfmt_teq.f
11874 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11875 int UNUSED written = 0;
11876 IADDR UNUSED pc = abuf->addr;
11877 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11879 if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)))) {
11885 if (NEBI (CPU (h_psr_esr), 0)) {
11893 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11897 abuf->written = written;
11902 /* tn: tn$pack $ICCi_2,$GRi,$GRj */
11905 SEM_FN_NAME (frvbf,tn) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11907 #define FLD(f) abuf->fields.sfmt_teq.f
11908 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11909 int UNUSED written = 0;
11910 IADDR UNUSED pc = abuf->addr;
11911 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11913 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3))) {
11919 if (NEBI (CPU (h_psr_esr), 0)) {
11927 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11931 abuf->written = written;
11936 /* tp: tp$pack $ICCi_2,$GRi,$GRj */
11939 SEM_FN_NAME (frvbf,tp) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11941 #define FLD(f) abuf->fields.sfmt_teq.f
11942 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11943 int UNUSED written = 0;
11944 IADDR UNUSED pc = abuf->addr;
11945 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11947 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3)))) {
11953 if (NEBI (CPU (h_psr_esr), 0)) {
11961 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11965 abuf->written = written;
11970 /* tv: tv$pack $ICCi_2,$GRi,$GRj */
11973 SEM_FN_NAME (frvbf,tv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11975 #define FLD(f) abuf->fields.sfmt_teq.f
11976 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11977 int UNUSED written = 0;
11978 IADDR UNUSED pc = abuf->addr;
11979 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11981 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1))) {
11987 if (NEBI (CPU (h_psr_esr), 0)) {
11995 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11999 abuf->written = written;
12004 /* tnv: tnv$pack $ICCi_2,$GRi,$GRj */
12007 SEM_FN_NAME (frvbf,tnv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12009 #define FLD(f) abuf->fields.sfmt_teq.f
12010 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12011 int UNUSED written = 0;
12012 IADDR UNUSED pc = abuf->addr;
12013 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12015 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1)))) {
12021 if (NEBI (CPU (h_psr_esr), 0)) {
12029 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12033 abuf->written = written;
12038 /* ftra: ftra$pack $GRi,$GRj */
12041 SEM_FN_NAME (frvbf,ftra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12043 #define FLD(f) abuf->fields.sfmt_ftne.f
12044 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12045 int UNUSED written = 0;
12046 IADDR UNUSED pc = abuf->addr;
12047 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12054 if (NEBI (CPU (h_psr_esr), 0)) {
12062 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12065 abuf->written = written;
12070 /* ftno: ftno$pack */
12073 SEM_FN_NAME (frvbf,ftno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12075 #define FLD(f) abuf->fields.fmt_empty.f
12076 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12077 int UNUSED written = 0;
12078 IADDR UNUSED pc = abuf->addr;
12079 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12081 ((void) 0); /*nop*/
12087 /* ftne: ftne$pack $FCCi_2,$GRi,$GRj */
12090 SEM_FN_NAME (frvbf,ftne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12092 #define FLD(f) abuf->fields.sfmt_ftne.f
12093 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12094 int UNUSED written = 0;
12095 IADDR UNUSED pc = abuf->addr;
12096 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12098 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))))) {
12104 if (NEBI (CPU (h_psr_esr), 0)) {
12112 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12116 abuf->written = written;
12121 /* fteq: fteq$pack $FCCi_2,$GRi,$GRj */
12124 SEM_FN_NAME (frvbf,fteq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12126 #define FLD(f) abuf->fields.sfmt_ftne.f
12127 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12128 int UNUSED written = 0;
12129 IADDR UNUSED pc = abuf->addr;
12130 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12132 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3))) {
12138 if (NEBI (CPU (h_psr_esr), 0)) {
12146 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12150 abuf->written = written;
12155 /* ftlg: ftlg$pack $FCCi_2,$GRi,$GRj */
12158 SEM_FN_NAME (frvbf,ftlg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12160 #define FLD(f) abuf->fields.sfmt_ftne.f
12161 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12162 int UNUSED written = 0;
12163 IADDR UNUSED pc = abuf->addr;
12164 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12166 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)))) {
12172 if (NEBI (CPU (h_psr_esr), 0)) {
12180 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12184 abuf->written = written;
12189 /* ftue: ftue$pack $FCCi_2,$GRi,$GRj */
12192 SEM_FN_NAME (frvbf,ftue) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12194 #define FLD(f) abuf->fields.sfmt_ftne.f
12195 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12196 int UNUSED written = 0;
12197 IADDR UNUSED pc = abuf->addr;
12198 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12200 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
12206 if (NEBI (CPU (h_psr_esr), 0)) {
12214 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12218 abuf->written = written;
12223 /* ftul: ftul$pack $FCCi_2,$GRi,$GRj */
12226 SEM_FN_NAME (frvbf,ftul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12228 #define FLD(f) abuf->fields.sfmt_ftne.f
12229 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12230 int UNUSED written = 0;
12231 IADDR UNUSED pc = abuf->addr;
12232 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12234 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
12240 if (NEBI (CPU (h_psr_esr), 0)) {
12248 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12252 abuf->written = written;
12257 /* ftge: ftge$pack $FCCi_2,$GRi,$GRj */
12260 SEM_FN_NAME (frvbf,ftge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12262 #define FLD(f) abuf->fields.sfmt_ftne.f
12263 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12264 int UNUSED written = 0;
12265 IADDR UNUSED pc = abuf->addr;
12266 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12268 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)))) {
12274 if (NEBI (CPU (h_psr_esr), 0)) {
12282 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12286 abuf->written = written;
12291 /* ftlt: ftlt$pack $FCCi_2,$GRi,$GRj */
12294 SEM_FN_NAME (frvbf,ftlt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12296 #define FLD(f) abuf->fields.sfmt_ftne.f
12297 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12298 int UNUSED written = 0;
12299 IADDR UNUSED pc = abuf->addr;
12300 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12302 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2))) {
12308 if (NEBI (CPU (h_psr_esr), 0)) {
12316 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12320 abuf->written = written;
12325 /* ftuge: ftuge$pack $FCCi_2,$GRi,$GRj */
12328 SEM_FN_NAME (frvbf,ftuge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12330 #define FLD(f) abuf->fields.sfmt_ftne.f
12331 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12332 int UNUSED written = 0;
12333 IADDR UNUSED pc = abuf->addr;
12334 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12336 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))))) {
12342 if (NEBI (CPU (h_psr_esr), 0)) {
12350 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12354 abuf->written = written;
12359 /* ftug: ftug$pack $FCCi_2,$GRi,$GRj */
12362 SEM_FN_NAME (frvbf,ftug) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12364 #define FLD(f) abuf->fields.sfmt_ftne.f
12365 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12366 int UNUSED written = 0;
12367 IADDR UNUSED pc = abuf->addr;
12368 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12370 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
12376 if (NEBI (CPU (h_psr_esr), 0)) {
12384 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12388 abuf->written = written;
12393 /* ftle: ftle$pack $FCCi_2,$GRi,$GRj */
12396 SEM_FN_NAME (frvbf,ftle) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12398 #define FLD(f) abuf->fields.sfmt_ftne.f
12399 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12400 int UNUSED written = 0;
12401 IADDR UNUSED pc = abuf->addr;
12402 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12404 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)))) {
12410 if (NEBI (CPU (h_psr_esr), 0)) {
12418 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12422 abuf->written = written;
12427 /* ftgt: ftgt$pack $FCCi_2,$GRi,$GRj */
12430 SEM_FN_NAME (frvbf,ftgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12432 #define FLD(f) abuf->fields.sfmt_ftne.f
12433 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12434 int UNUSED written = 0;
12435 IADDR UNUSED pc = abuf->addr;
12436 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12438 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1))) {
12444 if (NEBI (CPU (h_psr_esr), 0)) {
12452 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12456 abuf->written = written;
12461 /* ftule: ftule$pack $FCCi_2,$GRi,$GRj */
12464 SEM_FN_NAME (frvbf,ftule) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12466 #define FLD(f) abuf->fields.sfmt_ftne.f
12467 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12468 int UNUSED written = 0;
12469 IADDR UNUSED pc = abuf->addr;
12470 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12472 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))))) {
12478 if (NEBI (CPU (h_psr_esr), 0)) {
12486 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12490 abuf->written = written;
12495 /* ftu: ftu$pack $FCCi_2,$GRi,$GRj */
12498 SEM_FN_NAME (frvbf,ftu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12500 #define FLD(f) abuf->fields.sfmt_ftne.f
12501 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12502 int UNUSED written = 0;
12503 IADDR UNUSED pc = abuf->addr;
12504 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12506 if (TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1))) {
12512 if (NEBI (CPU (h_psr_esr), 0)) {
12520 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12524 abuf->written = written;
12529 /* fto: fto$pack $FCCi_2,$GRi,$GRj */
12532 SEM_FN_NAME (frvbf,fto) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12534 #define FLD(f) abuf->fields.sfmt_ftne.f
12535 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12536 int UNUSED written = 0;
12537 IADDR UNUSED pc = abuf->addr;
12538 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12540 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))))) {
12546 if (NEBI (CPU (h_psr_esr), 0)) {
12554 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12558 abuf->written = written;
12563 /* tira: tira$pack $GRi,$s12 */
12566 SEM_FN_NAME (frvbf,tira) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12568 #define FLD(f) abuf->fields.sfmt_ftine.f
12569 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12570 int UNUSED written = 0;
12571 IADDR UNUSED pc = abuf->addr;
12572 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12579 if (NEBI (CPU (h_psr_esr), 0)) {
12587 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12590 abuf->written = written;
12595 /* tino: tino$pack */
12598 SEM_FN_NAME (frvbf,tino) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12600 #define FLD(f) abuf->fields.fmt_empty.f
12601 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12602 int UNUSED written = 0;
12603 IADDR UNUSED pc = abuf->addr;
12604 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12606 ((void) 0); /*nop*/
12612 /* tieq: tieq$pack $ICCi_2,$GRi,$s12 */
12615 SEM_FN_NAME (frvbf,tieq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12617 #define FLD(f) abuf->fields.sfmt_tieq.f
12618 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12619 int UNUSED written = 0;
12620 IADDR UNUSED pc = abuf->addr;
12621 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12623 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2))) {
12629 if (NEBI (CPU (h_psr_esr), 0)) {
12637 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12641 abuf->written = written;
12646 /* tine: tine$pack $ICCi_2,$GRi,$s12 */
12649 SEM_FN_NAME (frvbf,tine) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12651 #define FLD(f) abuf->fields.sfmt_tieq.f
12652 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12653 int UNUSED written = 0;
12654 IADDR UNUSED pc = abuf->addr;
12655 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12657 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
12663 if (NEBI (CPU (h_psr_esr), 0)) {
12671 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12675 abuf->written = written;
12680 /* tile: tile$pack $ICCi_2,$GRi,$s12 */
12683 SEM_FN_NAME (frvbf,tile) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12685 #define FLD(f) abuf->fields.sfmt_tieq.f
12686 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12687 int UNUSED written = 0;
12688 IADDR UNUSED pc = abuf->addr;
12689 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12691 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))))) {
12697 if (NEBI (CPU (h_psr_esr), 0)) {
12705 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12709 abuf->written = written;
12714 /* tigt: tigt$pack $ICCi_2,$GRi,$s12 */
12717 SEM_FN_NAME (frvbf,tigt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12719 #define FLD(f) abuf->fields.sfmt_tieq.f
12720 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12721 int UNUSED written = 0;
12722 IADDR UNUSED pc = abuf->addr;
12723 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12725 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)))))) {
12731 if (NEBI (CPU (h_psr_esr), 0)) {
12739 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12743 abuf->written = written;
12748 /* tilt: tilt$pack $ICCi_2,$GRi,$s12 */
12751 SEM_FN_NAME (frvbf,tilt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12753 #define FLD(f) abuf->fields.sfmt_tieq.f
12754 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12755 int UNUSED written = 0;
12756 IADDR UNUSED pc = abuf->addr;
12757 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12759 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)))) {
12765 if (NEBI (CPU (h_psr_esr), 0)) {
12773 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12777 abuf->written = written;
12782 /* tige: tige$pack $ICCi_2,$GRi,$s12 */
12785 SEM_FN_NAME (frvbf,tige) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12787 #define FLD(f) abuf->fields.sfmt_tieq.f
12788 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12789 int UNUSED written = 0;
12790 IADDR UNUSED pc = abuf->addr;
12791 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12793 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))))) {
12799 if (NEBI (CPU (h_psr_esr), 0)) {
12807 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12811 abuf->written = written;
12816 /* tils: tils$pack $ICCi_2,$GRi,$s12 */
12819 SEM_FN_NAME (frvbf,tils) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12821 #define FLD(f) abuf->fields.sfmt_tieq.f
12822 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12823 int UNUSED written = 0;
12824 IADDR UNUSED pc = abuf->addr;
12825 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12827 if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
12833 if (NEBI (CPU (h_psr_esr), 0)) {
12841 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12845 abuf->written = written;
12850 /* tihi: tihi$pack $ICCi_2,$GRi,$s12 */
12853 SEM_FN_NAME (frvbf,tihi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12855 #define FLD(f) abuf->fields.sfmt_tieq.f
12856 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12857 int UNUSED written = 0;
12858 IADDR UNUSED pc = abuf->addr;
12859 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12861 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))))) {
12867 if (NEBI (CPU (h_psr_esr), 0)) {
12875 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12879 abuf->written = written;
12884 /* tic: tic$pack $ICCi_2,$GRi,$s12 */
12887 SEM_FN_NAME (frvbf,tic) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12889 #define FLD(f) abuf->fields.sfmt_tieq.f
12890 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12891 int UNUSED written = 0;
12892 IADDR UNUSED pc = abuf->addr;
12893 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12895 if (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1))) {
12901 if (NEBI (CPU (h_psr_esr), 0)) {
12909 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12913 abuf->written = written;
12918 /* tinc: tinc$pack $ICCi_2,$GRi,$s12 */
12921 SEM_FN_NAME (frvbf,tinc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12923 #define FLD(f) abuf->fields.sfmt_tieq.f
12924 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12925 int UNUSED written = 0;
12926 IADDR UNUSED pc = abuf->addr;
12927 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12929 if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)))) {
12935 if (NEBI (CPU (h_psr_esr), 0)) {
12943 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12947 abuf->written = written;
12952 /* tin: tin$pack $ICCi_2,$GRi,$s12 */
12955 SEM_FN_NAME (frvbf,tin) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12957 #define FLD(f) abuf->fields.sfmt_tieq.f
12958 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12959 int UNUSED written = 0;
12960 IADDR UNUSED pc = abuf->addr;
12961 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12963 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3))) {
12969 if (NEBI (CPU (h_psr_esr), 0)) {
12977 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12981 abuf->written = written;
12986 /* tip: tip$pack $ICCi_2,$GRi,$s12 */
12989 SEM_FN_NAME (frvbf,tip) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12991 #define FLD(f) abuf->fields.sfmt_tieq.f
12992 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12993 int UNUSED written = 0;
12994 IADDR UNUSED pc = abuf->addr;
12995 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12997 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3)))) {
13003 if (NEBI (CPU (h_psr_esr), 0)) {
13011 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13015 abuf->written = written;
13020 /* tiv: tiv$pack $ICCi_2,$GRi,$s12 */
13023 SEM_FN_NAME (frvbf,tiv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13025 #define FLD(f) abuf->fields.sfmt_tieq.f
13026 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13027 int UNUSED written = 0;
13028 IADDR UNUSED pc = abuf->addr;
13029 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13031 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1))) {
13037 if (NEBI (CPU (h_psr_esr), 0)) {
13045 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13049 abuf->written = written;
13054 /* tinv: tinv$pack $ICCi_2,$GRi,$s12 */
13057 SEM_FN_NAME (frvbf,tinv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13059 #define FLD(f) abuf->fields.sfmt_tieq.f
13060 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13061 int UNUSED written = 0;
13062 IADDR UNUSED pc = abuf->addr;
13063 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13065 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1)))) {
13071 if (NEBI (CPU (h_psr_esr), 0)) {
13079 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13083 abuf->written = written;
13088 /* ftira: ftira$pack $GRi,$s12 */
13091 SEM_FN_NAME (frvbf,ftira) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13093 #define FLD(f) abuf->fields.sfmt_ftine.f
13094 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13095 int UNUSED written = 0;
13096 IADDR UNUSED pc = abuf->addr;
13097 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13104 if (NEBI (CPU (h_psr_esr), 0)) {
13112 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13115 abuf->written = written;
13120 /* ftino: ftino$pack */
13123 SEM_FN_NAME (frvbf,ftino) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13125 #define FLD(f) abuf->fields.fmt_empty.f
13126 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13127 int UNUSED written = 0;
13128 IADDR UNUSED pc = abuf->addr;
13129 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13131 ((void) 0); /*nop*/
13137 /* ftine: ftine$pack $FCCi_2,$GRi,$s12 */
13140 SEM_FN_NAME (frvbf,ftine) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13142 #define FLD(f) abuf->fields.sfmt_ftine.f
13143 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13144 int UNUSED written = 0;
13145 IADDR UNUSED pc = abuf->addr;
13146 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13148 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))))) {
13154 if (NEBI (CPU (h_psr_esr), 0)) {
13162 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13166 abuf->written = written;
13171 /* ftieq: ftieq$pack $FCCi_2,$GRi,$s12 */
13174 SEM_FN_NAME (frvbf,ftieq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13176 #define FLD(f) abuf->fields.sfmt_ftine.f
13177 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13178 int UNUSED written = 0;
13179 IADDR UNUSED pc = abuf->addr;
13180 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13182 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3))) {
13188 if (NEBI (CPU (h_psr_esr), 0)) {
13196 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13200 abuf->written = written;
13205 /* ftilg: ftilg$pack $FCCi_2,$GRi,$s12 */
13208 SEM_FN_NAME (frvbf,ftilg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13210 #define FLD(f) abuf->fields.sfmt_ftine.f
13211 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13212 int UNUSED written = 0;
13213 IADDR UNUSED pc = abuf->addr;
13214 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13216 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)))) {
13222 if (NEBI (CPU (h_psr_esr), 0)) {
13230 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13234 abuf->written = written;
13239 /* ftiue: ftiue$pack $FCCi_2,$GRi,$s12 */
13242 SEM_FN_NAME (frvbf,ftiue) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13244 #define FLD(f) abuf->fields.sfmt_ftine.f
13245 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13246 int UNUSED written = 0;
13247 IADDR UNUSED pc = abuf->addr;
13248 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13250 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
13256 if (NEBI (CPU (h_psr_esr), 0)) {
13264 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13268 abuf->written = written;
13273 /* ftiul: ftiul$pack $FCCi_2,$GRi,$s12 */
13276 SEM_FN_NAME (frvbf,ftiul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13278 #define FLD(f) abuf->fields.sfmt_ftine.f
13279 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13280 int UNUSED written = 0;
13281 IADDR UNUSED pc = abuf->addr;
13282 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13284 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
13290 if (NEBI (CPU (h_psr_esr), 0)) {
13298 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13302 abuf->written = written;
13307 /* ftige: ftige$pack $FCCi_2,$GRi,$s12 */
13310 SEM_FN_NAME (frvbf,ftige) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13312 #define FLD(f) abuf->fields.sfmt_ftine.f
13313 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13314 int UNUSED written = 0;
13315 IADDR UNUSED pc = abuf->addr;
13316 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13318 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)))) {
13324 if (NEBI (CPU (h_psr_esr), 0)) {
13332 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13336 abuf->written = written;
13341 /* ftilt: ftilt$pack $FCCi_2,$GRi,$s12 */
13344 SEM_FN_NAME (frvbf,ftilt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13346 #define FLD(f) abuf->fields.sfmt_ftine.f
13347 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13348 int UNUSED written = 0;
13349 IADDR UNUSED pc = abuf->addr;
13350 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13352 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2))) {
13358 if (NEBI (CPU (h_psr_esr), 0)) {
13366 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13370 abuf->written = written;
13375 /* ftiuge: ftiuge$pack $FCCi_2,$GRi,$s12 */
13378 SEM_FN_NAME (frvbf,ftiuge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13380 #define FLD(f) abuf->fields.sfmt_ftine.f
13381 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13382 int UNUSED written = 0;
13383 IADDR UNUSED pc = abuf->addr;
13384 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13386 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))))) {
13392 if (NEBI (CPU (h_psr_esr), 0)) {
13400 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13404 abuf->written = written;
13409 /* ftiug: ftiug$pack $FCCi_2,$GRi,$s12 */
13412 SEM_FN_NAME (frvbf,ftiug) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13414 #define FLD(f) abuf->fields.sfmt_ftine.f
13415 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13416 int UNUSED written = 0;
13417 IADDR UNUSED pc = abuf->addr;
13418 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13420 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
13426 if (NEBI (CPU (h_psr_esr), 0)) {
13434 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13438 abuf->written = written;
13443 /* ftile: ftile$pack $FCCi_2,$GRi,$s12 */
13446 SEM_FN_NAME (frvbf,ftile) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13448 #define FLD(f) abuf->fields.sfmt_ftine.f
13449 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13450 int UNUSED written = 0;
13451 IADDR UNUSED pc = abuf->addr;
13452 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13454 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)))) {
13460 if (NEBI (CPU (h_psr_esr), 0)) {
13468 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13472 abuf->written = written;
13477 /* ftigt: ftigt$pack $FCCi_2,$GRi,$s12 */
13480 SEM_FN_NAME (frvbf,ftigt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13482 #define FLD(f) abuf->fields.sfmt_ftine.f
13483 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13484 int UNUSED written = 0;
13485 IADDR UNUSED pc = abuf->addr;
13486 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13488 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1))) {
13494 if (NEBI (CPU (h_psr_esr), 0)) {
13502 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13506 abuf->written = written;
13511 /* ftiule: ftiule$pack $FCCi_2,$GRi,$s12 */
13514 SEM_FN_NAME (frvbf,ftiule) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13516 #define FLD(f) abuf->fields.sfmt_ftine.f
13517 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13518 int UNUSED written = 0;
13519 IADDR UNUSED pc = abuf->addr;
13520 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13522 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))))) {
13528 if (NEBI (CPU (h_psr_esr), 0)) {
13536 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13540 abuf->written = written;
13545 /* ftiu: ftiu$pack $FCCi_2,$GRi,$s12 */
13548 SEM_FN_NAME (frvbf,ftiu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13550 #define FLD(f) abuf->fields.sfmt_ftine.f
13551 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13552 int UNUSED written = 0;
13553 IADDR UNUSED pc = abuf->addr;
13554 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13556 if (TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1))) {
13562 if (NEBI (CPU (h_psr_esr), 0)) {
13570 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13574 abuf->written = written;
13579 /* ftio: ftio$pack $FCCi_2,$GRi,$s12 */
13582 SEM_FN_NAME (frvbf,ftio) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13584 #define FLD(f) abuf->fields.sfmt_ftine.f
13585 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13586 int UNUSED written = 0;
13587 IADDR UNUSED pc = abuf->addr;
13588 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13590 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))))) {
13596 if (NEBI (CPU (h_psr_esr), 0)) {
13604 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13608 abuf->written = written;
13613 /* break: break$pack */
13616 SEM_FN_NAME (frvbf,break) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13618 #define FLD(f) abuf->fields.sfmt_break.f
13619 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13620 int UNUSED written = 0;
13621 IADDR UNUSED pc = abuf->addr;
13622 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13631 frv_break (current_cpu);
13638 /* mtrap: mtrap$pack */
13641 SEM_FN_NAME (frvbf,mtrap) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13643 #define FLD(f) abuf->fields.fmt_empty.f
13644 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13645 int UNUSED written = 0;
13646 IADDR UNUSED pc = abuf->addr;
13647 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13649 frv_mtrap (current_cpu);
13655 /* andcr: andcr$pack $CRi,$CRj,$CRk */
13658 SEM_FN_NAME (frvbf,andcr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13660 #define FLD(f) abuf->fields.sfmt_andcr.f
13661 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13662 int UNUSED written = 0;
13663 IADDR UNUSED pc = abuf->addr;
13664 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13667 UQI opval = frvbf_cr_logic (current_cpu, 0, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13668 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13669 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13676 /* orcr: orcr$pack $CRi,$CRj,$CRk */
13679 SEM_FN_NAME (frvbf,orcr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13681 #define FLD(f) abuf->fields.sfmt_andcr.f
13682 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13683 int UNUSED written = 0;
13684 IADDR UNUSED pc = abuf->addr;
13685 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13688 UQI opval = frvbf_cr_logic (current_cpu, 1, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13689 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13690 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13697 /* xorcr: xorcr$pack $CRi,$CRj,$CRk */
13700 SEM_FN_NAME (frvbf,xorcr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13702 #define FLD(f) abuf->fields.sfmt_andcr.f
13703 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13704 int UNUSED written = 0;
13705 IADDR UNUSED pc = abuf->addr;
13706 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13709 UQI opval = frvbf_cr_logic (current_cpu, 2, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13710 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13711 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13718 /* nandcr: nandcr$pack $CRi,$CRj,$CRk */
13721 SEM_FN_NAME (frvbf,nandcr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13723 #define FLD(f) abuf->fields.sfmt_andcr.f
13724 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13725 int UNUSED written = 0;
13726 IADDR UNUSED pc = abuf->addr;
13727 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13730 UQI opval = frvbf_cr_logic (current_cpu, 3, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13731 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13732 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13739 /* norcr: norcr$pack $CRi,$CRj,$CRk */
13742 SEM_FN_NAME (frvbf,norcr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13744 #define FLD(f) abuf->fields.sfmt_andcr.f
13745 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13746 int UNUSED written = 0;
13747 IADDR UNUSED pc = abuf->addr;
13748 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13751 UQI opval = frvbf_cr_logic (current_cpu, 4, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13752 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13753 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13760 /* andncr: andncr$pack $CRi,$CRj,$CRk */
13763 SEM_FN_NAME (frvbf,andncr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13765 #define FLD(f) abuf->fields.sfmt_andcr.f
13766 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13767 int UNUSED written = 0;
13768 IADDR UNUSED pc = abuf->addr;
13769 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13772 UQI opval = frvbf_cr_logic (current_cpu, 5, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13773 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13774 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13781 /* orncr: orncr$pack $CRi,$CRj,$CRk */
13784 SEM_FN_NAME (frvbf,orncr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13786 #define FLD(f) abuf->fields.sfmt_andcr.f
13787 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13788 int UNUSED written = 0;
13789 IADDR UNUSED pc = abuf->addr;
13790 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13793 UQI opval = frvbf_cr_logic (current_cpu, 6, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13794 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13795 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13802 /* nandncr: nandncr$pack $CRi,$CRj,$CRk */
13805 SEM_FN_NAME (frvbf,nandncr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13807 #define FLD(f) abuf->fields.sfmt_andcr.f
13808 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13809 int UNUSED written = 0;
13810 IADDR UNUSED pc = abuf->addr;
13811 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13814 UQI opval = frvbf_cr_logic (current_cpu, 7, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13815 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13816 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13823 /* norncr: norncr$pack $CRi,$CRj,$CRk */
13826 SEM_FN_NAME (frvbf,norncr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13828 #define FLD(f) abuf->fields.sfmt_andcr.f
13829 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13830 int UNUSED written = 0;
13831 IADDR UNUSED pc = abuf->addr;
13832 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13835 UQI opval = frvbf_cr_logic (current_cpu, 8, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13836 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13837 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13844 /* notcr: notcr$pack $CRj,$CRk */
13847 SEM_FN_NAME (frvbf,notcr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13849 #define FLD(f) abuf->fields.sfmt_andcr.f
13850 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13851 int UNUSED written = 0;
13852 IADDR UNUSED pc = abuf->addr;
13853 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13856 UQI opval = XORQI (CPU (h_cccr[FLD (f_CRj)]), 1);
13857 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13858 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13865 /* ckra: ckra$pack $CRj_int */
13868 SEM_FN_NAME (frvbf,ckra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13870 #define FLD(f) abuf->fields.sfmt_cckeq.f
13871 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13872 int UNUSED written = 0;
13873 IADDR UNUSED pc = abuf->addr;
13874 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13878 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
13879 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13886 /* ckno: ckno$pack $CRj_int */
13889 SEM_FN_NAME (frvbf,ckno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13891 #define FLD(f) abuf->fields.sfmt_cckeq.f
13892 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13893 int UNUSED written = 0;
13894 IADDR UNUSED pc = abuf->addr;
13895 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13899 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
13900 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13907 /* ckeq: ckeq$pack $ICCi_3,$CRj_int */
13910 SEM_FN_NAME (frvbf,ckeq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13912 #define FLD(f) abuf->fields.sfmt_cckeq.f
13913 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13914 int UNUSED written = 0;
13915 IADDR UNUSED pc = abuf->addr;
13916 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13918 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 4), 2))) {
13921 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
13922 written |= (1 << 1);
13923 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13928 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
13929 written |= (1 << 1);
13930 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13934 abuf->written = written;
13939 /* ckne: ckne$pack $ICCi_3,$CRj_int */
13942 SEM_FN_NAME (frvbf,ckne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13944 #define FLD(f) abuf->fields.sfmt_cckeq.f
13945 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13946 int UNUSED written = 0;
13947 IADDR UNUSED pc = abuf->addr;
13948 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13950 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 4), 2)))) {
13953 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
13954 written |= (1 << 1);
13955 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13960 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
13961 written |= (1 << 1);
13962 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13966 abuf->written = written;
13971 /* ckle: ckle$pack $ICCi_3,$CRj_int */
13974 SEM_FN_NAME (frvbf,ckle) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13976 #define FLD(f) abuf->fields.sfmt_cckeq.f
13977 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13978 int UNUSED written = 0;
13979 IADDR UNUSED pc = abuf->addr;
13980 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13982 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))))) {
13985 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
13986 written |= (1 << 1);
13987 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13992 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
13993 written |= (1 << 1);
13994 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13998 abuf->written = written;
14003 /* ckgt: ckgt$pack $ICCi_3,$CRj_int */
14006 SEM_FN_NAME (frvbf,ckgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14008 #define FLD(f) abuf->fields.sfmt_cckeq.f
14009 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14010 int UNUSED written = 0;
14011 IADDR UNUSED pc = abuf->addr;
14012 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14014 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)))))) {
14017 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14018 written |= (1 << 1);
14019 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14024 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14025 written |= (1 << 1);
14026 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14030 abuf->written = written;
14035 /* cklt: cklt$pack $ICCi_3,$CRj_int */
14038 SEM_FN_NAME (frvbf,cklt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14040 #define FLD(f) abuf->fields.sfmt_cckeq.f
14041 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14042 int UNUSED written = 0;
14043 IADDR UNUSED pc = abuf->addr;
14044 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14046 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)))) {
14049 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14050 written |= (1 << 1);
14051 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14056 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14057 written |= (1 << 1);
14058 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14062 abuf->written = written;
14067 /* ckge: ckge$pack $ICCi_3,$CRj_int */
14070 SEM_FN_NAME (frvbf,ckge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14072 #define FLD(f) abuf->fields.sfmt_cckeq.f
14073 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14074 int UNUSED written = 0;
14075 IADDR UNUSED pc = abuf->addr;
14076 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14078 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))))) {
14081 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14082 written |= (1 << 1);
14083 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14088 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14089 written |= (1 << 1);
14090 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14094 abuf->written = written;
14099 /* ckls: ckls$pack $ICCi_3,$CRj_int */
14102 SEM_FN_NAME (frvbf,ckls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14104 #define FLD(f) abuf->fields.sfmt_cckeq.f
14105 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14106 int UNUSED written = 0;
14107 IADDR UNUSED pc = abuf->addr;
14108 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14110 if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 4), 2)))) {
14113 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14114 written |= (1 << 1);
14115 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14120 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14121 written |= (1 << 1);
14122 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14126 abuf->written = written;
14131 /* ckhi: ckhi$pack $ICCi_3,$CRj_int */
14134 SEM_FN_NAME (frvbf,ckhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14136 #define FLD(f) abuf->fields.sfmt_cckeq.f
14137 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14138 int UNUSED written = 0;
14139 IADDR UNUSED pc = abuf->addr;
14140 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14142 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))))) {
14145 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14146 written |= (1 << 1);
14147 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14152 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14153 written |= (1 << 1);
14154 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14158 abuf->written = written;
14163 /* ckc: ckc$pack $ICCi_3,$CRj_int */
14166 SEM_FN_NAME (frvbf,ckc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14168 #define FLD(f) abuf->fields.sfmt_cckeq.f
14169 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14170 int UNUSED written = 0;
14171 IADDR UNUSED pc = abuf->addr;
14172 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14174 if (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 1))) {
14177 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14178 written |= (1 << 1);
14179 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14184 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14185 written |= (1 << 1);
14186 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14190 abuf->written = written;
14195 /* cknc: cknc$pack $ICCi_3,$CRj_int */
14198 SEM_FN_NAME (frvbf,cknc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14200 #define FLD(f) abuf->fields.sfmt_cckeq.f
14201 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14202 int UNUSED written = 0;
14203 IADDR UNUSED pc = abuf->addr;
14204 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14206 if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 1)))) {
14209 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14210 written |= (1 << 1);
14211 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14216 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14217 written |= (1 << 1);
14218 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14222 abuf->written = written;
14227 /* ckn: ckn$pack $ICCi_3,$CRj_int */
14230 SEM_FN_NAME (frvbf,ckn) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14232 #define FLD(f) abuf->fields.sfmt_cckeq.f
14233 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14234 int UNUSED written = 0;
14235 IADDR UNUSED pc = abuf->addr;
14236 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14238 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 8), 3))) {
14241 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14242 written |= (1 << 1);
14243 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14248 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14249 written |= (1 << 1);
14250 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14254 abuf->written = written;
14259 /* ckp: ckp$pack $ICCi_3,$CRj_int */
14262 SEM_FN_NAME (frvbf,ckp) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14264 #define FLD(f) abuf->fields.sfmt_cckeq.f
14265 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14266 int UNUSED written = 0;
14267 IADDR UNUSED pc = abuf->addr;
14268 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14270 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 8), 3)))) {
14273 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14274 written |= (1 << 1);
14275 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14280 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14281 written |= (1 << 1);
14282 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14286 abuf->written = written;
14291 /* ckv: ckv$pack $ICCi_3,$CRj_int */
14294 SEM_FN_NAME (frvbf,ckv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14296 #define FLD(f) abuf->fields.sfmt_cckeq.f
14297 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14298 int UNUSED written = 0;
14299 IADDR UNUSED pc = abuf->addr;
14300 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14302 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 2), 1))) {
14305 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14306 written |= (1 << 1);
14307 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14312 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14313 written |= (1 << 1);
14314 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14318 abuf->written = written;
14323 /* cknv: cknv$pack $ICCi_3,$CRj_int */
14326 SEM_FN_NAME (frvbf,cknv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14328 #define FLD(f) abuf->fields.sfmt_cckeq.f
14329 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14330 int UNUSED written = 0;
14331 IADDR UNUSED pc = abuf->addr;
14332 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14334 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 2), 1)))) {
14337 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14338 written |= (1 << 1);
14339 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14344 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14345 written |= (1 << 1);
14346 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14350 abuf->written = written;
14355 /* fckra: fckra$pack $CRj_float */
14358 SEM_FN_NAME (frvbf,fckra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14360 #define FLD(f) abuf->fields.sfmt_cfckne.f
14361 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14362 int UNUSED written = 0;
14363 IADDR UNUSED pc = abuf->addr;
14364 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14368 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14369 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14376 /* fckno: fckno$pack $CRj_float */
14379 SEM_FN_NAME (frvbf,fckno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14381 #define FLD(f) abuf->fields.sfmt_cfckne.f
14382 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14383 int UNUSED written = 0;
14384 IADDR UNUSED pc = abuf->addr;
14385 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14389 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14390 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14397 /* fckne: fckne$pack $FCCi_3,$CRj_float */
14400 SEM_FN_NAME (frvbf,fckne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14402 #define FLD(f) abuf->fields.sfmt_cfckne.f
14403 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14404 int UNUSED written = 0;
14405 IADDR UNUSED pc = abuf->addr;
14406 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14408 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))))) {
14411 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14412 written |= (1 << 1);
14413 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14418 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14419 written |= (1 << 1);
14420 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14424 abuf->written = written;
14429 /* fckeq: fckeq$pack $FCCi_3,$CRj_float */
14432 SEM_FN_NAME (frvbf,fckeq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14434 #define FLD(f) abuf->fields.sfmt_cfckne.f
14435 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14436 int UNUSED written = 0;
14437 IADDR UNUSED pc = abuf->addr;
14438 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14440 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 8), 3))) {
14443 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14444 written |= (1 << 1);
14445 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14450 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14451 written |= (1 << 1);
14452 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14456 abuf->written = written;
14461 /* fcklg: fcklg$pack $FCCi_3,$CRj_float */
14464 SEM_FN_NAME (frvbf,fcklg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14466 #define FLD(f) abuf->fields.sfmt_cfckne.f
14467 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14468 int UNUSED written = 0;
14469 IADDR UNUSED pc = abuf->addr;
14470 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14472 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)))) {
14475 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14476 written |= (1 << 1);
14477 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14482 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14483 written |= (1 << 1);
14484 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14488 abuf->written = written;
14493 /* fckue: fckue$pack $FCCi_3,$CRj_float */
14496 SEM_FN_NAME (frvbf,fckue) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14498 #define FLD(f) abuf->fields.sfmt_cfckne.f
14499 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14500 int UNUSED written = 0;
14501 IADDR UNUSED pc = abuf->addr;
14502 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14504 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1)))) {
14507 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14508 written |= (1 << 1);
14509 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14514 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14515 written |= (1 << 1);
14516 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14520 abuf->written = written;
14525 /* fckul: fckul$pack $FCCi_3,$CRj_float */
14528 SEM_FN_NAME (frvbf,fckul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14530 #define FLD(f) abuf->fields.sfmt_cfckne.f
14531 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14532 int UNUSED written = 0;
14533 IADDR UNUSED pc = abuf->addr;
14534 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14536 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1)))) {
14539 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14540 written |= (1 << 1);
14541 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14546 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14547 written |= (1 << 1);
14548 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14552 abuf->written = written;
14557 /* fckge: fckge$pack $FCCi_3,$CRj_float */
14560 SEM_FN_NAME (frvbf,fckge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14562 #define FLD(f) abuf->fields.sfmt_cfckne.f
14563 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14564 int UNUSED written = 0;
14565 IADDR UNUSED pc = abuf->addr;
14566 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14568 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)))) {
14571 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14572 written |= (1 << 1);
14573 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14578 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14579 written |= (1 << 1);
14580 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14584 abuf->written = written;
14589 /* fcklt: fcklt$pack $FCCi_3,$CRj_float */
14592 SEM_FN_NAME (frvbf,fcklt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14594 #define FLD(f) abuf->fields.sfmt_cfckne.f
14595 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14596 int UNUSED written = 0;
14597 IADDR UNUSED pc = abuf->addr;
14598 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14600 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 4), 2))) {
14603 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14604 written |= (1 << 1);
14605 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14610 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14611 written |= (1 << 1);
14612 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14616 abuf->written = written;
14621 /* fckuge: fckuge$pack $FCCi_3,$CRj_float */
14624 SEM_FN_NAME (frvbf,fckuge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14626 #define FLD(f) abuf->fields.sfmt_cfckne.f
14627 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14628 int UNUSED written = 0;
14629 IADDR UNUSED pc = abuf->addr;
14630 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14632 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))))) {
14635 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14636 written |= (1 << 1);
14637 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14642 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14643 written |= (1 << 1);
14644 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14648 abuf->written = written;
14653 /* fckug: fckug$pack $FCCi_3,$CRj_float */
14656 SEM_FN_NAME (frvbf,fckug) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14658 #define FLD(f) abuf->fields.sfmt_cfckne.f
14659 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14660 int UNUSED written = 0;
14661 IADDR UNUSED pc = abuf->addr;
14662 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14664 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1)))) {
14667 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14668 written |= (1 << 1);
14669 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14674 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14675 written |= (1 << 1);
14676 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14680 abuf->written = written;
14685 /* fckle: fckle$pack $FCCi_3,$CRj_float */
14688 SEM_FN_NAME (frvbf,fckle) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14690 #define FLD(f) abuf->fields.sfmt_cfckne.f
14691 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14692 int UNUSED written = 0;
14693 IADDR UNUSED pc = abuf->addr;
14694 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14696 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)))) {
14699 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14700 written |= (1 << 1);
14701 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14706 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14707 written |= (1 << 1);
14708 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14712 abuf->written = written;
14717 /* fckgt: fckgt$pack $FCCi_3,$CRj_float */
14720 SEM_FN_NAME (frvbf,fckgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14722 #define FLD(f) abuf->fields.sfmt_cfckne.f
14723 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14724 int UNUSED written = 0;
14725 IADDR UNUSED pc = abuf->addr;
14726 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14728 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 2), 1))) {
14731 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14732 written |= (1 << 1);
14733 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14738 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14739 written |= (1 << 1);
14740 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14744 abuf->written = written;
14749 /* fckule: fckule$pack $FCCi_3,$CRj_float */
14752 SEM_FN_NAME (frvbf,fckule) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14754 #define FLD(f) abuf->fields.sfmt_cfckne.f
14755 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14756 int UNUSED written = 0;
14757 IADDR UNUSED pc = abuf->addr;
14758 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14760 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))))) {
14763 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14764 written |= (1 << 1);
14765 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14770 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14771 written |= (1 << 1);
14772 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14776 abuf->written = written;
14781 /* fcku: fcku$pack $FCCi_3,$CRj_float */
14784 SEM_FN_NAME (frvbf,fcku) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14786 #define FLD(f) abuf->fields.sfmt_cfckne.f
14787 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14788 int UNUSED written = 0;
14789 IADDR UNUSED pc = abuf->addr;
14790 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14792 if (TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1))) {
14795 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14796 written |= (1 << 1);
14797 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14802 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14803 written |= (1 << 1);
14804 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14808 abuf->written = written;
14813 /* fcko: fcko$pack $FCCi_3,$CRj_float */
14816 SEM_FN_NAME (frvbf,fcko) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14818 #define FLD(f) abuf->fields.sfmt_cfckne.f
14819 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14820 int UNUSED written = 0;
14821 IADDR UNUSED pc = abuf->addr;
14822 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14824 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))))) {
14827 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14828 written |= (1 << 1);
14829 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14834 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14835 written |= (1 << 1);
14836 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14840 abuf->written = written;
14845 /* cckra: cckra$pack $CRj_int,$CCi,$cond */
14848 SEM_FN_NAME (frvbf,cckra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14850 #define FLD(f) abuf->fields.sfmt_cckeq.f
14851 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14852 int UNUSED written = 0;
14853 IADDR UNUSED pc = abuf->addr;
14854 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14856 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
14859 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14860 written |= (1 << 2);
14861 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14866 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14867 written |= (1 << 2);
14868 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14872 abuf->written = written;
14877 /* cckno: cckno$pack $CRj_int,$CCi,$cond */
14880 SEM_FN_NAME (frvbf,cckno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14882 #define FLD(f) abuf->fields.sfmt_cckeq.f
14883 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14884 int UNUSED written = 0;
14885 IADDR UNUSED pc = abuf->addr;
14886 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14888 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
14891 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14892 written |= (1 << 2);
14893 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14898 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14899 written |= (1 << 2);
14900 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14904 abuf->written = written;
14909 /* cckeq: cckeq$pack $ICCi_3,$CRj_int,$CCi,$cond */
14912 SEM_FN_NAME (frvbf,cckeq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14914 #define FLD(f) abuf->fields.sfmt_cckeq.f
14915 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14916 int UNUSED written = 0;
14917 IADDR UNUSED pc = abuf->addr;
14918 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14920 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
14921 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 4), 2))) {
14924 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14925 written |= (1 << 3);
14926 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14931 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14932 written |= (1 << 3);
14933 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14939 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14940 written |= (1 << 3);
14941 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14945 abuf->written = written;
14950 /* cckne: cckne$pack $ICCi_3,$CRj_int,$CCi,$cond */
14953 SEM_FN_NAME (frvbf,cckne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14955 #define FLD(f) abuf->fields.sfmt_cckeq.f
14956 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14957 int UNUSED written = 0;
14958 IADDR UNUSED pc = abuf->addr;
14959 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14961 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
14962 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 4), 2)))) {
14965 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14966 written |= (1 << 3);
14967 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14972 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14973 written |= (1 << 3);
14974 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14980 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14981 written |= (1 << 3);
14982 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14986 abuf->written = written;
14991 /* cckle: cckle$pack $ICCi_3,$CRj_int,$CCi,$cond */
14994 SEM_FN_NAME (frvbf,cckle) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14996 #define FLD(f) abuf->fields.sfmt_cckeq.f
14997 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14998 int UNUSED written = 0;
14999 IADDR UNUSED pc = abuf->addr;
15000 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15002 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15003 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))))) {
15006 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15007 written |= (1 << 3);
15008 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15013 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15014 written |= (1 << 3);
15015 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15021 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15022 written |= (1 << 3);
15023 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15027 abuf->written = written;
15032 /* cckgt: cckgt$pack $ICCi_3,$CRj_int,$CCi,$cond */
15035 SEM_FN_NAME (frvbf,cckgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15037 #define FLD(f) abuf->fields.sfmt_cckeq.f
15038 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15039 int UNUSED written = 0;
15040 IADDR UNUSED pc = abuf->addr;
15041 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15043 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15044 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)))))) {
15047 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15048 written |= (1 << 3);
15049 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15054 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15055 written |= (1 << 3);
15056 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15062 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15063 written |= (1 << 3);
15064 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15068 abuf->written = written;
15073 /* ccklt: ccklt$pack $ICCi_3,$CRj_int,$CCi,$cond */
15076 SEM_FN_NAME (frvbf,ccklt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15078 #define FLD(f) abuf->fields.sfmt_cckeq.f
15079 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15080 int UNUSED written = 0;
15081 IADDR UNUSED pc = abuf->addr;
15082 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15084 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15085 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)))) {
15088 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15089 written |= (1 << 3);
15090 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15095 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15096 written |= (1 << 3);
15097 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15103 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15104 written |= (1 << 3);
15105 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15109 abuf->written = written;
15114 /* cckge: cckge$pack $ICCi_3,$CRj_int,$CCi,$cond */
15117 SEM_FN_NAME (frvbf,cckge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15119 #define FLD(f) abuf->fields.sfmt_cckeq.f
15120 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15121 int UNUSED written = 0;
15122 IADDR UNUSED pc = abuf->addr;
15123 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15125 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15126 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))))) {
15129 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15130 written |= (1 << 3);
15131 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15136 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15137 written |= (1 << 3);
15138 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15144 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15145 written |= (1 << 3);
15146 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15150 abuf->written = written;
15155 /* cckls: cckls$pack $ICCi_3,$CRj_int,$CCi,$cond */
15158 SEM_FN_NAME (frvbf,cckls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15160 #define FLD(f) abuf->fields.sfmt_cckeq.f
15161 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15162 int UNUSED written = 0;
15163 IADDR UNUSED pc = abuf->addr;
15164 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15166 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15167 if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 4), 2)))) {
15170 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15171 written |= (1 << 3);
15172 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15177 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15178 written |= (1 << 3);
15179 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15185 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15186 written |= (1 << 3);
15187 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15191 abuf->written = written;
15196 /* cckhi: cckhi$pack $ICCi_3,$CRj_int,$CCi,$cond */
15199 SEM_FN_NAME (frvbf,cckhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15201 #define FLD(f) abuf->fields.sfmt_cckeq.f
15202 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15203 int UNUSED written = 0;
15204 IADDR UNUSED pc = abuf->addr;
15205 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15207 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15208 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))))) {
15211 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15212 written |= (1 << 3);
15213 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15218 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15219 written |= (1 << 3);
15220 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15226 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15227 written |= (1 << 3);
15228 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15232 abuf->written = written;
15237 /* cckc: cckc$pack $ICCi_3,$CRj_int,$CCi,$cond */
15240 SEM_FN_NAME (frvbf,cckc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15242 #define FLD(f) abuf->fields.sfmt_cckeq.f
15243 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15244 int UNUSED written = 0;
15245 IADDR UNUSED pc = abuf->addr;
15246 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15248 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15249 if (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 1))) {
15252 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15253 written |= (1 << 3);
15254 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15259 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15260 written |= (1 << 3);
15261 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15267 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15268 written |= (1 << 3);
15269 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15273 abuf->written = written;
15278 /* ccknc: ccknc$pack $ICCi_3,$CRj_int,$CCi,$cond */
15281 SEM_FN_NAME (frvbf,ccknc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15283 #define FLD(f) abuf->fields.sfmt_cckeq.f
15284 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15285 int UNUSED written = 0;
15286 IADDR UNUSED pc = abuf->addr;
15287 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15289 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15290 if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 1)))) {
15293 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15294 written |= (1 << 3);
15295 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15300 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15301 written |= (1 << 3);
15302 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15308 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15309 written |= (1 << 3);
15310 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15314 abuf->written = written;
15319 /* cckn: cckn$pack $ICCi_3,$CRj_int,$CCi,$cond */
15322 SEM_FN_NAME (frvbf,cckn) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15324 #define FLD(f) abuf->fields.sfmt_cckeq.f
15325 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15326 int UNUSED written = 0;
15327 IADDR UNUSED pc = abuf->addr;
15328 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15330 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15331 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 8), 3))) {
15334 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15335 written |= (1 << 3);
15336 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15341 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15342 written |= (1 << 3);
15343 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15349 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15350 written |= (1 << 3);
15351 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15355 abuf->written = written;
15360 /* cckp: cckp$pack $ICCi_3,$CRj_int,$CCi,$cond */
15363 SEM_FN_NAME (frvbf,cckp) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15365 #define FLD(f) abuf->fields.sfmt_cckeq.f
15366 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15367 int UNUSED written = 0;
15368 IADDR UNUSED pc = abuf->addr;
15369 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15371 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15372 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 8), 3)))) {
15375 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15376 written |= (1 << 3);
15377 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15382 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15383 written |= (1 << 3);
15384 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15390 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15391 written |= (1 << 3);
15392 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15396 abuf->written = written;
15401 /* cckv: cckv$pack $ICCi_3,$CRj_int,$CCi,$cond */
15404 SEM_FN_NAME (frvbf,cckv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15406 #define FLD(f) abuf->fields.sfmt_cckeq.f
15407 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15408 int UNUSED written = 0;
15409 IADDR UNUSED pc = abuf->addr;
15410 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15412 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15413 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 2), 1))) {
15416 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15417 written |= (1 << 3);
15418 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15423 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15424 written |= (1 << 3);
15425 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15431 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15432 written |= (1 << 3);
15433 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15437 abuf->written = written;
15442 /* ccknv: ccknv$pack $ICCi_3,$CRj_int,$CCi,$cond */
15445 SEM_FN_NAME (frvbf,ccknv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15447 #define FLD(f) abuf->fields.sfmt_cckeq.f
15448 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15449 int UNUSED written = 0;
15450 IADDR UNUSED pc = abuf->addr;
15451 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15453 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15454 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 2), 1)))) {
15457 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15458 written |= (1 << 3);
15459 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15464 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15465 written |= (1 << 3);
15466 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15472 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15473 written |= (1 << 3);
15474 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15478 abuf->written = written;
15483 /* cfckra: cfckra$pack $CRj_float,$CCi,$cond */
15486 SEM_FN_NAME (frvbf,cfckra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15488 #define FLD(f) abuf->fields.sfmt_cfckne.f
15489 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15490 int UNUSED written = 0;
15491 IADDR UNUSED pc = abuf->addr;
15492 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15494 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15497 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15498 written |= (1 << 2);
15499 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15504 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15505 written |= (1 << 2);
15506 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15510 abuf->written = written;
15515 /* cfckno: cfckno$pack $CRj_float,$CCi,$cond */
15518 SEM_FN_NAME (frvbf,cfckno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15520 #define FLD(f) abuf->fields.sfmt_cfckne.f
15521 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15522 int UNUSED written = 0;
15523 IADDR UNUSED pc = abuf->addr;
15524 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15526 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15529 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15530 written |= (1 << 2);
15531 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15536 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15537 written |= (1 << 2);
15538 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15542 abuf->written = written;
15547 /* cfckne: cfckne$pack $FCCi_3,$CRj_float,$CCi,$cond */
15550 SEM_FN_NAME (frvbf,cfckne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15552 #define FLD(f) abuf->fields.sfmt_cfckne.f
15553 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15554 int UNUSED written = 0;
15555 IADDR UNUSED pc = abuf->addr;
15556 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15558 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15559 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))))) {
15562 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15563 written |= (1 << 3);
15564 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15569 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15570 written |= (1 << 3);
15571 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15577 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15578 written |= (1 << 3);
15579 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15583 abuf->written = written;
15588 /* cfckeq: cfckeq$pack $FCCi_3,$CRj_float,$CCi,$cond */
15591 SEM_FN_NAME (frvbf,cfckeq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15593 #define FLD(f) abuf->fields.sfmt_cfckne.f
15594 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15595 int UNUSED written = 0;
15596 IADDR UNUSED pc = abuf->addr;
15597 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15599 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15600 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 8), 3))) {
15603 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15604 written |= (1 << 3);
15605 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15610 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15611 written |= (1 << 3);
15612 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15618 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15619 written |= (1 << 3);
15620 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15624 abuf->written = written;
15629 /* cfcklg: cfcklg$pack $FCCi_3,$CRj_float,$CCi,$cond */
15632 SEM_FN_NAME (frvbf,cfcklg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15634 #define FLD(f) abuf->fields.sfmt_cfckne.f
15635 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15636 int UNUSED written = 0;
15637 IADDR UNUSED pc = abuf->addr;
15638 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15640 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15641 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)))) {
15644 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15645 written |= (1 << 3);
15646 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15651 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15652 written |= (1 << 3);
15653 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15659 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15660 written |= (1 << 3);
15661 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15665 abuf->written = written;
15670 /* cfckue: cfckue$pack $FCCi_3,$CRj_float,$CCi,$cond */
15673 SEM_FN_NAME (frvbf,cfckue) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15675 #define FLD(f) abuf->fields.sfmt_cfckne.f
15676 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15677 int UNUSED written = 0;
15678 IADDR UNUSED pc = abuf->addr;
15679 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15681 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15682 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1)))) {
15685 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15686 written |= (1 << 3);
15687 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15692 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15693 written |= (1 << 3);
15694 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15700 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15701 written |= (1 << 3);
15702 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15706 abuf->written = written;
15711 /* cfckul: cfckul$pack $FCCi_3,$CRj_float,$CCi,$cond */
15714 SEM_FN_NAME (frvbf,cfckul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15716 #define FLD(f) abuf->fields.sfmt_cfckne.f
15717 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15718 int UNUSED written = 0;
15719 IADDR UNUSED pc = abuf->addr;
15720 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15722 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15723 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1)))) {
15726 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15727 written |= (1 << 3);
15728 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15733 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15734 written |= (1 << 3);
15735 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15741 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15742 written |= (1 << 3);
15743 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15747 abuf->written = written;
15752 /* cfckge: cfckge$pack $FCCi_3,$CRj_float,$CCi,$cond */
15755 SEM_FN_NAME (frvbf,cfckge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15757 #define FLD(f) abuf->fields.sfmt_cfckne.f
15758 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15759 int UNUSED written = 0;
15760 IADDR UNUSED pc = abuf->addr;
15761 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15763 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15764 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)))) {
15767 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15768 written |= (1 << 3);
15769 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15774 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15775 written |= (1 << 3);
15776 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15782 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15783 written |= (1 << 3);
15784 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15788 abuf->written = written;
15793 /* cfcklt: cfcklt$pack $FCCi_3,$CRj_float,$CCi,$cond */
15796 SEM_FN_NAME (frvbf,cfcklt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15798 #define FLD(f) abuf->fields.sfmt_cfckne.f
15799 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15800 int UNUSED written = 0;
15801 IADDR UNUSED pc = abuf->addr;
15802 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15804 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15805 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 4), 2))) {
15808 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15809 written |= (1 << 3);
15810 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15815 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15816 written |= (1 << 3);
15817 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15823 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15824 written |= (1 << 3);
15825 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15829 abuf->written = written;
15834 /* cfckuge: cfckuge$pack $FCCi_3,$CRj_float,$CCi,$cond */
15837 SEM_FN_NAME (frvbf,cfckuge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15839 #define FLD(f) abuf->fields.sfmt_cfckne.f
15840 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15841 int UNUSED written = 0;
15842 IADDR UNUSED pc = abuf->addr;
15843 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15845 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15846 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))))) {
15849 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15850 written |= (1 << 3);
15851 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15856 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15857 written |= (1 << 3);
15858 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15864 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15865 written |= (1 << 3);
15866 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15870 abuf->written = written;
15875 /* cfckug: cfckug$pack $FCCi_3,$CRj_float,$CCi,$cond */
15878 SEM_FN_NAME (frvbf,cfckug) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15880 #define FLD(f) abuf->fields.sfmt_cfckne.f
15881 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15882 int UNUSED written = 0;
15883 IADDR UNUSED pc = abuf->addr;
15884 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15886 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15887 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1)))) {
15890 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15891 written |= (1 << 3);
15892 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15897 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15898 written |= (1 << 3);
15899 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15905 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15906 written |= (1 << 3);
15907 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15911 abuf->written = written;
15916 /* cfckle: cfckle$pack $FCCi_3,$CRj_float,$CCi,$cond */
15919 SEM_FN_NAME (frvbf,cfckle) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15921 #define FLD(f) abuf->fields.sfmt_cfckne.f
15922 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15923 int UNUSED written = 0;
15924 IADDR UNUSED pc = abuf->addr;
15925 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15927 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15928 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)))) {
15931 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15932 written |= (1 << 3);
15933 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15938 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15939 written |= (1 << 3);
15940 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15946 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15947 written |= (1 << 3);
15948 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15952 abuf->written = written;
15957 /* cfckgt: cfckgt$pack $FCCi_3,$CRj_float,$CCi,$cond */
15960 SEM_FN_NAME (frvbf,cfckgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15962 #define FLD(f) abuf->fields.sfmt_cfckne.f
15963 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15964 int UNUSED written = 0;
15965 IADDR UNUSED pc = abuf->addr;
15966 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15968 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15969 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 2), 1))) {
15972 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15973 written |= (1 << 3);
15974 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15979 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15980 written |= (1 << 3);
15981 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15987 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15988 written |= (1 << 3);
15989 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15993 abuf->written = written;
15998 /* cfckule: cfckule$pack $FCCi_3,$CRj_float,$CCi,$cond */
16001 SEM_FN_NAME (frvbf,cfckule) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16003 #define FLD(f) abuf->fields.sfmt_cfckne.f
16004 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16005 int UNUSED written = 0;
16006 IADDR UNUSED pc = abuf->addr;
16007 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16009 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
16010 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))))) {
16013 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16014 written |= (1 << 3);
16015 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16020 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16021 written |= (1 << 3);
16022 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16028 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16029 written |= (1 << 3);
16030 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16034 abuf->written = written;
16039 /* cfcku: cfcku$pack $FCCi_3,$CRj_float,$CCi,$cond */
16042 SEM_FN_NAME (frvbf,cfcku) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16044 #define FLD(f) abuf->fields.sfmt_cfckne.f
16045 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16046 int UNUSED written = 0;
16047 IADDR UNUSED pc = abuf->addr;
16048 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16050 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
16051 if (TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1))) {
16054 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16055 written |= (1 << 3);
16056 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16061 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16062 written |= (1 << 3);
16063 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16069 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16070 written |= (1 << 3);
16071 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16075 abuf->written = written;
16080 /* cfcko: cfcko$pack $FCCi_3,$CRj_float,$CCi,$cond */
16083 SEM_FN_NAME (frvbf,cfcko) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16085 #define FLD(f) abuf->fields.sfmt_cfckne.f
16086 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16087 int UNUSED written = 0;
16088 IADDR UNUSED pc = abuf->addr;
16089 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16091 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
16092 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))))) {
16095 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16096 written |= (1 << 3);
16097 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16102 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16103 written |= (1 << 3);
16104 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16110 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16111 written |= (1 << 3);
16112 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16116 abuf->written = written;
16121 /* cjmpl: cjmpl$pack @($GRi,$GRj),$CCi,$cond */
16124 SEM_FN_NAME (frvbf,cjmpl) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16126 #define FLD(f) abuf->fields.sfmt_cjmpl.f
16127 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16128 int UNUSED written = 0;
16129 IADDR UNUSED pc = abuf->addr;
16130 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16132 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
16134 if (EQSI (FLD (f_LI), 1)) {
16135 frvbf_set_write_next_vliw_addr_to_LR (current_cpu, 1);
16138 USI opval = ANDSI (ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), 0xfffffffc);
16139 sim_queue_pc_write (current_cpu, opval);
16140 written |= (1 << 6);
16141 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
16143 frvbf_model_branch (current_cpu, pc, 2);
16147 abuf->written = written;
16152 /* ccalll: ccalll$pack @($GRi,$GRj),$CCi,$cond */
16155 SEM_FN_NAME (frvbf,ccalll) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16157 #define FLD(f) abuf->fields.sfmt_cjmpl.f
16158 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16159 int UNUSED written = 0;
16160 IADDR UNUSED pc = abuf->addr;
16161 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16163 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
16165 if (EQSI (FLD (f_LI), 1)) {
16166 frvbf_set_write_next_vliw_addr_to_LR (current_cpu, 1);
16169 USI opval = ANDSI (ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), 0xfffffffc);
16170 sim_queue_pc_write (current_cpu, opval);
16171 written |= (1 << 6);
16172 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
16174 frvbf_model_branch (current_cpu, pc, 2);
16178 abuf->written = written;
16183 /* ici: ici$pack @($GRi,$GRj) */
16186 SEM_FN_NAME (frvbf,ici) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16188 #define FLD(f) abuf->fields.sfmt_icpl.f
16189 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16190 int UNUSED written = 0;
16191 IADDR UNUSED pc = abuf->addr;
16192 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16194 frvbf_insn_cache_invalidate (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), 0);
16200 /* dci: dci$pack @($GRi,$GRj) */
16203 SEM_FN_NAME (frvbf,dci) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16205 #define FLD(f) abuf->fields.sfmt_icpl.f
16206 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16207 int UNUSED written = 0;
16208 IADDR UNUSED pc = abuf->addr;
16209 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16211 frvbf_data_cache_invalidate (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), 0);
16217 /* icei: icei$pack @($GRi,$GRj),$ae */
16220 SEM_FN_NAME (frvbf,icei) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16222 #define FLD(f) abuf->fields.sfmt_icei.f
16223 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16224 int UNUSED written = 0;
16225 IADDR UNUSED pc = abuf->addr;
16226 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16228 if (EQSI (FLD (f_ae), 0)) {
16229 frvbf_insn_cache_invalidate (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), -1);
16231 frvbf_insn_cache_invalidate (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), FLD (f_ae));
16238 /* dcei: dcei$pack @($GRi,$GRj),$ae */
16241 SEM_FN_NAME (frvbf,dcei) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16243 #define FLD(f) abuf->fields.sfmt_icei.f
16244 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16245 int UNUSED written = 0;
16246 IADDR UNUSED pc = abuf->addr;
16247 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16249 if (EQSI (FLD (f_ae), 0)) {
16250 frvbf_data_cache_invalidate (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), -1);
16252 frvbf_data_cache_invalidate (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), FLD (f_ae));
16259 /* dcf: dcf$pack @($GRi,$GRj) */
16262 SEM_FN_NAME (frvbf,dcf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16264 #define FLD(f) abuf->fields.sfmt_icpl.f
16265 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16266 int UNUSED written = 0;
16267 IADDR UNUSED pc = abuf->addr;
16268 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16270 frvbf_data_cache_flush (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), 0);
16276 /* dcef: dcef$pack @($GRi,$GRj),$ae */
16279 SEM_FN_NAME (frvbf,dcef) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16281 #define FLD(f) abuf->fields.sfmt_icei.f
16282 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16283 int UNUSED written = 0;
16284 IADDR UNUSED pc = abuf->addr;
16285 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16287 if (EQSI (FLD (f_ae), 0)) {
16288 frvbf_data_cache_flush (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), -1);
16290 frvbf_data_cache_flush (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), FLD (f_ae));
16297 /* witlb: witlb$pack $GRk,@($GRi,$GRj) */
16300 SEM_FN_NAME (frvbf,witlb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16302 #define FLD(f) abuf->fields.fmt_empty.f
16303 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16304 int UNUSED written = 0;
16305 IADDR UNUSED pc = abuf->addr;
16306 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16308 ((void) 0); /*nop*/
16314 /* wdtlb: wdtlb$pack $GRk,@($GRi,$GRj) */
16317 SEM_FN_NAME (frvbf,wdtlb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16319 #define FLD(f) abuf->fields.fmt_empty.f
16320 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16321 int UNUSED written = 0;
16322 IADDR UNUSED pc = abuf->addr;
16323 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16325 ((void) 0); /*nop*/
16331 /* itlbi: itlbi$pack @($GRi,$GRj) */
16334 SEM_FN_NAME (frvbf,itlbi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16336 #define FLD(f) abuf->fields.fmt_empty.f
16337 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16338 int UNUSED written = 0;
16339 IADDR UNUSED pc = abuf->addr;
16340 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16342 ((void) 0); /*nop*/
16348 /* dtlbi: dtlbi$pack @($GRi,$GRj) */
16351 SEM_FN_NAME (frvbf,dtlbi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16353 #define FLD(f) abuf->fields.fmt_empty.f
16354 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16355 int UNUSED written = 0;
16356 IADDR UNUSED pc = abuf->addr;
16357 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16359 ((void) 0); /*nop*/
16365 /* icpl: icpl$pack $GRi,$GRj,$lock */
16368 SEM_FN_NAME (frvbf,icpl) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16370 #define FLD(f) abuf->fields.sfmt_icpl.f
16371 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16372 int UNUSED written = 0;
16373 IADDR UNUSED pc = abuf->addr;
16374 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16376 frvbf_insn_cache_preload (current_cpu, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), FLD (f_lock));
16382 /* dcpl: dcpl$pack $GRi,$GRj,$lock */
16385 SEM_FN_NAME (frvbf,dcpl) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16387 #define FLD(f) abuf->fields.sfmt_icpl.f
16388 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16389 int UNUSED written = 0;
16390 IADDR UNUSED pc = abuf->addr;
16391 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16393 frvbf_data_cache_preload (current_cpu, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), FLD (f_lock));
16399 /* icul: icul$pack $GRi */
16402 SEM_FN_NAME (frvbf,icul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16404 #define FLD(f) abuf->fields.sfmt_jmpil.f
16405 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16406 int UNUSED written = 0;
16407 IADDR UNUSED pc = abuf->addr;
16408 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16410 frvbf_insn_cache_unlock (current_cpu, GET_H_GR (FLD (f_GRi)));
16416 /* dcul: dcul$pack $GRi */
16419 SEM_FN_NAME (frvbf,dcul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16421 #define FLD(f) abuf->fields.sfmt_jmpil.f
16422 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16423 int UNUSED written = 0;
16424 IADDR UNUSED pc = abuf->addr;
16425 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16427 frvbf_data_cache_unlock (current_cpu, GET_H_GR (FLD (f_GRi)));
16433 /* bar: bar$pack */
16436 SEM_FN_NAME (frvbf,bar) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16438 #define FLD(f) abuf->fields.fmt_empty.f
16439 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16440 int UNUSED written = 0;
16441 IADDR UNUSED pc = abuf->addr;
16442 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16444 ((void) 0); /*nop*/
16450 /* membar: membar$pack */
16453 SEM_FN_NAME (frvbf,membar) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16455 #define FLD(f) abuf->fields.fmt_empty.f
16456 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16457 int UNUSED written = 0;
16458 IADDR UNUSED pc = abuf->addr;
16459 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16461 ((void) 0); /*nop*/
16467 /* cop1: cop1$pack $s6_1,$CPRi,$CPRj,$CPRk */
16470 SEM_FN_NAME (frvbf,cop1) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16472 #define FLD(f) abuf->fields.fmt_empty.f
16473 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16474 int UNUSED written = 0;
16475 IADDR UNUSED pc = abuf->addr;
16476 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16478 ((void) 0); /*nop*/
16484 /* cop2: cop2$pack $s6_1,$CPRi,$CPRj,$CPRk */
16487 SEM_FN_NAME (frvbf,cop2) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16489 #define FLD(f) abuf->fields.fmt_empty.f
16490 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16491 int UNUSED written = 0;
16492 IADDR UNUSED pc = abuf->addr;
16493 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16495 ((void) 0); /*nop*/
16501 /* clrgr: clrgr$pack $GRk */
16504 SEM_FN_NAME (frvbf,clrgr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16506 #define FLD(f) abuf->fields.sfmt_swapi.f
16507 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16508 int UNUSED written = 0;
16509 IADDR UNUSED pc = abuf->addr;
16510 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16513 frv_ref_SI (GET_H_GR (FLD (f_GRk)));
16514 frvbf_clear_ne_flags (current_cpu, FLD (f_GRk), 0);
16521 /* clrfr: clrfr$pack $FRk */
16524 SEM_FN_NAME (frvbf,clrfr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16526 #define FLD(f) abuf->fields.sfmt_cfmadds.f
16527 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16528 int UNUSED written = 0;
16529 IADDR UNUSED pc = abuf->addr;
16530 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16533 frv_ref_SI (GET_H_FR (FLD (f_FRk)));
16534 frvbf_clear_ne_flags (current_cpu, FLD (f_FRk), 1);
16541 /* clrga: clrga$pack */
16544 SEM_FN_NAME (frvbf,clrga) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16546 #define FLD(f) abuf->fields.fmt_empty.f
16547 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16548 int UNUSED written = 0;
16549 IADDR UNUSED pc = abuf->addr;
16550 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16552 frvbf_clear_ne_flags (current_cpu, -1, 0);
16558 /* clrfa: clrfa$pack */
16561 SEM_FN_NAME (frvbf,clrfa) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16563 #define FLD(f) abuf->fields.fmt_empty.f
16564 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16565 int UNUSED written = 0;
16566 IADDR UNUSED pc = abuf->addr;
16567 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16569 frvbf_clear_ne_flags (current_cpu, -1, 1);
16575 /* commitgr: commitgr$pack $GRk */
16578 SEM_FN_NAME (frvbf,commitgr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16580 #define FLD(f) abuf->fields.sfmt_setlos.f
16581 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16582 int UNUSED written = 0;
16583 IADDR UNUSED pc = abuf->addr;
16584 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16586 frvbf_commit (current_cpu, FLD (f_GRk), 0);
16592 /* commitfr: commitfr$pack $FRk */
16595 SEM_FN_NAME (frvbf,commitfr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16597 #define FLD(f) abuf->fields.sfmt_mhsethis.f
16598 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16599 int UNUSED written = 0;
16600 IADDR UNUSED pc = abuf->addr;
16601 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16603 frvbf_commit (current_cpu, FLD (f_FRk), 1);
16609 /* commitga: commitga$pack */
16612 SEM_FN_NAME (frvbf,commitga) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16614 #define FLD(f) abuf->fields.fmt_empty.f
16615 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16616 int UNUSED written = 0;
16617 IADDR UNUSED pc = abuf->addr;
16618 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16620 frvbf_commit (current_cpu, -1, 0);
16626 /* commitfa: commitfa$pack */
16629 SEM_FN_NAME (frvbf,commitfa) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16631 #define FLD(f) abuf->fields.fmt_empty.f
16632 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16633 int UNUSED written = 0;
16634 IADDR UNUSED pc = abuf->addr;
16635 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16637 frvbf_commit (current_cpu, -1, 1);
16643 /* fitos: fitos$pack $FRintj,$FRk */
16646 SEM_FN_NAME (frvbf,fitos) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16648 #define FLD(f) abuf->fields.sfmt_fditos.f
16649 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16650 int UNUSED written = 0;
16651 IADDR UNUSED pc = abuf->addr;
16652 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16655 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->floatsisf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (FLD (f_FRj)));
16656 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
16657 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16664 /* fstoi: fstoi$pack $FRj,$FRintk */
16667 SEM_FN_NAME (frvbf,fstoi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16669 #define FLD(f) abuf->fields.sfmt_fdstoi.f
16670 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16671 int UNUSED written = 0;
16672 IADDR UNUSED pc = abuf->addr;
16673 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16676 SI opval = (* CGEN_CPU_FPU (current_cpu)->ops->fixsfsi) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
16677 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
16678 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16685 /* fitod: fitod$pack $FRintj,$FRdoublek */
16688 SEM_FN_NAME (frvbf,fitod) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16690 #define FLD(f) abuf->fields.sfmt_fitod.f
16691 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16692 int UNUSED written = 0;
16693 IADDR UNUSED pc = abuf->addr;
16694 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16697 DF opval = (* CGEN_CPU_FPU (current_cpu)->ops->floatsidf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (FLD (f_FRj)));
16698 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
16699 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
16706 /* fdtoi: fdtoi$pack $FRdoublej,$FRintk */
16709 SEM_FN_NAME (frvbf,fdtoi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16711 #define FLD(f) abuf->fields.sfmt_fdtoi.f
16712 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16713 int UNUSED written = 0;
16714 IADDR UNUSED pc = abuf->addr;
16715 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16718 SI opval = (* CGEN_CPU_FPU (current_cpu)->ops->fixdfsi) (CGEN_CPU_FPU (current_cpu), GET_H_FR_DOUBLE (FLD (f_FRj)));
16719 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
16720 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16727 /* fditos: fditos$pack $FRintj,$FRk */
16730 SEM_FN_NAME (frvbf,fditos) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16732 #define FLD(f) abuf->fields.sfmt_fditos.f
16733 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16734 int UNUSED written = 0;
16735 IADDR UNUSED pc = abuf->addr;
16736 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16740 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->floatsisf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (FLD (f_FRj)));
16741 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
16742 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16745 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->floatsisf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (((FLD (f_FRj)) + (1))));
16746 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
16747 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16755 /* fdstoi: fdstoi$pack $FRj,$FRintk */
16758 SEM_FN_NAME (frvbf,fdstoi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16760 #define FLD(f) abuf->fields.sfmt_fdstoi.f
16761 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16762 int UNUSED written = 0;
16763 IADDR UNUSED pc = abuf->addr;
16764 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16768 SI opval = (* CGEN_CPU_FPU (current_cpu)->ops->fixsfsi) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
16769 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
16770 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16773 USI opval = (* CGEN_CPU_FPU (current_cpu)->ops->fixsfsi) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRj)) + (1))));
16774 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
16775 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16783 /* nfditos: nfditos$pack $FRintj,$FRk */
16786 SEM_FN_NAME (frvbf,nfditos) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16788 #define FLD(f) abuf->fields.sfmt_fditos.f
16789 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16790 int UNUSED written = 0;
16791 IADDR UNUSED pc = abuf->addr;
16792 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16795 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
16797 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->floatsisf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (FLD (f_FRj)));
16798 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
16799 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16801 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
16803 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->floatsisf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (((FLD (f_FRj)) + (1))));
16804 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
16805 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16813 /* nfdstoi: nfdstoi$pack $FRj,$FRintk */
16816 SEM_FN_NAME (frvbf,nfdstoi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16818 #define FLD(f) abuf->fields.sfmt_fdstoi.f
16819 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16820 int UNUSED written = 0;
16821 IADDR UNUSED pc = abuf->addr;
16822 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16825 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
16827 SI opval = (* CGEN_CPU_FPU (current_cpu)->ops->fixsfsi) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
16828 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
16829 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16831 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
16833 USI opval = (* CGEN_CPU_FPU (current_cpu)->ops->fixsfsi) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRj)) + (1))));
16834 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
16835 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16843 /* cfitos: cfitos$pack $FRintj,$FRk,$CCi,$cond */
16846 SEM_FN_NAME (frvbf,cfitos) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16848 #define FLD(f) abuf->fields.sfmt_cfitos.f
16849 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16850 int UNUSED written = 0;
16851 IADDR UNUSED pc = abuf->addr;
16852 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16854 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
16856 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->floatsisf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (FLD (f_FRj)));
16857 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
16858 written |= (1 << 3);
16859 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16863 abuf->written = written;
16868 /* cfstoi: cfstoi$pack $FRj,$FRintk,$CCi,$cond */
16871 SEM_FN_NAME (frvbf,cfstoi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16873 #define FLD(f) abuf->fields.sfmt_cfstoi.f
16874 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16875 int UNUSED written = 0;
16876 IADDR UNUSED pc = abuf->addr;
16877 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16879 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
16881 SI opval = (* CGEN_CPU_FPU (current_cpu)->ops->fixsfsi) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
16882 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
16883 written |= (1 << 3);
16884 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16888 abuf->written = written;
16893 /* nfitos: nfitos$pack $FRintj,$FRk */
16896 SEM_FN_NAME (frvbf,nfitos) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16898 #define FLD(f) abuf->fields.sfmt_fditos.f
16899 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16900 int UNUSED written = 0;
16901 IADDR UNUSED pc = abuf->addr;
16902 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16905 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
16907 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->floatsisf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (FLD (f_FRj)));
16908 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
16909 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16917 /* nfstoi: nfstoi$pack $FRj,$FRintk */
16920 SEM_FN_NAME (frvbf,nfstoi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16922 #define FLD(f) abuf->fields.sfmt_fdstoi.f
16923 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16924 int UNUSED written = 0;
16925 IADDR UNUSED pc = abuf->addr;
16926 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16929 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
16931 SI opval = (* CGEN_CPU_FPU (current_cpu)->ops->fixsfsi) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
16932 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
16933 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16941 /* fmovs: fmovs$pack $FRj,$FRk */
16944 SEM_FN_NAME (frvbf,fmovs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16946 #define FLD(f) abuf->fields.sfmt_cfmadds.f
16947 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16948 int UNUSED written = 0;
16949 IADDR UNUSED pc = abuf->addr;
16950 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16953 SF opval = GET_H_FR (FLD (f_FRj));
16954 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
16955 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16962 /* fmovd: fmovd$pack $FRdoublej,$FRdoublek */
16965 SEM_FN_NAME (frvbf,fmovd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16967 #define FLD(f) abuf->fields.sfmt_fmaddd.f
16968 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16969 int UNUSED written = 0;
16970 IADDR UNUSED pc = abuf->addr;
16971 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16974 DF opval = GET_H_FR_DOUBLE (FLD (f_FRj));
16975 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
16976 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
16983 /* fdmovs: fdmovs$pack $FRj,$FRk */
16986 SEM_FN_NAME (frvbf,fdmovs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16988 #define FLD(f) abuf->fields.sfmt_fdmadds.f
16989 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16990 int UNUSED written = 0;
16991 IADDR UNUSED pc = abuf->addr;
16992 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16996 SF opval = GET_H_FR (FLD (f_FRj));
16997 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
16998 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17001 SF opval = GET_H_FR (((FLD (f_FRj)) + (1)));
17002 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
17003 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17011 /* cfmovs: cfmovs$pack $FRj,$FRk,$CCi,$cond */
17014 SEM_FN_NAME (frvbf,cfmovs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17016 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17017 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17018 int UNUSED written = 0;
17019 IADDR UNUSED pc = abuf->addr;
17020 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17022 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17024 SF opval = GET_H_FR (FLD (f_FRj));
17025 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17026 written |= (1 << 3);
17027 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17031 abuf->written = written;
17036 /* fnegs: fnegs$pack $FRj,$FRk */
17039 SEM_FN_NAME (frvbf,fnegs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17041 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17042 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17043 int UNUSED written = 0;
17044 IADDR UNUSED pc = abuf->addr;
17045 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17048 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->negsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17049 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17050 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17057 /* fnegd: fnegd$pack $FRdoublej,$FRdoublek */
17060 SEM_FN_NAME (frvbf,fnegd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17062 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17063 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17064 int UNUSED written = 0;
17065 IADDR UNUSED pc = abuf->addr;
17066 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17069 DF opval = (* CGEN_CPU_FPU (current_cpu)->ops->negdf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_DOUBLE (FLD (f_FRj)));
17070 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17071 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17078 /* fdnegs: fdnegs$pack $FRj,$FRk */
17081 SEM_FN_NAME (frvbf,fdnegs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17083 #define FLD(f) abuf->fields.sfmt_fdmadds.f
17084 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17085 int UNUSED written = 0;
17086 IADDR UNUSED pc = abuf->addr;
17087 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17091 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->negsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17092 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17093 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17096 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->negsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRj)) + (1))));
17097 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
17098 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17106 /* cfnegs: cfnegs$pack $FRj,$FRk,$CCi,$cond */
17109 SEM_FN_NAME (frvbf,cfnegs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17111 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17112 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17113 int UNUSED written = 0;
17114 IADDR UNUSED pc = abuf->addr;
17115 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17117 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17119 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->negsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17120 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17121 written |= (1 << 3);
17122 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17126 abuf->written = written;
17131 /* fabss: fabss$pack $FRj,$FRk */
17134 SEM_FN_NAME (frvbf,fabss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17136 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17137 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17138 int UNUSED written = 0;
17139 IADDR UNUSED pc = abuf->addr;
17140 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17143 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->abssf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17144 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17145 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17152 /* fabsd: fabsd$pack $FRdoublej,$FRdoublek */
17155 SEM_FN_NAME (frvbf,fabsd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17157 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17158 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17159 int UNUSED written = 0;
17160 IADDR UNUSED pc = abuf->addr;
17161 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17164 DF opval = (* CGEN_CPU_FPU (current_cpu)->ops->absdf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_DOUBLE (FLD (f_FRj)));
17165 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17166 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17173 /* fdabss: fdabss$pack $FRj,$FRk */
17176 SEM_FN_NAME (frvbf,fdabss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17178 #define FLD(f) abuf->fields.sfmt_fdmadds.f
17179 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17180 int UNUSED written = 0;
17181 IADDR UNUSED pc = abuf->addr;
17182 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17186 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->abssf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17187 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17188 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17191 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->abssf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRj)) + (1))));
17192 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
17193 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17201 /* cfabss: cfabss$pack $FRj,$FRk,$CCi,$cond */
17204 SEM_FN_NAME (frvbf,cfabss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17206 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17207 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17208 int UNUSED written = 0;
17209 IADDR UNUSED pc = abuf->addr;
17210 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17212 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17214 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->abssf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17215 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17216 written |= (1 << 3);
17217 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17221 abuf->written = written;
17226 /* fsqrts: fsqrts$pack $FRj,$FRk */
17229 SEM_FN_NAME (frvbf,fsqrts) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17231 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17232 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17233 int UNUSED written = 0;
17234 IADDR UNUSED pc = abuf->addr;
17235 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17238 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->sqrtsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17239 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17240 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17247 /* fdsqrts: fdsqrts$pack $FRj,$FRk */
17250 SEM_FN_NAME (frvbf,fdsqrts) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17252 #define FLD(f) abuf->fields.sfmt_fdmadds.f
17253 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17254 int UNUSED written = 0;
17255 IADDR UNUSED pc = abuf->addr;
17256 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17260 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->sqrtsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17261 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17262 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17265 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->sqrtsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRj)) + (1))));
17266 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
17267 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17275 /* nfdsqrts: nfdsqrts$pack $FRj,$FRk */
17278 SEM_FN_NAME (frvbf,nfdsqrts) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17280 #define FLD(f) abuf->fields.sfmt_fdmadds.f
17281 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17282 int UNUSED written = 0;
17283 IADDR UNUSED pc = abuf->addr;
17284 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17287 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
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);
17293 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
17295 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->sqrtsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRj)) + (1))));
17296 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
17297 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17305 /* fsqrtd: fsqrtd$pack $FRdoublej,$FRdoublek */
17308 SEM_FN_NAME (frvbf,fsqrtd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17310 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17311 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17312 int UNUSED written = 0;
17313 IADDR UNUSED pc = abuf->addr;
17314 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17317 DF opval = (* CGEN_CPU_FPU (current_cpu)->ops->sqrtdf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_DOUBLE (FLD (f_FRj)));
17318 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17319 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17326 /* cfsqrts: cfsqrts$pack $FRj,$FRk,$CCi,$cond */
17329 SEM_FN_NAME (frvbf,cfsqrts) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17331 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17332 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17333 int UNUSED written = 0;
17334 IADDR UNUSED pc = abuf->addr;
17335 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17337 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17339 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->sqrtsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17340 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17341 written |= (1 << 3);
17342 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17346 abuf->written = written;
17351 /* nfsqrts: nfsqrts$pack $FRj,$FRk */
17354 SEM_FN_NAME (frvbf,nfsqrts) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17356 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17357 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17358 int UNUSED written = 0;
17359 IADDR UNUSED pc = abuf->addr;
17360 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17363 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
17365 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->sqrtsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17366 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17367 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17375 /* fadds: fadds$pack $FRi,$FRj,$FRk */
17378 SEM_FN_NAME (frvbf,fadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17380 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17381 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17382 int UNUSED written = 0;
17383 IADDR UNUSED pc = abuf->addr;
17384 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17387 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)));
17388 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17389 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17396 /* fsubs: fsubs$pack $FRi,$FRj,$FRk */
17399 SEM_FN_NAME (frvbf,fsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17401 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17402 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17403 int UNUSED written = 0;
17404 IADDR UNUSED pc = abuf->addr;
17405 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17408 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)));
17409 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17410 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17417 /* fmuls: fmuls$pack $FRi,$FRj,$FRk */
17420 SEM_FN_NAME (frvbf,fmuls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17422 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17423 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17424 int UNUSED written = 0;
17425 IADDR UNUSED pc = abuf->addr;
17426 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17429 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)));
17430 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17431 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17438 /* fdivs: fdivs$pack $FRi,$FRj,$FRk */
17441 SEM_FN_NAME (frvbf,fdivs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17443 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17444 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17445 int UNUSED written = 0;
17446 IADDR UNUSED pc = abuf->addr;
17447 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17450 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)));
17451 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17452 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17459 /* faddd: faddd$pack $FRdoublei,$FRdoublej,$FRdoublek */
17462 SEM_FN_NAME (frvbf,faddd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17464 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17465 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17466 int UNUSED written = 0;
17467 IADDR UNUSED pc = abuf->addr;
17468 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17471 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)));
17472 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17473 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17480 /* fsubd: fsubd$pack $FRdoublei,$FRdoublej,$FRdoublek */
17483 SEM_FN_NAME (frvbf,fsubd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17485 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17486 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17487 int UNUSED written = 0;
17488 IADDR UNUSED pc = abuf->addr;
17489 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17492 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)));
17493 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17494 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17501 /* fmuld: fmuld$pack $FRdoublei,$FRdoublej,$FRdoublek */
17504 SEM_FN_NAME (frvbf,fmuld) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17506 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17507 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17508 int UNUSED written = 0;
17509 IADDR UNUSED pc = abuf->addr;
17510 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17513 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)));
17514 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17515 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17522 /* fdivd: fdivd$pack $FRdoublei,$FRdoublej,$FRdoublek */
17525 SEM_FN_NAME (frvbf,fdivd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17527 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17528 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17529 int UNUSED written = 0;
17530 IADDR UNUSED pc = abuf->addr;
17531 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17534 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)));
17535 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17536 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17543 /* cfadds: cfadds$pack $FRi,$FRj,$FRk,$CCi,$cond */
17546 SEM_FN_NAME (frvbf,cfadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17548 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17549 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17550 int UNUSED written = 0;
17551 IADDR UNUSED pc = abuf->addr;
17552 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17554 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17556 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)));
17557 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17558 written |= (1 << 4);
17559 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17563 abuf->written = written;
17568 /* cfsubs: cfsubs$pack $FRi,$FRj,$FRk,$CCi,$cond */
17571 SEM_FN_NAME (frvbf,cfsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17573 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17574 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17575 int UNUSED written = 0;
17576 IADDR UNUSED pc = abuf->addr;
17577 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17579 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17581 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)));
17582 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17583 written |= (1 << 4);
17584 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17588 abuf->written = written;
17593 /* cfmuls: cfmuls$pack $FRi,$FRj,$FRk,$CCi,$cond */
17596 SEM_FN_NAME (frvbf,cfmuls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17598 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17599 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17600 int UNUSED written = 0;
17601 IADDR UNUSED pc = abuf->addr;
17602 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17604 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17606 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)));
17607 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17608 written |= (1 << 4);
17609 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17613 abuf->written = written;
17618 /* cfdivs: cfdivs$pack $FRi,$FRj,$FRk,$CCi,$cond */
17621 SEM_FN_NAME (frvbf,cfdivs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17623 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17624 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17625 int UNUSED written = 0;
17626 IADDR UNUSED pc = abuf->addr;
17627 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17629 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17631 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)));
17632 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17633 written |= (1 << 4);
17634 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17638 abuf->written = written;
17643 /* nfadds: nfadds$pack $FRi,$FRj,$FRk */
17646 SEM_FN_NAME (frvbf,nfadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17648 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17649 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17650 int UNUSED written = 0;
17651 IADDR UNUSED pc = abuf->addr;
17652 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17655 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
17657 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)));
17658 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17659 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17667 /* nfsubs: nfsubs$pack $FRi,$FRj,$FRk */
17670 SEM_FN_NAME (frvbf,nfsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17672 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17673 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17674 int UNUSED written = 0;
17675 IADDR UNUSED pc = abuf->addr;
17676 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17679 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
17681 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)));
17682 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17683 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17691 /* nfmuls: nfmuls$pack $FRi,$FRj,$FRk */
17694 SEM_FN_NAME (frvbf,nfmuls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17696 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17697 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17698 int UNUSED written = 0;
17699 IADDR UNUSED pc = abuf->addr;
17700 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17703 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
17705 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)));
17706 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17707 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17715 /* nfdivs: nfdivs$pack $FRi,$FRj,$FRk */
17718 SEM_FN_NAME (frvbf,nfdivs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17720 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17721 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17722 int UNUSED written = 0;
17723 IADDR UNUSED pc = abuf->addr;
17724 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17727 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
17729 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)));
17730 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17731 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17739 /* fcmps: fcmps$pack $FRi,$FRj,$FCCi_2 */
17742 SEM_FN_NAME (frvbf,fcmps) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17744 #define FLD(f) abuf->fields.sfmt_cfcmps.f
17745 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17746 int UNUSED written = 0;
17747 IADDR UNUSED pc = abuf->addr;
17748 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17750 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)))) {
17753 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17754 written |= (1 << 2);
17755 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17758 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)))) {
17761 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17762 written |= (1 << 2);
17763 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17766 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)))) {
17769 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17770 written |= (1 << 2);
17771 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17776 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17777 written |= (1 << 2);
17778 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17784 abuf->written = written;
17789 /* fcmpd: fcmpd$pack $FRdoublei,$FRdoublej,$FCCi_2 */
17792 SEM_FN_NAME (frvbf,fcmpd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17794 #define FLD(f) abuf->fields.sfmt_fcmpd.f
17795 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17796 int UNUSED written = 0;
17797 IADDR UNUSED pc = abuf->addr;
17798 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17800 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)))) {
17803 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17804 written |= (1 << 2);
17805 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17808 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)))) {
17811 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17812 written |= (1 << 2);
17813 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17816 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)))) {
17819 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17820 written |= (1 << 2);
17821 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17826 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17827 written |= (1 << 2);
17828 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17834 abuf->written = written;
17839 /* cfcmps: cfcmps$pack $FRi,$FRj,$FCCi_2,$CCi,$cond */
17842 SEM_FN_NAME (frvbf,cfcmps) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17844 #define FLD(f) abuf->fields.sfmt_cfcmps.f
17845 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17846 int UNUSED written = 0;
17847 IADDR UNUSED pc = abuf->addr;
17848 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17850 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17851 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)))) {
17854 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17855 written |= (1 << 4);
17856 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17859 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)))) {
17862 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17863 written |= (1 << 4);
17864 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17867 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)))) {
17870 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17871 written |= (1 << 4);
17872 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17877 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17878 written |= (1 << 4);
17879 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17886 abuf->written = written;
17891 /* fdcmps: fdcmps$pack $FRi,$FRj,$FCCi_2 */
17894 SEM_FN_NAME (frvbf,fdcmps) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17896 #define FLD(f) abuf->fields.sfmt_nfdcmps.f
17897 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17898 int UNUSED written = 0;
17899 IADDR UNUSED pc = abuf->addr;
17900 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17903 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)))) {
17906 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17907 written |= (1 << 7);
17908 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17911 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)))) {
17914 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17915 written |= (1 << 7);
17916 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17919 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)))) {
17922 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17923 written |= (1 << 7);
17924 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17929 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17930 written |= (1 << 7);
17931 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17936 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))))) {
17939 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCi_2)) + (1))]), opval);
17940 written |= (1 << 8);
17941 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17944 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))))) {
17947 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCi_2)) + (1))]), opval);
17948 written |= (1 << 8);
17949 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17952 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))))) {
17955 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCi_2)) + (1))]), opval);
17956 written |= (1 << 8);
17957 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17962 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCi_2)) + (1))]), opval);
17963 written |= (1 << 8);
17964 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17971 abuf->written = written;
17976 /* fmadds: fmadds$pack $FRi,$FRj,$FRk */
17979 SEM_FN_NAME (frvbf,fmadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17981 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17982 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17983 int UNUSED written = 0;
17984 IADDR UNUSED pc = abuf->addr;
17985 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17988 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)));
17989 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17990 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17997 /* fmsubs: fmsubs$pack $FRi,$FRj,$FRk */
18000 SEM_FN_NAME (frvbf,fmsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18002 #define FLD(f) abuf->fields.sfmt_cfmadds.f
18003 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18004 int UNUSED written = 0;
18005 IADDR UNUSED pc = abuf->addr;
18006 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18009 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)));
18010 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18011 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18018 /* fmaddd: fmaddd$pack $FRdoublei,$FRdoublej,$FRdoublek */
18021 SEM_FN_NAME (frvbf,fmaddd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18023 #define FLD(f) abuf->fields.sfmt_fmaddd.f
18024 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18025 int UNUSED written = 0;
18026 IADDR UNUSED pc = abuf->addr;
18027 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18030 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)));
18031 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
18032 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
18039 /* fmsubd: fmsubd$pack $FRdoublei,$FRdoublej,$FRdoublek */
18042 SEM_FN_NAME (frvbf,fmsubd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18044 #define FLD(f) abuf->fields.sfmt_fmaddd.f
18045 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18046 int UNUSED written = 0;
18047 IADDR UNUSED pc = abuf->addr;
18048 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18051 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)));
18052 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
18053 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
18060 /* fdmadds: fdmadds$pack $FRi,$FRj,$FRk */
18063 SEM_FN_NAME (frvbf,fdmadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18065 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18066 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18067 int UNUSED written = 0;
18068 IADDR UNUSED pc = abuf->addr;
18069 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18073 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)));
18074 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18075 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18078 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))));
18079 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18080 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18088 /* nfdmadds: nfdmadds$pack $FRi,$FRj,$FRk */
18091 SEM_FN_NAME (frvbf,nfdmadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18093 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18094 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18095 int UNUSED written = 0;
18096 IADDR UNUSED pc = abuf->addr;
18097 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18100 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
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);
18106 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18108 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))));
18109 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18110 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18118 /* cfmadds: cfmadds$pack $FRi,$FRj,$FRk,$CCi,$cond */
18121 SEM_FN_NAME (frvbf,cfmadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18123 #define FLD(f) abuf->fields.sfmt_cfmadds.f
18124 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18125 int UNUSED written = 0;
18126 IADDR UNUSED pc = abuf->addr;
18127 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18129 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
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 written |= (1 << 5);
18134 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18138 abuf->written = written;
18143 /* cfmsubs: cfmsubs$pack $FRi,$FRj,$FRk,$CCi,$cond */
18146 SEM_FN_NAME (frvbf,cfmsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18148 #define FLD(f) abuf->fields.sfmt_cfmadds.f
18149 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18150 int UNUSED written = 0;
18151 IADDR UNUSED pc = abuf->addr;
18152 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18154 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
18156 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)));
18157 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18158 written |= (1 << 5);
18159 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18163 abuf->written = written;
18168 /* nfmadds: nfmadds$pack $FRi,$FRj,$FRk */
18171 SEM_FN_NAME (frvbf,nfmadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18173 #define FLD(f) abuf->fields.sfmt_cfmadds.f
18174 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18175 int UNUSED written = 0;
18176 IADDR UNUSED pc = abuf->addr;
18177 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18180 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18182 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)));
18183 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18184 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18192 /* nfmsubs: nfmsubs$pack $FRi,$FRj,$FRk */
18195 SEM_FN_NAME (frvbf,nfmsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18197 #define FLD(f) abuf->fields.sfmt_cfmadds.f
18198 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18199 int UNUSED written = 0;
18200 IADDR UNUSED pc = abuf->addr;
18201 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18204 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18206 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)));
18207 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18208 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18216 /* fmas: fmas$pack $FRi,$FRj,$FRk */
18219 SEM_FN_NAME (frvbf,fmas) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18221 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18222 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18223 int UNUSED written = 0;
18224 IADDR UNUSED pc = abuf->addr;
18225 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18229 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)));
18230 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18231 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18234 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))));
18235 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18236 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18244 /* fmss: fmss$pack $FRi,$FRj,$FRk */
18247 SEM_FN_NAME (frvbf,fmss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18249 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18250 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18251 int UNUSED written = 0;
18252 IADDR UNUSED pc = abuf->addr;
18253 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18257 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)));
18258 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18259 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18262 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))));
18263 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18264 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18272 /* fdmas: fdmas$pack $FRi,$FRj,$FRk */
18275 SEM_FN_NAME (frvbf,fdmas) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18277 #define FLD(f) abuf->fields.sfmt_fdmas.f
18278 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18279 int UNUSED written = 0;
18280 IADDR UNUSED pc = abuf->addr;
18281 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18285 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)));
18286 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18287 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18290 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))));
18291 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18292 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18295 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))));
18296 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (2)), opval);
18297 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18300 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))));
18301 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (3)), opval);
18302 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18310 /* fdmss: fdmss$pack $FRi,$FRj,$FRk */
18313 SEM_FN_NAME (frvbf,fdmss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18315 #define FLD(f) abuf->fields.sfmt_fdmas.f
18316 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18317 int UNUSED written = 0;
18318 IADDR UNUSED pc = abuf->addr;
18319 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18323 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)));
18324 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18325 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18328 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))));
18329 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18330 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18333 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))));
18334 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (2)), opval);
18335 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18338 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))));
18339 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (3)), opval);
18340 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18348 /* nfdmas: nfdmas$pack $FRi,$FRj,$FRk */
18351 SEM_FN_NAME (frvbf,nfdmas) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18353 #define FLD(f) abuf->fields.sfmt_fdmas.f
18354 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18355 int UNUSED written = 0;
18356 IADDR UNUSED pc = abuf->addr;
18357 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18360 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18361 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18362 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 2));
18363 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 3));
18365 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)));
18366 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18367 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18370 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))));
18371 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18372 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18375 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))));
18376 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (2)), opval);
18377 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18380 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))));
18381 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (3)), opval);
18382 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18390 /* nfdmss: nfdmss$pack $FRi,$FRj,$FRk */
18393 SEM_FN_NAME (frvbf,nfdmss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18395 #define FLD(f) abuf->fields.sfmt_fdmas.f
18396 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18397 int UNUSED written = 0;
18398 IADDR UNUSED pc = abuf->addr;
18399 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18402 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18403 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18404 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 2));
18405 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 3));
18407 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)));
18408 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18409 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18412 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))));
18413 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18414 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18417 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))));
18418 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (2)), opval);
18419 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18422 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))));
18423 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (3)), opval);
18424 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18432 /* cfmas: cfmas$pack $FRi,$FRj,$FRk,$CCi,$cond */
18435 SEM_FN_NAME (frvbf,cfmas) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18437 #define FLD(f) abuf->fields.sfmt_cfmas.f
18438 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18439 int UNUSED written = 0;
18440 IADDR UNUSED pc = abuf->addr;
18441 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18443 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
18446 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)));
18447 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18448 written |= (1 << 9);
18449 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18452 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))));
18453 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18454 written |= (1 << 10);
18455 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18460 abuf->written = written;
18465 /* cfmss: cfmss$pack $FRi,$FRj,$FRk,$CCi,$cond */
18468 SEM_FN_NAME (frvbf,cfmss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18470 #define FLD(f) abuf->fields.sfmt_cfmas.f
18471 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18472 int UNUSED written = 0;
18473 IADDR UNUSED pc = abuf->addr;
18474 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18476 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
18479 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)));
18480 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18481 written |= (1 << 9);
18482 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18485 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))));
18486 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18487 written |= (1 << 10);
18488 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18493 abuf->written = written;
18498 /* fmad: fmad$pack $FRi,$FRj,$FRk */
18501 SEM_FN_NAME (frvbf,fmad) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18503 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18504 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18505 int UNUSED written = 0;
18506 IADDR UNUSED pc = abuf->addr;
18507 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18511 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)))));
18512 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18513 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18516 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))))));
18517 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18518 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18526 /* fmsd: fmsd$pack $FRi,$FRj,$FRk */
18529 SEM_FN_NAME (frvbf,fmsd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18531 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18532 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18533 int UNUSED written = 0;
18534 IADDR UNUSED pc = abuf->addr;
18535 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18539 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)))));
18540 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18541 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18544 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))))));
18545 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18546 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18554 /* nfmas: nfmas$pack $FRi,$FRj,$FRk */
18557 SEM_FN_NAME (frvbf,nfmas) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18559 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18560 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18561 int UNUSED written = 0;
18562 IADDR UNUSED pc = abuf->addr;
18563 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18566 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18568 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)));
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);
18572 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18574 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))));
18575 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18576 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18584 /* nfmss: nfmss$pack $FRi,$FRj,$FRk */
18587 SEM_FN_NAME (frvbf,nfmss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18589 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18590 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18591 int UNUSED written = 0;
18592 IADDR UNUSED pc = abuf->addr;
18593 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18596 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18598 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)));
18599 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18600 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18602 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18604 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))));
18605 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18606 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18614 /* fdadds: fdadds$pack $FRi,$FRj,$FRk */
18617 SEM_FN_NAME (frvbf,fdadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18619 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18620 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18621 int UNUSED written = 0;
18622 IADDR UNUSED pc = abuf->addr;
18623 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18627 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)));
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);
18632 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))));
18633 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18634 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18642 /* fdsubs: fdsubs$pack $FRi,$FRj,$FRk */
18645 SEM_FN_NAME (frvbf,fdsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18647 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18648 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18649 int UNUSED written = 0;
18650 IADDR UNUSED pc = abuf->addr;
18651 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18655 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)));
18656 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18657 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18660 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))));
18661 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18662 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18670 /* fdmuls: fdmuls$pack $FRi,$FRj,$FRk */
18673 SEM_FN_NAME (frvbf,fdmuls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18675 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18676 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18677 int UNUSED written = 0;
18678 IADDR UNUSED pc = abuf->addr;
18679 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18683 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)));
18684 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18685 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18688 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))));
18689 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18690 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18698 /* fddivs: fddivs$pack $FRi,$FRj,$FRk */
18701 SEM_FN_NAME (frvbf,fddivs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18703 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18704 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18705 int UNUSED written = 0;
18706 IADDR UNUSED pc = abuf->addr;
18707 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18711 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)));
18712 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18713 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18716 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))));
18717 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18718 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18726 /* fdsads: fdsads$pack $FRi,$FRj,$FRk */
18729 SEM_FN_NAME (frvbf,fdsads) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18731 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18732 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18733 int UNUSED written = 0;
18734 IADDR UNUSED pc = abuf->addr;
18735 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18739 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)));
18740 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18741 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18744 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))));
18745 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18746 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18754 /* fdmulcs: fdmulcs$pack $FRi,$FRj,$FRk */
18757 SEM_FN_NAME (frvbf,fdmulcs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18759 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18760 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18761 int UNUSED written = 0;
18762 IADDR UNUSED pc = abuf->addr;
18763 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18767 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))));
18768 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18769 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18772 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)));
18773 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18774 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18782 /* nfdmulcs: nfdmulcs$pack $FRi,$FRj,$FRk */
18785 SEM_FN_NAME (frvbf,nfdmulcs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18787 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18788 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18789 int UNUSED written = 0;
18790 IADDR UNUSED pc = abuf->addr;
18791 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18794 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18796 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->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);
18800 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18802 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)));
18803 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18804 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18812 /* nfdadds: nfdadds$pack $FRi,$FRj,$FRk */
18815 SEM_FN_NAME (frvbf,nfdadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18817 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18818 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18819 int UNUSED written = 0;
18820 IADDR UNUSED pc = abuf->addr;
18821 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18824 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18826 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->addsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)));
18827 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18828 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18830 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18832 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->addsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1))));
18833 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18834 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18842 /* nfdsubs: nfdsubs$pack $FRi,$FRj,$FRk */
18845 SEM_FN_NAME (frvbf,nfdsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18847 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18848 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18849 int UNUSED written = 0;
18850 IADDR UNUSED pc = abuf->addr;
18851 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18854 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18856 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->subsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)));
18857 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18858 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18860 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18862 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->subsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1))));
18863 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18864 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18872 /* nfdmuls: nfdmuls$pack $FRi,$FRj,$FRk */
18875 SEM_FN_NAME (frvbf,nfdmuls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18877 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18878 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18879 int UNUSED written = 0;
18880 IADDR UNUSED pc = abuf->addr;
18881 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18884 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18886 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)));
18887 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18888 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18890 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18892 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1))));
18893 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18894 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18902 /* nfddivs: nfddivs$pack $FRi,$FRj,$FRk */
18905 SEM_FN_NAME (frvbf,nfddivs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18907 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18908 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18909 int UNUSED written = 0;
18910 IADDR UNUSED pc = abuf->addr;
18911 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18914 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18916 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)));
18917 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18918 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18920 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18922 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))));
18923 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18924 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18932 /* nfdsads: nfdsads$pack $FRi,$FRj,$FRk */
18935 SEM_FN_NAME (frvbf,nfdsads) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18937 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18938 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18939 int UNUSED written = 0;
18940 IADDR UNUSED pc = abuf->addr;
18941 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18944 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18946 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)));
18947 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18948 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18950 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18952 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))));
18953 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18954 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18962 /* nfdcmps: nfdcmps$pack $FRi,$FRj,$FCCi_2 */
18965 SEM_FN_NAME (frvbf,nfdcmps) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18967 #define FLD(f) abuf->fields.sfmt_nfdcmps.f
18968 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18969 int UNUSED written = 0;
18970 IADDR UNUSED pc = abuf->addr;
18971 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18974 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18975 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)))) {
18978 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
18979 written |= (1 << 8);
18980 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
18983 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)))) {
18986 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
18987 written |= (1 << 8);
18988 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
18991 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)))) {
18994 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
18995 written |= (1 << 8);
18996 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
19001 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
19002 written |= (1 << 8);
19003 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
19008 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
19009 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))))) {
19012 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCi_2)) + (1))]), opval);
19013 written |= (1 << 9);
19014 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
19017 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))))) {
19020 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCi_2)) + (1))]), opval);
19021 written |= (1 << 9);
19022 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
19025 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))))) {
19028 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCi_2)) + (1))]), opval);
19029 written |= (1 << 9);
19030 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
19035 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCi_2)) + (1))]), opval);
19036 written |= (1 << 9);
19037 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
19044 abuf->written = written;
19049 /* mhsetlos: mhsetlos$pack $u12,$FRklo */
19052 SEM_FN_NAME (frvbf,mhsetlos) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19054 #define FLD(f) abuf->fields.sfmt_mhsetlos.f
19055 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19056 int UNUSED written = 0;
19057 IADDR UNUSED pc = abuf->addr;
19058 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19061 UHI opval = FLD (f_u12);
19062 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, FLD (f_FRk), opval);
19063 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19070 /* mhsethis: mhsethis$pack $u12,$FRkhi */
19073 SEM_FN_NAME (frvbf,mhsethis) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19075 #define FLD(f) abuf->fields.sfmt_mhsethis.f
19076 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19077 int UNUSED written = 0;
19078 IADDR UNUSED pc = abuf->addr;
19079 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19082 UHI opval = FLD (f_u12);
19083 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, FLD (f_FRk), opval);
19084 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19091 /* mhdsets: mhdsets$pack $u12,$FRintk */
19094 SEM_FN_NAME (frvbf,mhdsets) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19096 #define FLD(f) abuf->fields.sfmt_mhdsets.f
19097 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19098 int UNUSED written = 0;
19099 IADDR UNUSED pc = abuf->addr;
19100 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19104 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
19105 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19106 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19109 UHI opval = FLD (f_u12);
19110 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19111 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19114 UHI opval = FLD (f_u12);
19115 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19116 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19124 /* mhsetloh: mhsetloh$pack $s5,$FRklo */
19127 SEM_FN_NAME (frvbf,mhsetloh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19129 #define FLD(f) abuf->fields.sfmt_mhsetloh.f
19130 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19131 int UNUSED written = 0;
19132 IADDR UNUSED pc = abuf->addr;
19133 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19137 tmp_tmp = GET_H_FR_LO (FLD (f_FRk));
19138 tmp_tmp = ANDHI (tmp_tmp, 2047);
19139 tmp_tmp = ORHI (tmp_tmp, SLLSI (ANDSI (FLD (f_s5), 31), 11));
19141 UHI opval = tmp_tmp;
19142 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, FLD (f_FRk), opval);
19143 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19151 /* mhsethih: mhsethih$pack $s5,$FRkhi */
19154 SEM_FN_NAME (frvbf,mhsethih) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19156 #define FLD(f) abuf->fields.sfmt_mhsethih.f
19157 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19158 int UNUSED written = 0;
19159 IADDR UNUSED pc = abuf->addr;
19160 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19164 tmp_tmp = GET_H_FR_HI (FLD (f_FRk));
19165 tmp_tmp = ANDHI (tmp_tmp, 2047);
19166 tmp_tmp = ORHI (tmp_tmp, SLLSI (ANDSI (FLD (f_s5), 31), 11));
19168 UHI opval = tmp_tmp;
19169 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, FLD (f_FRk), opval);
19170 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19178 /* mhdseth: mhdseth$pack $s5,$FRintk */
19181 SEM_FN_NAME (frvbf,mhdseth) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19183 #define FLD(f) abuf->fields.sfmt_mhdseth.f
19184 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19185 int UNUSED written = 0;
19186 IADDR UNUSED pc = abuf->addr;
19187 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19191 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
19192 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19193 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19197 tmp_tmp = GET_H_FR_HI (((FLD (f_FRk)) + (0)));
19198 tmp_tmp = ANDHI (tmp_tmp, 2047);
19199 tmp_tmp = ORHI (tmp_tmp, SLLSI (ANDSI (FLD (f_s5), 31), 11));
19201 UHI opval = tmp_tmp;
19202 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19203 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19208 tmp_tmp = GET_H_FR_LO (((FLD (f_FRk)) + (0)));
19209 tmp_tmp = ANDHI (tmp_tmp, 2047);
19210 tmp_tmp = ORHI (tmp_tmp, SLLSI (ANDSI (FLD (f_s5), 31), 11));
19212 UHI opval = tmp_tmp;
19213 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19214 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19223 /* mand: mand$pack $FRinti,$FRintj,$FRintk */
19226 SEM_FN_NAME (frvbf,mand) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19228 #define FLD(f) abuf->fields.sfmt_mwcut.f
19229 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19230 int UNUSED written = 0;
19231 IADDR UNUSED pc = abuf->addr;
19232 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19235 SI opval = ANDSI (GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
19236 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19237 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19244 /* mor: mor$pack $FRinti,$FRintj,$FRintk */
19247 SEM_FN_NAME (frvbf,mor) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19249 #define FLD(f) abuf->fields.sfmt_mwcut.f
19250 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19251 int UNUSED written = 0;
19252 IADDR UNUSED pc = abuf->addr;
19253 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19256 SI opval = ORSI (GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
19257 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19258 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19265 /* mxor: mxor$pack $FRinti,$FRintj,$FRintk */
19268 SEM_FN_NAME (frvbf,mxor) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19270 #define FLD(f) abuf->fields.sfmt_mwcut.f
19271 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19272 int UNUSED written = 0;
19273 IADDR UNUSED pc = abuf->addr;
19274 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19277 SI opval = XORSI (GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
19278 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19279 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19286 /* cmand: cmand$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
19289 SEM_FN_NAME (frvbf,cmand) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19291 #define FLD(f) abuf->fields.sfmt_cmand.f
19292 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19293 int UNUSED written = 0;
19294 IADDR UNUSED pc = abuf->addr;
19295 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19297 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
19299 SI opval = ANDSI (GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
19300 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19301 written |= (1 << 4);
19302 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19306 abuf->written = written;
19311 /* cmor: cmor$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
19314 SEM_FN_NAME (frvbf,cmor) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19316 #define FLD(f) abuf->fields.sfmt_cmand.f
19317 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19318 int UNUSED written = 0;
19319 IADDR UNUSED pc = abuf->addr;
19320 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19322 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
19324 SI opval = ORSI (GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
19325 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19326 written |= (1 << 4);
19327 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19331 abuf->written = written;
19336 /* cmxor: cmxor$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
19339 SEM_FN_NAME (frvbf,cmxor) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19341 #define FLD(f) abuf->fields.sfmt_cmand.f
19342 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19343 int UNUSED written = 0;
19344 IADDR UNUSED pc = abuf->addr;
19345 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19347 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
19349 SI opval = XORSI (GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
19350 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19351 written |= (1 << 4);
19352 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19356 abuf->written = written;
19361 /* mnot: mnot$pack $FRintj,$FRintk */
19364 SEM_FN_NAME (frvbf,mnot) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19366 #define FLD(f) abuf->fields.sfmt_mcut.f
19367 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19368 int UNUSED written = 0;
19369 IADDR UNUSED pc = abuf->addr;
19370 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19373 SI opval = INVSI (GET_H_FR_INT (FLD (f_FRj)));
19374 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19375 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19382 /* cmnot: cmnot$pack $FRintj,$FRintk,$CCi,$cond */
19385 SEM_FN_NAME (frvbf,cmnot) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19387 #define FLD(f) abuf->fields.sfmt_cmand.f
19388 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19389 int UNUSED written = 0;
19390 IADDR UNUSED pc = abuf->addr;
19391 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19393 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
19395 SI opval = INVSI (GET_H_FR_INT (FLD (f_FRj)));
19396 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19397 written |= (1 << 3);
19398 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19402 abuf->written = written;
19407 /* mrotli: mrotli$pack $FRinti,$u6,$FRintk */
19410 SEM_FN_NAME (frvbf,mrotli) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19412 #define FLD(f) abuf->fields.sfmt_mwcuti.f
19413 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19414 int UNUSED written = 0;
19415 IADDR UNUSED pc = abuf->addr;
19416 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19419 SI opval = ROLSI (GET_H_FR_INT (FLD (f_FRi)), ANDSI (FLD (f_u6), 31));
19420 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19421 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19428 /* mrotri: mrotri$pack $FRinti,$u6,$FRintk */
19431 SEM_FN_NAME (frvbf,mrotri) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19433 #define FLD(f) abuf->fields.sfmt_mwcuti.f
19434 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19435 int UNUSED written = 0;
19436 IADDR UNUSED pc = abuf->addr;
19437 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19440 SI opval = RORSI (GET_H_FR_INT (FLD (f_FRi)), ANDSI (FLD (f_u6), 31));
19441 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19442 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19449 /* mwcut: mwcut$pack $FRinti,$FRintj,$FRintk */
19452 SEM_FN_NAME (frvbf,mwcut) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19454 #define FLD(f) abuf->fields.sfmt_mwcut.f
19455 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19456 int UNUSED written = 0;
19457 IADDR UNUSED pc = abuf->addr;
19458 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19461 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)));
19462 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19463 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19470 /* mwcuti: mwcuti$pack $FRinti,$u6,$FRintk */
19473 SEM_FN_NAME (frvbf,mwcuti) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19475 #define FLD(f) abuf->fields.sfmt_mwcuti.f
19476 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19477 int UNUSED written = 0;
19478 IADDR UNUSED pc = abuf->addr;
19479 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19482 SI opval = frvbf_cut (current_cpu, GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (((FLD (f_FRi)) + (1))), FLD (f_u6));
19483 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19484 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19491 /* mcut: mcut$pack $ACC40Si,$FRintj,$FRintk */
19494 SEM_FN_NAME (frvbf,mcut) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19496 #define FLD(f) abuf->fields.sfmt_mcut.f
19497 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19498 int UNUSED written = 0;
19499 IADDR UNUSED pc = abuf->addr;
19500 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19503 SI opval = frvbf_media_cut (current_cpu, GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_FR_INT (FLD (f_FRj)));
19504 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19505 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19512 /* mcuti: mcuti$pack $ACC40Si,$s6,$FRintk */
19515 SEM_FN_NAME (frvbf,mcuti) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19517 #define FLD(f) abuf->fields.sfmt_mcuti.f
19518 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19519 int UNUSED written = 0;
19520 IADDR UNUSED pc = abuf->addr;
19521 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19524 SI opval = frvbf_media_cut (current_cpu, GET_H_ACC40S (FLD (f_ACC40Si)), FLD (f_s6));
19525 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19526 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19533 /* mcutss: mcutss$pack $ACC40Si,$FRintj,$FRintk */
19536 SEM_FN_NAME (frvbf,mcutss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19538 #define FLD(f) abuf->fields.sfmt_mcut.f
19539 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19540 int UNUSED written = 0;
19541 IADDR UNUSED pc = abuf->addr;
19542 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19545 SI opval = frvbf_media_cut_ss (current_cpu, GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_FR_INT (FLD (f_FRj)));
19546 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19547 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19554 /* mcutssi: mcutssi$pack $ACC40Si,$s6,$FRintk */
19557 SEM_FN_NAME (frvbf,mcutssi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19559 #define FLD(f) abuf->fields.sfmt_mcuti.f
19560 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19561 int UNUSED written = 0;
19562 IADDR UNUSED pc = abuf->addr;
19563 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19566 SI opval = frvbf_media_cut_ss (current_cpu, GET_H_ACC40S (FLD (f_ACC40Si)), FLD (f_s6));
19567 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19568 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19575 /* mdcutssi: mdcutssi$pack $ACC40Si,$s6,$FRintkeven */
19578 SEM_FN_NAME (frvbf,mdcutssi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19580 #define FLD(f) abuf->fields.sfmt_mdcutssi.f
19581 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19582 int UNUSED written = 0;
19583 IADDR UNUSED pc = abuf->addr;
19584 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19586 if (ANDSI (FLD (f_ACC40Si), SUBSI (2, 1))) {
19587 frvbf_media_acc_not_aligned (current_cpu);
19589 if (ANDSI (FLD (f_FRk), SUBSI (2, 1))) {
19590 frvbf_media_register_not_aligned (current_cpu);
19594 SI opval = frvbf_media_cut_ss (current_cpu, GET_H_ACC40S (FLD (f_ACC40Si)), FLD (f_s6));
19595 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19596 written |= (1 << 5);
19597 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19600 USI opval = frvbf_media_cut_ss (current_cpu, GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))), FLD (f_s6));
19601 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
19602 written |= (1 << 6);
19603 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19609 abuf->written = written;
19614 /* maveh: maveh$pack $FRinti,$FRintj,$FRintk */
19617 SEM_FN_NAME (frvbf,maveh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19619 #define FLD(f) abuf->fields.sfmt_mwcut.f
19620 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19621 int UNUSED written = 0;
19622 IADDR UNUSED pc = abuf->addr;
19623 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19626 SI opval = frvbf_media_average (current_cpu, GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
19627 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19628 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19635 /* msllhi: msllhi$pack $FRinti,$u6,$FRintk */
19638 SEM_FN_NAME (frvbf,msllhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19640 #define FLD(f) abuf->fields.sfmt_msllhi.f
19641 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19642 int UNUSED written = 0;
19643 IADDR UNUSED pc = abuf->addr;
19644 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19648 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
19649 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
19650 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19653 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
19654 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19655 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19658 UHI opval = SLLHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), ANDSI (FLD (f_u6), 15));
19659 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19660 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19663 UHI opval = SLLHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), ANDSI (FLD (f_u6), 15));
19664 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19665 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19673 /* msrlhi: msrlhi$pack $FRinti,$u6,$FRintk */
19676 SEM_FN_NAME (frvbf,msrlhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19678 #define FLD(f) abuf->fields.sfmt_msllhi.f
19679 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19680 int UNUSED written = 0;
19681 IADDR UNUSED pc = abuf->addr;
19682 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19686 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
19687 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
19688 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19691 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
19692 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19693 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19696 UHI opval = SRLHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), ANDSI (FLD (f_u6), 15));
19697 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19698 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19701 UHI opval = SRLHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), ANDSI (FLD (f_u6), 15));
19702 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19703 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19711 /* msrahi: msrahi$pack $FRinti,$u6,$FRintk */
19714 SEM_FN_NAME (frvbf,msrahi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19716 #define FLD(f) abuf->fields.sfmt_msllhi.f
19717 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19718 int UNUSED written = 0;
19719 IADDR UNUSED pc = abuf->addr;
19720 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19724 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
19725 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
19726 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19729 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
19730 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19731 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19734 UHI opval = SRAHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), ANDSI (FLD (f_u6), 15));
19735 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19736 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19739 UHI opval = SRAHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), ANDSI (FLD (f_u6), 15));
19740 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19741 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19749 /* mdrotli: mdrotli$pack $FRintieven,$s6,$FRintkeven */
19752 SEM_FN_NAME (frvbf,mdrotli) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19754 #define FLD(f) abuf->fields.sfmt_mdrotli.f
19755 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19756 int UNUSED written = 0;
19757 IADDR UNUSED pc = abuf->addr;
19758 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19760 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1)))) {
19761 frvbf_media_register_not_aligned (current_cpu);
19765 SI opval = ROLSI (GET_H_FR_INT (FLD (f_FRi)), ANDSI (FLD (f_s6), 31));
19766 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19767 written |= (1 << 5);
19768 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19771 USI opval = ROLSI (GET_H_FR_INT (((FLD (f_FRi)) + (1))), ANDSI (FLD (f_s6), 31));
19772 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
19773 written |= (1 << 6);
19774 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19779 abuf->written = written;
19784 /* mcplhi: mcplhi$pack $FRinti,$u6,$FRintk */
19787 SEM_FN_NAME (frvbf,mcplhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19789 #define FLD(f) abuf->fields.sfmt_mcplhi.f
19790 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19791 int UNUSED written = 0;
19792 IADDR UNUSED pc = abuf->addr;
19793 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19800 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
19801 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
19802 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19805 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
19806 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19807 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19809 tmp_shift = ANDSI (FLD (f_u6), 15);
19810 tmp_arg1 = SLLHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), tmp_shift);
19811 if (NEHI (tmp_shift, 0)) {
19813 tmp_arg2 = GET_H_FR_HI (((FLD (f_FRi)) + (1)));
19814 tmp_arg2 = SRLHI (SLLHI (tmp_arg2, SUBSI (15, tmp_shift)), SUBSI (15, tmp_shift));
19815 tmp_arg1 = ORHI (tmp_arg1, tmp_arg2);
19819 UHI opval = tmp_arg1;
19820 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19821 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19829 /* mcpli: mcpli$pack $FRinti,$u6,$FRintk */
19832 SEM_FN_NAME (frvbf,mcpli) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19834 #define FLD(f) abuf->fields.sfmt_mwcuti.f
19835 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19836 int UNUSED written = 0;
19837 IADDR UNUSED pc = abuf->addr;
19838 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19843 tmp_shift = ANDSI (FLD (f_u6), 31);
19844 tmp_tmp = SLLSI (GET_H_FR_INT (FLD (f_FRi)), tmp_shift);
19845 if (NESI (tmp_shift, 0)) {
19848 tmp_tmp1 = SRLSI (SLLSI (GET_H_FR_INT (((FLD (f_FRi)) + (1))), SUBSI (31, tmp_shift)), SUBSI (31, tmp_shift));
19849 tmp_tmp = ORSI (tmp_tmp, tmp_tmp1);
19853 SI opval = tmp_tmp;
19854 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19855 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19863 /* msaths: msaths$pack $FRinti,$FRintj,$FRintk */
19866 SEM_FN_NAME (frvbf,msaths) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19868 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
19869 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19870 int UNUSED written = 0;
19871 IADDR UNUSED pc = abuf->addr;
19872 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19880 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
19881 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
19882 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
19883 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
19885 if (GTHI (tmp_argihi, tmp_argjhi)) {
19887 UHI opval = tmp_argjhi;
19888 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19889 written |= (1 << 9);
19890 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19893 if (LTHI (tmp_argihi, INVHI (tmp_argjhi))) {
19895 UHI opval = INVHI (tmp_argjhi);
19896 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19897 written |= (1 << 9);
19898 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19902 UHI opval = tmp_argihi;
19903 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19904 written |= (1 << 9);
19905 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19909 if (GTHI (tmp_argilo, tmp_argjlo)) {
19911 UHI opval = tmp_argjlo;
19912 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19913 written |= (1 << 10);
19914 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19917 if (LTHI (tmp_argilo, INVHI (tmp_argjlo))) {
19919 UHI opval = INVHI (tmp_argjlo);
19920 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19921 written |= (1 << 10);
19922 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19926 UHI opval = tmp_argilo;
19927 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19928 written |= (1 << 10);
19929 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19935 abuf->written = written;
19940 /* mqsaths: mqsaths$pack $FRintieven,$FRintjeven,$FRintkeven */
19943 SEM_FN_NAME (frvbf,mqsaths) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19945 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
19946 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19947 int UNUSED written = 0;
19948 IADDR UNUSED pc = abuf->addr;
19949 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19951 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
19952 frvbf_media_register_not_aligned (current_cpu);
19960 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
19961 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19962 written |= (1 << 14);
19963 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19966 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
19967 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
19968 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
19969 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
19971 if (GTHI (tmp_argihi, tmp_argjhi)) {
19973 UHI opval = tmp_argjhi;
19974 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19975 written |= (1 << 15);
19976 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19979 if (LTHI (tmp_argihi, INVHI (tmp_argjhi))) {
19981 UHI opval = INVHI (tmp_argjhi);
19982 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19983 written |= (1 << 15);
19984 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19988 UHI opval = tmp_argihi;
19989 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19990 written |= (1 << 15);
19991 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19995 if (GTHI (tmp_argilo, tmp_argjlo)) {
19997 UHI opval = tmp_argjlo;
19998 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19999 written |= (1 << 17);
20000 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20003 if (LTHI (tmp_argilo, INVHI (tmp_argjlo))) {
20005 UHI opval = INVHI (tmp_argjlo);
20006 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20007 written |= (1 << 17);
20008 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20012 UHI opval = tmp_argilo;
20013 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20014 written |= (1 << 17);
20015 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20020 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20021 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20022 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20023 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20025 if (GTHI (tmp_argihi, tmp_argjhi)) {
20027 UHI opval = tmp_argjhi;
20028 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
20029 written |= (1 << 16);
20030 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20033 if (LTHI (tmp_argihi, INVHI (tmp_argjhi))) {
20035 UHI opval = INVHI (tmp_argjhi);
20036 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
20037 written |= (1 << 16);
20038 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20042 UHI opval = tmp_argihi;
20043 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
20044 written |= (1 << 16);
20045 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20049 if (GTHI (tmp_argilo, tmp_argjlo)) {
20051 UHI opval = tmp_argjlo;
20052 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
20053 written |= (1 << 18);
20054 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20057 if (LTHI (tmp_argilo, INVHI (tmp_argjlo))) {
20059 UHI opval = INVHI (tmp_argjlo);
20060 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
20061 written |= (1 << 18);
20062 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20066 UHI opval = tmp_argilo;
20067 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
20068 written |= (1 << 18);
20069 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20076 abuf->written = written;
20081 /* msathu: msathu$pack $FRinti,$FRintj,$FRintk */
20084 SEM_FN_NAME (frvbf,msathu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20086 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20087 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20088 int UNUSED written = 0;
20089 IADDR UNUSED pc = abuf->addr;
20090 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20098 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20099 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20100 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20101 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20103 if (GTUHI (tmp_argihi, tmp_argjhi)) {
20105 UHI opval = tmp_argjhi;
20106 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20107 written |= (1 << 9);
20108 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20112 UHI opval = tmp_argihi;
20113 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20114 written |= (1 << 9);
20115 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20118 if (GTUHI (tmp_argilo, tmp_argjlo)) {
20120 UHI opval = tmp_argjlo;
20121 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20122 written |= (1 << 10);
20123 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20127 UHI opval = tmp_argilo;
20128 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20129 written |= (1 << 10);
20130 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20135 abuf->written = written;
20140 /* mcmpsh: mcmpsh$pack $FRinti,$FRintj,$FCCk */
20143 SEM_FN_NAME (frvbf,mcmpsh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20145 #define FLD(f) abuf->fields.sfmt_mcmpsh.f
20146 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20147 int UNUSED written = 0;
20148 IADDR UNUSED pc = abuf->addr;
20149 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20151 if (ANDSI (FLD (f_FCCk), SUBSI (2, 1))) {
20152 frvbf_media_cr_not_aligned (current_cpu);
20160 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20161 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20162 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20163 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20165 if (GTHI (tmp_argihi, tmp_argjhi)) {
20168 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20169 written |= (1 << 9);
20170 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20173 if (EQHI (tmp_argihi, tmp_argjhi)) {
20176 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20177 written |= (1 << 9);
20178 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20181 if (LTHI (tmp_argihi, tmp_argjhi)) {
20184 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20185 written |= (1 << 9);
20186 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20191 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20192 written |= (1 << 9);
20193 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20198 if (GTHI (tmp_argilo, tmp_argjlo)) {
20201 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCk)) + (1))]), opval);
20202 written |= (1 << 10);
20203 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20206 if (EQHI (tmp_argilo, tmp_argjlo)) {
20209 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCk)) + (1))]), opval);
20210 written |= (1 << 10);
20211 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20214 if (LTHI (tmp_argilo, tmp_argjlo)) {
20217 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCk)) + (1))]), opval);
20218 written |= (1 << 10);
20219 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20224 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCk)) + (1))]), opval);
20225 written |= (1 << 10);
20226 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20234 abuf->written = written;
20239 /* mcmpuh: mcmpuh$pack $FRinti,$FRintj,$FCCk */
20242 SEM_FN_NAME (frvbf,mcmpuh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20244 #define FLD(f) abuf->fields.sfmt_mcmpsh.f
20245 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20246 int UNUSED written = 0;
20247 IADDR UNUSED pc = abuf->addr;
20248 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20250 if (ANDSI (FLD (f_FCCk), SUBSI (2, 1))) {
20251 frvbf_media_cr_not_aligned (current_cpu);
20259 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20260 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20261 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20262 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20264 if (GTUHI (tmp_argihi, tmp_argjhi)) {
20267 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20268 written |= (1 << 9);
20269 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20272 if (EQHI (tmp_argihi, tmp_argjhi)) {
20275 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20276 written |= (1 << 9);
20277 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20280 if (LTUHI (tmp_argihi, tmp_argjhi)) {
20283 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20284 written |= (1 << 9);
20285 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20290 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20291 written |= (1 << 9);
20292 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20297 if (GTUHI (tmp_argilo, tmp_argjlo)) {
20300 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCk)) + (1))]), opval);
20301 written |= (1 << 10);
20302 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20305 if (EQHI (tmp_argilo, tmp_argjlo)) {
20308 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCk)) + (1))]), opval);
20309 written |= (1 << 10);
20310 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20313 if (LTUHI (tmp_argilo, tmp_argjlo)) {
20316 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCk)) + (1))]), opval);
20317 written |= (1 << 10);
20318 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20323 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCk)) + (1))]), opval);
20324 written |= (1 << 10);
20325 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20333 abuf->written = written;
20338 /* mabshs: mabshs$pack $FRintj,$FRintk */
20341 SEM_FN_NAME (frvbf,mabshs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20343 #define FLD(f) abuf->fields.sfmt_mabshs.f
20344 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20345 int UNUSED written = 0;
20346 IADDR UNUSED pc = abuf->addr;
20347 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20353 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
20354 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
20355 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
20358 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
20359 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
20360 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
20362 tmp_arghi = GET_H_FR_HI (((FLD (f_FRj)) + (0)));
20363 tmp_arglo = GET_H_FR_LO (((FLD (f_FRj)) + (0)));
20364 if (GTDI (ABSHI (tmp_arghi), 32767)) {
20368 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20369 written |= (1 << 8);
20370 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20372 frvbf_media_overflow (current_cpu, 8);
20375 if (LTDI (ABSHI (tmp_arghi), -32768)) {
20378 UHI opval = -32768;
20379 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20380 written |= (1 << 8);
20381 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20383 frvbf_media_overflow (current_cpu, 8);
20387 UHI opval = ABSHI (tmp_arghi);
20388 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20389 written |= (1 << 8);
20390 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20394 if (GTDI (ABSHI (tmp_arglo), 32767)) {
20398 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20399 written |= (1 << 9);
20400 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20402 frvbf_media_overflow (current_cpu, 4);
20405 if (LTDI (ABSHI (tmp_arglo), -32768)) {
20408 UHI opval = -32768;
20409 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20410 written |= (1 << 9);
20411 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20413 frvbf_media_overflow (current_cpu, 4);
20417 UHI opval = ABSHI (tmp_arglo);
20418 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20419 written |= (1 << 9);
20420 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20426 abuf->written = written;
20431 /* maddhss: maddhss$pack $FRinti,$FRintj,$FRintk */
20434 SEM_FN_NAME (frvbf,maddhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20436 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20437 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20438 int UNUSED written = 0;
20439 IADDR UNUSED pc = abuf->addr;
20440 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20448 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20449 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20450 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20451 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20455 tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
20456 if (GTDI (tmp_tmp, 32767)) {
20460 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20461 written |= (1 << 9);
20462 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20464 frvbf_media_overflow (current_cpu, 8);
20467 if (LTDI (tmp_tmp, -32768)) {
20470 UHI opval = -32768;
20471 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20472 written |= (1 << 9);
20473 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20475 frvbf_media_overflow (current_cpu, 8);
20479 UHI opval = tmp_tmp;
20480 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20481 written |= (1 << 9);
20482 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20489 tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
20490 if (GTDI (tmp_tmp, 32767)) {
20494 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20495 written |= (1 << 10);
20496 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20498 frvbf_media_overflow (current_cpu, 4);
20501 if (LTDI (tmp_tmp, -32768)) {
20504 UHI opval = -32768;
20505 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20506 written |= (1 << 10);
20507 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20509 frvbf_media_overflow (current_cpu, 4);
20513 UHI opval = tmp_tmp;
20514 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20515 written |= (1 << 10);
20516 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20523 abuf->written = written;
20528 /* maddhus: maddhus$pack $FRinti,$FRintj,$FRintk */
20531 SEM_FN_NAME (frvbf,maddhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20533 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20534 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20535 int UNUSED written = 0;
20536 IADDR UNUSED pc = abuf->addr;
20537 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20545 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20546 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20547 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20548 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20552 tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
20553 if (GTDI (tmp_tmp, 65535)) {
20557 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20558 written |= (1 << 9);
20559 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20561 frvbf_media_overflow (current_cpu, 8);
20564 if (LTDI (tmp_tmp, 0)) {
20568 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20569 written |= (1 << 9);
20570 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20572 frvbf_media_overflow (current_cpu, 8);
20576 UHI opval = tmp_tmp;
20577 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20578 written |= (1 << 9);
20579 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20586 tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
20587 if (GTDI (tmp_tmp, 65535)) {
20591 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20592 written |= (1 << 10);
20593 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20595 frvbf_media_overflow (current_cpu, 4);
20598 if (LTDI (tmp_tmp, 0)) {
20602 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20603 written |= (1 << 10);
20604 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20606 frvbf_media_overflow (current_cpu, 4);
20610 UHI opval = tmp_tmp;
20611 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20612 written |= (1 << 10);
20613 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20620 abuf->written = written;
20625 /* msubhss: msubhss$pack $FRinti,$FRintj,$FRintk */
20628 SEM_FN_NAME (frvbf,msubhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20630 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20631 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20632 int UNUSED written = 0;
20633 IADDR UNUSED pc = abuf->addr;
20634 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20642 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20643 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20644 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20645 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20649 tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
20650 if (GTDI (tmp_tmp, 32767)) {
20654 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20655 written |= (1 << 9);
20656 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20658 frvbf_media_overflow (current_cpu, 8);
20661 if (LTDI (tmp_tmp, -32768)) {
20664 UHI opval = -32768;
20665 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20666 written |= (1 << 9);
20667 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20669 frvbf_media_overflow (current_cpu, 8);
20673 UHI opval = tmp_tmp;
20674 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20675 written |= (1 << 9);
20676 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20683 tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
20684 if (GTDI (tmp_tmp, 32767)) {
20688 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20689 written |= (1 << 10);
20690 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20692 frvbf_media_overflow (current_cpu, 4);
20695 if (LTDI (tmp_tmp, -32768)) {
20698 UHI opval = -32768;
20699 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20700 written |= (1 << 10);
20701 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20703 frvbf_media_overflow (current_cpu, 4);
20707 UHI opval = tmp_tmp;
20708 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20709 written |= (1 << 10);
20710 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20717 abuf->written = written;
20722 /* msubhus: msubhus$pack $FRinti,$FRintj,$FRintk */
20725 SEM_FN_NAME (frvbf,msubhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20727 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20728 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20729 int UNUSED written = 0;
20730 IADDR UNUSED pc = abuf->addr;
20731 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20739 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20740 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20741 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20742 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20746 tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
20747 if (GTDI (tmp_tmp, 65535)) {
20751 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20752 written |= (1 << 9);
20753 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20755 frvbf_media_overflow (current_cpu, 8);
20758 if (LTDI (tmp_tmp, 0)) {
20762 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20763 written |= (1 << 9);
20764 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20766 frvbf_media_overflow (current_cpu, 8);
20770 UHI opval = tmp_tmp;
20771 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20772 written |= (1 << 9);
20773 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20780 tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
20781 if (GTDI (tmp_tmp, 65535)) {
20785 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20786 written |= (1 << 10);
20787 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20789 frvbf_media_overflow (current_cpu, 4);
20792 if (LTDI (tmp_tmp, 0)) {
20796 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20797 written |= (1 << 10);
20798 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20800 frvbf_media_overflow (current_cpu, 4);
20804 UHI opval = tmp_tmp;
20805 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20806 written |= (1 << 10);
20807 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20814 abuf->written = written;
20819 /* cmaddhss: cmaddhss$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
20822 SEM_FN_NAME (frvbf,cmaddhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20824 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20825 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20826 int UNUSED written = 0;
20827 IADDR UNUSED pc = abuf->addr;
20828 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20830 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
20837 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20838 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20839 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20840 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20844 tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
20845 if (GTDI (tmp_tmp, 32767)) {
20849 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20850 written |= (1 << 11);
20851 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20853 frvbf_media_overflow (current_cpu, 8);
20856 if (LTDI (tmp_tmp, -32768)) {
20859 UHI opval = -32768;
20860 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20861 written |= (1 << 11);
20862 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20864 frvbf_media_overflow (current_cpu, 8);
20868 UHI opval = tmp_tmp;
20869 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20870 written |= (1 << 11);
20871 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20878 tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
20879 if (GTDI (tmp_tmp, 32767)) {
20883 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20884 written |= (1 << 12);
20885 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20887 frvbf_media_overflow (current_cpu, 4);
20890 if (LTDI (tmp_tmp, -32768)) {
20893 UHI opval = -32768;
20894 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20895 written |= (1 << 12);
20896 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20898 frvbf_media_overflow (current_cpu, 4);
20902 UHI opval = tmp_tmp;
20903 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20904 written |= (1 << 12);
20905 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20913 abuf->written = written;
20918 /* cmaddhus: cmaddhus$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
20921 SEM_FN_NAME (frvbf,cmaddhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20923 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20924 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20925 int UNUSED written = 0;
20926 IADDR UNUSED pc = abuf->addr;
20927 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20929 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
20936 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20937 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20938 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20939 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20943 tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
20944 if (GTDI (tmp_tmp, 65535)) {
20948 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20949 written |= (1 << 11);
20950 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20952 frvbf_media_overflow (current_cpu, 8);
20955 if (LTDI (tmp_tmp, 0)) {
20959 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20960 written |= (1 << 11);
20961 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20963 frvbf_media_overflow (current_cpu, 8);
20967 UHI opval = tmp_tmp;
20968 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20969 written |= (1 << 11);
20970 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20977 tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
20978 if (GTDI (tmp_tmp, 65535)) {
20982 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20983 written |= (1 << 12);
20984 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20986 frvbf_media_overflow (current_cpu, 4);
20989 if (LTDI (tmp_tmp, 0)) {
20993 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20994 written |= (1 << 12);
20995 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20997 frvbf_media_overflow (current_cpu, 4);
21001 UHI opval = tmp_tmp;
21002 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21003 written |= (1 << 12);
21004 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21012 abuf->written = written;
21017 /* cmsubhss: cmsubhss$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
21020 SEM_FN_NAME (frvbf,cmsubhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
21022 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
21023 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
21024 int UNUSED written = 0;
21025 IADDR UNUSED pc = abuf->addr;
21026 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
21028 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
21035 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21036 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21037 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21038 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21042 tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
21043 if (GTDI (tmp_tmp, 32767)) {
21047 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21048 written |= (1 << 11);
21049 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21051 frvbf_media_overflow (current_cpu, 8);
21054 if (LTDI (tmp_tmp, -32768)) {
21057 UHI opval = -32768;
21058 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21059 written |= (1 << 11);
21060 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21062 frvbf_media_overflow (current_cpu, 8);
21066 UHI opval = tmp_tmp;
21067 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21068 written |= (1 << 11);
21069 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21076 tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
21077 if (GTDI (tmp_tmp, 32767)) {
21081 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21082 written |= (1 << 12);
21083 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21085 frvbf_media_overflow (current_cpu, 4);
21088 if (LTDI (tmp_tmp, -32768)) {
21091 UHI opval = -32768;
21092 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21093 written |= (1 << 12);
21094 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21096 frvbf_media_overflow (current_cpu, 4);
21100 UHI opval = tmp_tmp;
21101 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21102 written |= (1 << 12);
21103 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21111 abuf->written = written;
21116 /* cmsubhus: cmsubhus$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
21119 SEM_FN_NAME (frvbf,cmsubhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
21121 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
21122 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
21123 int UNUSED written = 0;
21124 IADDR UNUSED pc = abuf->addr;
21125 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
21127 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
21134 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21135 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21136 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21137 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21141 tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
21142 if (GTDI (tmp_tmp, 65535)) {
21146 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21147 written |= (1 << 11);
21148 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21150 frvbf_media_overflow (current_cpu, 8);
21153 if (LTDI (tmp_tmp, 0)) {
21157 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21158 written |= (1 << 11);
21159 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21161 frvbf_media_overflow (current_cpu, 8);
21165 UHI opval = tmp_tmp;
21166 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21167 written |= (1 << 11);
21168 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21175 tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
21176 if (GTDI (tmp_tmp, 65535)) {
21180 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21181 written |= (1 << 12);
21182 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21184 frvbf_media_overflow (current_cpu, 4);
21187 if (LTDI (tmp_tmp, 0)) {
21191 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21192 written |= (1 << 12);
21193 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21195 frvbf_media_overflow (current_cpu, 4);
21199 UHI opval = tmp_tmp;
21200 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21201 written |= (1 << 12);
21202 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21210 abuf->written = written;
21215 /* mqaddhss: mqaddhss$pack $FRintieven,$FRintjeven,$FRintkeven */
21218 SEM_FN_NAME (frvbf,mqaddhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
21220 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
21221 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
21222 int UNUSED written = 0;
21223 IADDR UNUSED pc = abuf->addr;
21224 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
21226 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
21227 frvbf_media_register_not_aligned (current_cpu);
21235 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
21236 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
21237 written |= (1 << 14);
21238 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
21241 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21242 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21243 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21244 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21248 tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
21249 if (GTDI (tmp_tmp, 32767)) {
21253 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21254 written |= (1 << 15);
21255 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21257 frvbf_media_overflow (current_cpu, 8);
21260 if (LTDI (tmp_tmp, -32768)) {
21263 UHI opval = -32768;
21264 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21265 written |= (1 << 15);
21266 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21268 frvbf_media_overflow (current_cpu, 8);
21272 UHI opval = tmp_tmp;
21273 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21274 written |= (1 << 15);
21275 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21282 tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
21283 if (GTDI (tmp_tmp, 32767)) {
21287 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21288 written |= (1 << 17);
21289 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21291 frvbf_media_overflow (current_cpu, 4);
21294 if (LTDI (tmp_tmp, -32768)) {
21297 UHI opval = -32768;
21298 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21299 written |= (1 << 17);
21300 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21302 frvbf_media_overflow (current_cpu, 4);
21306 UHI opval = tmp_tmp;
21307 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21308 written |= (1 << 17);
21309 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21315 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21316 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21317 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21318 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21322 tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
21323 if (GTDI (tmp_tmp, 32767)) {
21327 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21328 written |= (1 << 16);
21329 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21331 frvbf_media_overflow (current_cpu, 2);
21334 if (LTDI (tmp_tmp, -32768)) {
21337 UHI opval = -32768;
21338 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21339 written |= (1 << 16);
21340 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21342 frvbf_media_overflow (current_cpu, 2);
21346 UHI opval = tmp_tmp;
21347 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21348 written |= (1 << 16);
21349 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21356 tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
21357 if (GTDI (tmp_tmp, 32767)) {
21361 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21362 written |= (1 << 18);
21363 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21365 frvbf_media_overflow (current_cpu, 1);
21368 if (LTDI (tmp_tmp, -32768)) {
21371 UHI opval = -32768;
21372 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21373 written |= (1 << 18);
21374 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21376 frvbf_media_overflow (current_cpu, 1);
21380 UHI opval = tmp_tmp;
21381 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21382 written |= (1 << 18);
21383 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21391 abuf->written = written;
21396 /* mqaddhus: mqaddhus$pack $FRintieven,$FRintjeven,$FRintkeven */
21399 SEM_FN_NAME (frvbf,mqaddhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
21401 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
21402 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
21403 int UNUSED written = 0;
21404 IADDR UNUSED pc = abuf->addr;
21405 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
21407 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
21408 frvbf_media_register_not_aligned (current_cpu);
21416 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
21417 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
21418 written |= (1 << 14);
21419 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
21422 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21423 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21424 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21425 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21429 tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
21430 if (GTDI (tmp_tmp, 65535)) {
21434 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21435 written |= (1 << 15);
21436 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21438 frvbf_media_overflow (current_cpu, 8);
21441 if (LTDI (tmp_tmp, 0)) {
21445 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21446 written |= (1 << 15);
21447 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21449 frvbf_media_overflow (current_cpu, 8);
21453 UHI opval = tmp_tmp;
21454 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21455 written |= (1 << 15);
21456 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21463 tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
21464 if (GTDI (tmp_tmp, 65535)) {
21468 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21469 written |= (1 << 17);
21470 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21472 frvbf_media_overflow (current_cpu, 4);
21475 if (LTDI (tmp_tmp, 0)) {
21479 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21480 written |= (1 << 17);
21481 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21483 frvbf_media_overflow (current_cpu, 4);
21487 UHI opval = tmp_tmp;
21488 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21489 written |= (1 << 17);
21490 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21496 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21497 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21498 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21499 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21503 tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
21504 if (GTDI (tmp_tmp, 65535)) {
21508 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21509 written |= (1 << 16);
21510 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21512 frvbf_media_overflow (current_cpu, 2);
21515 if (LTDI (tmp_tmp, 0)) {
21519 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21520 written |= (1 << 16);
21521 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21523 frvbf_media_overflow (current_cpu, 2);
21527 UHI opval = tmp_tmp;
21528 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21529 written |= (1 << 16);
21530 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21537 tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
21538 if (GTDI (tmp_tmp, 65535)) {
21542 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21543 written |= (1 << 18);
21544 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21546 frvbf_media_overflow (current_cpu, 1);
21549 if (LTDI (tmp_tmp, 0)) {
21553 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21554 written |= (1 << 18);
21555 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21557 frvbf_media_overflow (current_cpu, 1);
21561 UHI opval = tmp_tmp;
21562 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21563 written |= (1 << 18);
21564 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21572 abuf->written = written;
21577 /* mqsubhss: mqsubhss$pack $FRintieven,$FRintjeven,$FRintkeven */
21580 SEM_FN_NAME (frvbf,mqsubhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
21582 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
21583 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
21584 int UNUSED written = 0;
21585 IADDR UNUSED pc = abuf->addr;
21586 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
21588 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
21589 frvbf_media_register_not_aligned (current_cpu);
21597 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
21598 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
21599 written |= (1 << 14);
21600 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
21603 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21604 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21605 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21606 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21610 tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
21611 if (GTDI (tmp_tmp, 32767)) {
21615 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21616 written |= (1 << 15);
21617 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21619 frvbf_media_overflow (current_cpu, 8);
21622 if (LTDI (tmp_tmp, -32768)) {
21625 UHI opval = -32768;
21626 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21627 written |= (1 << 15);
21628 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21630 frvbf_media_overflow (current_cpu, 8);
21634 UHI opval = tmp_tmp;
21635 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21636 written |= (1 << 15);
21637 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21644 tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
21645 if (GTDI (tmp_tmp, 32767)) {
21649 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21650 written |= (1 << 17);
21651 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21653 frvbf_media_overflow (current_cpu, 4);
21656 if (LTDI (tmp_tmp, -32768)) {
21659 UHI opval = -32768;
21660 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21661 written |= (1 << 17);
21662 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21664 frvbf_media_overflow (current_cpu, 4);
21668 UHI opval = tmp_tmp;
21669 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21670 written |= (1 << 17);
21671 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21677 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21678 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21679 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21680 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21684 tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
21685 if (GTDI (tmp_tmp, 32767)) {
21689 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21690 written |= (1 << 16);
21691 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21693 frvbf_media_overflow (current_cpu, 2);
21696 if (LTDI (tmp_tmp, -32768)) {
21699 UHI opval = -32768;
21700 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21701 written |= (1 << 16);
21702 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21704 frvbf_media_overflow (current_cpu, 2);
21708 UHI opval = tmp_tmp;
21709 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21710 written |= (1 << 16);
21711 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21718 tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
21719 if (GTDI (tmp_tmp, 32767)) {
21723 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21724 written |= (1 << 18);
21725 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21727 frvbf_media_overflow (current_cpu, 1);
21730 if (LTDI (tmp_tmp, -32768)) {
21733 UHI opval = -32768;
21734 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21735 written |= (1 << 18);
21736 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21738 frvbf_media_overflow (current_cpu, 1);
21742 UHI opval = tmp_tmp;
21743 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21744 written |= (1 << 18);
21745 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21753 abuf->written = written;
21758 /* mqsubhus: mqsubhus$pack $FRintieven,$FRintjeven,$FRintkeven */
21761 SEM_FN_NAME (frvbf,mqsubhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
21763 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
21764 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
21765 int UNUSED written = 0;
21766 IADDR UNUSED pc = abuf->addr;
21767 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
21769 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
21770 frvbf_media_register_not_aligned (current_cpu);
21778 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
21779 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
21780 written |= (1 << 14);
21781 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
21784 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21785 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21786 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21787 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21791 tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
21792 if (GTDI (tmp_tmp, 65535)) {
21796 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21797 written |= (1 << 15);
21798 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21800 frvbf_media_overflow (current_cpu, 8);
21803 if (LTDI (tmp_tmp, 0)) {
21807 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21808 written |= (1 << 15);
21809 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21811 frvbf_media_overflow (current_cpu, 8);
21815 UHI opval = tmp_tmp;
21816 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21817 written |= (1 << 15);
21818 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21825 tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
21826 if (GTDI (tmp_tmp, 65535)) {
21830 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21831 written |= (1 << 17);
21832 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21834 frvbf_media_overflow (current_cpu, 4);
21837 if (LTDI (tmp_tmp, 0)) {
21841 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21842 written |= (1 << 17);
21843 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21845 frvbf_media_overflow (current_cpu, 4);
21849 UHI opval = tmp_tmp;
21850 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21851 written |= (1 << 17);
21852 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21858 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21859 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21860 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21861 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21865 tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
21866 if (GTDI (tmp_tmp, 65535)) {
21870 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21871 written |= (1 << 16);
21872 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21874 frvbf_media_overflow (current_cpu, 2);
21877 if (LTDI (tmp_tmp, 0)) {
21881 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21882 written |= (1 << 16);
21883 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21885 frvbf_media_overflow (current_cpu, 2);
21889 UHI opval = tmp_tmp;
21890 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21891 written |= (1 << 16);
21892 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21899 tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
21900 if (GTDI (tmp_tmp, 65535)) {
21904 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21905 written |= (1 << 18);
21906 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21908 frvbf_media_overflow (current_cpu, 1);
21911 if (LTDI (tmp_tmp, 0)) {
21915 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21916 written |= (1 << 18);
21917 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21919 frvbf_media_overflow (current_cpu, 1);
21923 UHI opval = tmp_tmp;
21924 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21925 written |= (1 << 18);
21926 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21934 abuf->written = written;
21939 /* cmqaddhss: cmqaddhss$pack $FRintieven,$FRintjeven,$FRintkeven,$CCi,$cond */
21942 SEM_FN_NAME (frvbf,cmqaddhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
21944 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
21945 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
21946 int UNUSED written = 0;
21947 IADDR UNUSED pc = abuf->addr;
21948 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
21950 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
21951 frvbf_media_register_not_aligned (current_cpu);
21953 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
21960 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
21961 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
21962 written |= (1 << 16);
21963 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
21966 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21967 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21968 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21969 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21973 tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
21974 if (GTDI (tmp_tmp, 32767)) {
21978 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21979 written |= (1 << 17);
21980 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21982 frvbf_media_overflow (current_cpu, 8);
21985 if (LTDI (tmp_tmp, -32768)) {
21988 UHI opval = -32768;
21989 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21990 written |= (1 << 17);
21991 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21993 frvbf_media_overflow (current_cpu, 8);
21997 UHI opval = tmp_tmp;
21998 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21999 written |= (1 << 17);
22000 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22007 tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
22008 if (GTDI (tmp_tmp, 32767)) {
22012 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22013 written |= (1 << 19);
22014 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22016 frvbf_media_overflow (current_cpu, 4);
22019 if (LTDI (tmp_tmp, -32768)) {
22022 UHI opval = -32768;
22023 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22024 written |= (1 << 19);
22025 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22027 frvbf_media_overflow (current_cpu, 4);
22031 UHI opval = tmp_tmp;
22032 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22033 written |= (1 << 19);
22034 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22040 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22041 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22042 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22043 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22047 tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
22048 if (GTDI (tmp_tmp, 32767)) {
22052 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22053 written |= (1 << 18);
22054 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22056 frvbf_media_overflow (current_cpu, 2);
22059 if (LTDI (tmp_tmp, -32768)) {
22062 UHI opval = -32768;
22063 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22064 written |= (1 << 18);
22065 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22067 frvbf_media_overflow (current_cpu, 2);
22071 UHI opval = tmp_tmp;
22072 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22073 written |= (1 << 18);
22074 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22081 tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
22082 if (GTDI (tmp_tmp, 32767)) {
22086 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22087 written |= (1 << 20);
22088 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22090 frvbf_media_overflow (current_cpu, 1);
22093 if (LTDI (tmp_tmp, -32768)) {
22096 UHI opval = -32768;
22097 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22098 written |= (1 << 20);
22099 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22101 frvbf_media_overflow (current_cpu, 1);
22105 UHI opval = tmp_tmp;
22106 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22107 written |= (1 << 20);
22108 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22117 abuf->written = written;
22122 /* cmqaddhus: cmqaddhus$pack $FRintieven,$FRintjeven,$FRintkeven,$CCi,$cond */
22125 SEM_FN_NAME (frvbf,cmqaddhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22127 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
22128 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22129 int UNUSED written = 0;
22130 IADDR UNUSED pc = abuf->addr;
22131 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22133 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
22134 frvbf_media_register_not_aligned (current_cpu);
22136 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
22143 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
22144 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
22145 written |= (1 << 16);
22146 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
22149 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22150 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22151 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22152 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22156 tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
22157 if (GTDI (tmp_tmp, 65535)) {
22161 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22162 written |= (1 << 17);
22163 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22165 frvbf_media_overflow (current_cpu, 8);
22168 if (LTDI (tmp_tmp, 0)) {
22172 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22173 written |= (1 << 17);
22174 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22176 frvbf_media_overflow (current_cpu, 8);
22180 UHI opval = tmp_tmp;
22181 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22182 written |= (1 << 17);
22183 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22190 tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
22191 if (GTDI (tmp_tmp, 65535)) {
22195 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22196 written |= (1 << 19);
22197 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22199 frvbf_media_overflow (current_cpu, 4);
22202 if (LTDI (tmp_tmp, 0)) {
22206 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22207 written |= (1 << 19);
22208 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22210 frvbf_media_overflow (current_cpu, 4);
22214 UHI opval = tmp_tmp;
22215 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22216 written |= (1 << 19);
22217 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22223 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22224 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22225 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22226 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22230 tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
22231 if (GTDI (tmp_tmp, 65535)) {
22235 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22236 written |= (1 << 18);
22237 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22239 frvbf_media_overflow (current_cpu, 2);
22242 if (LTDI (tmp_tmp, 0)) {
22246 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22247 written |= (1 << 18);
22248 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22250 frvbf_media_overflow (current_cpu, 2);
22254 UHI opval = tmp_tmp;
22255 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22256 written |= (1 << 18);
22257 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22264 tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
22265 if (GTDI (tmp_tmp, 65535)) {
22269 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22270 written |= (1 << 20);
22271 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22273 frvbf_media_overflow (current_cpu, 1);
22276 if (LTDI (tmp_tmp, 0)) {
22280 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22281 written |= (1 << 20);
22282 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22284 frvbf_media_overflow (current_cpu, 1);
22288 UHI opval = tmp_tmp;
22289 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22290 written |= (1 << 20);
22291 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22300 abuf->written = written;
22305 /* cmqsubhss: cmqsubhss$pack $FRintieven,$FRintjeven,$FRintkeven,$CCi,$cond */
22308 SEM_FN_NAME (frvbf,cmqsubhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22310 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
22311 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22312 int UNUSED written = 0;
22313 IADDR UNUSED pc = abuf->addr;
22314 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22316 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
22317 frvbf_media_register_not_aligned (current_cpu);
22319 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
22326 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
22327 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
22328 written |= (1 << 16);
22329 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
22332 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22333 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22334 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22335 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22339 tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
22340 if (GTDI (tmp_tmp, 32767)) {
22344 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22345 written |= (1 << 17);
22346 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22348 frvbf_media_overflow (current_cpu, 8);
22351 if (LTDI (tmp_tmp, -32768)) {
22354 UHI opval = -32768;
22355 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22356 written |= (1 << 17);
22357 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22359 frvbf_media_overflow (current_cpu, 8);
22363 UHI opval = tmp_tmp;
22364 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22365 written |= (1 << 17);
22366 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22373 tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
22374 if (GTDI (tmp_tmp, 32767)) {
22378 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22379 written |= (1 << 19);
22380 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22382 frvbf_media_overflow (current_cpu, 4);
22385 if (LTDI (tmp_tmp, -32768)) {
22388 UHI opval = -32768;
22389 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22390 written |= (1 << 19);
22391 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22393 frvbf_media_overflow (current_cpu, 4);
22397 UHI opval = tmp_tmp;
22398 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22399 written |= (1 << 19);
22400 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22406 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22407 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22408 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22409 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22413 tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
22414 if (GTDI (tmp_tmp, 32767)) {
22418 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22419 written |= (1 << 18);
22420 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22422 frvbf_media_overflow (current_cpu, 2);
22425 if (LTDI (tmp_tmp, -32768)) {
22428 UHI opval = -32768;
22429 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22430 written |= (1 << 18);
22431 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22433 frvbf_media_overflow (current_cpu, 2);
22437 UHI opval = tmp_tmp;
22438 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22439 written |= (1 << 18);
22440 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22447 tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
22448 if (GTDI (tmp_tmp, 32767)) {
22452 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22453 written |= (1 << 20);
22454 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22456 frvbf_media_overflow (current_cpu, 1);
22459 if (LTDI (tmp_tmp, -32768)) {
22462 UHI opval = -32768;
22463 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22464 written |= (1 << 20);
22465 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22467 frvbf_media_overflow (current_cpu, 1);
22471 UHI opval = tmp_tmp;
22472 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22473 written |= (1 << 20);
22474 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22483 abuf->written = written;
22488 /* cmqsubhus: cmqsubhus$pack $FRintieven,$FRintjeven,$FRintkeven,$CCi,$cond */
22491 SEM_FN_NAME (frvbf,cmqsubhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22493 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
22494 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22495 int UNUSED written = 0;
22496 IADDR UNUSED pc = abuf->addr;
22497 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22499 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
22500 frvbf_media_register_not_aligned (current_cpu);
22502 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
22509 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
22510 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
22511 written |= (1 << 16);
22512 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
22515 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22516 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22517 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22518 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22522 tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
22523 if (GTDI (tmp_tmp, 65535)) {
22527 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22528 written |= (1 << 17);
22529 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22531 frvbf_media_overflow (current_cpu, 8);
22534 if (LTDI (tmp_tmp, 0)) {
22538 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22539 written |= (1 << 17);
22540 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22542 frvbf_media_overflow (current_cpu, 8);
22546 UHI opval = tmp_tmp;
22547 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22548 written |= (1 << 17);
22549 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22556 tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
22557 if (GTDI (tmp_tmp, 65535)) {
22561 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22562 written |= (1 << 19);
22563 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22565 frvbf_media_overflow (current_cpu, 4);
22568 if (LTDI (tmp_tmp, 0)) {
22572 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22573 written |= (1 << 19);
22574 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22576 frvbf_media_overflow (current_cpu, 4);
22580 UHI opval = tmp_tmp;
22581 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22582 written |= (1 << 19);
22583 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22589 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22590 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22591 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22592 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22596 tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
22597 if (GTDI (tmp_tmp, 65535)) {
22601 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22602 written |= (1 << 18);
22603 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22605 frvbf_media_overflow (current_cpu, 2);
22608 if (LTDI (tmp_tmp, 0)) {
22612 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22613 written |= (1 << 18);
22614 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22616 frvbf_media_overflow (current_cpu, 2);
22620 UHI opval = tmp_tmp;
22621 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22622 written |= (1 << 18);
22623 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22630 tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
22631 if (GTDI (tmp_tmp, 65535)) {
22635 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22636 written |= (1 << 20);
22637 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22639 frvbf_media_overflow (current_cpu, 1);
22642 if (LTDI (tmp_tmp, 0)) {
22646 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22647 written |= (1 << 20);
22648 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22650 frvbf_media_overflow (current_cpu, 1);
22654 UHI opval = tmp_tmp;
22655 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22656 written |= (1 << 20);
22657 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22666 abuf->written = written;
22671 /* maddaccs: maddaccs$pack $ACC40Si,$ACC40Sk */
22674 SEM_FN_NAME (frvbf,maddaccs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22676 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
22677 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22678 int UNUSED written = 0;
22679 IADDR UNUSED pc = abuf->addr;
22680 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22682 if (ANDSI (FLD (f_ACC40Si), SUBSI (2, 1))) {
22683 frvbf_media_acc_not_aligned (current_cpu);
22687 tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))));
22688 if (GTDI (tmp_tmp, 549755813887)) {
22691 DI opval = 549755813887;
22692 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22693 written |= (1 << 3);
22694 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22696 frvbf_media_overflow (current_cpu, 8);
22699 if (LTDI (tmp_tmp, INVDI (549755813887))) {
22702 DI opval = INVDI (549755813887);
22703 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22704 written |= (1 << 3);
22705 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22707 frvbf_media_overflow (current_cpu, 8);
22711 DI opval = tmp_tmp;
22712 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22713 written |= (1 << 3);
22714 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22721 abuf->written = written;
22726 /* msubaccs: msubaccs$pack $ACC40Si,$ACC40Sk */
22729 SEM_FN_NAME (frvbf,msubaccs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22731 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
22732 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22733 int UNUSED written = 0;
22734 IADDR UNUSED pc = abuf->addr;
22735 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22737 if (ANDSI (FLD (f_ACC40Si), SUBSI (2, 1))) {
22738 frvbf_media_acc_not_aligned (current_cpu);
22742 tmp_tmp = SUBDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))));
22743 if (GTDI (tmp_tmp, 549755813887)) {
22746 DI opval = 549755813887;
22747 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22748 written |= (1 << 3);
22749 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22751 frvbf_media_overflow (current_cpu, 8);
22754 if (LTDI (tmp_tmp, INVDI (549755813887))) {
22757 DI opval = INVDI (549755813887);
22758 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22759 written |= (1 << 3);
22760 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22762 frvbf_media_overflow (current_cpu, 8);
22766 DI opval = tmp_tmp;
22767 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22768 written |= (1 << 3);
22769 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22776 abuf->written = written;
22781 /* mdaddaccs: mdaddaccs$pack $ACC40Si,$ACC40Sk */
22784 SEM_FN_NAME (frvbf,mdaddaccs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22786 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
22787 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22788 int UNUSED written = 0;
22789 IADDR UNUSED pc = abuf->addr;
22790 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22792 if (ANDSI (FLD (f_ACC40Si), SUBSI (4, 1))) {
22793 frvbf_media_acc_not_aligned (current_cpu);
22795 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
22796 frvbf_media_acc_not_aligned (current_cpu);
22801 tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))));
22802 if (GTDI (tmp_tmp, 549755813887)) {
22805 DI opval = 549755813887;
22806 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22807 written |= (1 << 6);
22808 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22810 frvbf_media_overflow (current_cpu, 8);
22813 if (LTDI (tmp_tmp, INVDI (549755813887))) {
22816 DI opval = INVDI (549755813887);
22817 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22818 written |= (1 << 6);
22819 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22821 frvbf_media_overflow (current_cpu, 8);
22825 DI opval = tmp_tmp;
22826 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22827 written |= (1 << 6);
22828 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22835 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Si)) + (2))), GET_H_ACC40S (((FLD (f_ACC40Si)) + (3))));
22836 if (GTDI (tmp_tmp, 549755813887)) {
22839 DI opval = 549755813887;
22840 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
22841 written |= (1 << 7);
22842 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22844 frvbf_media_overflow (current_cpu, 4);
22847 if (LTDI (tmp_tmp, INVDI (549755813887))) {
22850 DI opval = INVDI (549755813887);
22851 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
22852 written |= (1 << 7);
22853 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22855 frvbf_media_overflow (current_cpu, 4);
22859 DI opval = tmp_tmp;
22860 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
22861 written |= (1 << 7);
22862 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22871 abuf->written = written;
22876 /* mdsubaccs: mdsubaccs$pack $ACC40Si,$ACC40Sk */
22879 SEM_FN_NAME (frvbf,mdsubaccs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22881 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
22882 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22883 int UNUSED written = 0;
22884 IADDR UNUSED pc = abuf->addr;
22885 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22887 if (ANDSI (FLD (f_ACC40Si), SUBSI (4, 1))) {
22888 frvbf_media_acc_not_aligned (current_cpu);
22890 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
22891 frvbf_media_acc_not_aligned (current_cpu);
22896 tmp_tmp = SUBDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))));
22897 if (GTDI (tmp_tmp, 549755813887)) {
22900 DI opval = 549755813887;
22901 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22902 written |= (1 << 6);
22903 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22905 frvbf_media_overflow (current_cpu, 8);
22908 if (LTDI (tmp_tmp, INVDI (549755813887))) {
22911 DI opval = INVDI (549755813887);
22912 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22913 written |= (1 << 6);
22914 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22916 frvbf_media_overflow (current_cpu, 8);
22920 DI opval = tmp_tmp;
22921 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22922 written |= (1 << 6);
22923 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22930 tmp_tmp = SUBDI (GET_H_ACC40S (((FLD (f_ACC40Si)) + (2))), GET_H_ACC40S (((FLD (f_ACC40Si)) + (3))));
22931 if (GTDI (tmp_tmp, 549755813887)) {
22934 DI opval = 549755813887;
22935 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
22936 written |= (1 << 7);
22937 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22939 frvbf_media_overflow (current_cpu, 4);
22942 if (LTDI (tmp_tmp, INVDI (549755813887))) {
22945 DI opval = INVDI (549755813887);
22946 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
22947 written |= (1 << 7);
22948 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22950 frvbf_media_overflow (current_cpu, 4);
22954 DI opval = tmp_tmp;
22955 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
22956 written |= (1 << 7);
22957 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22966 abuf->written = written;
22971 /* masaccs: masaccs$pack $ACC40Si,$ACC40Sk */
22974 SEM_FN_NAME (frvbf,masaccs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22976 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
22977 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22978 int UNUSED written = 0;
22979 IADDR UNUSED pc = abuf->addr;
22980 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22982 if (ANDSI (FLD (f_ACC40Si), SUBSI (2, 1))) {
22983 frvbf_media_acc_not_aligned (current_cpu);
22985 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
22986 frvbf_media_acc_not_aligned (current_cpu);
22991 tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))));
22992 if (GTDI (tmp_tmp, 549755813887)) {
22995 DI opval = 549755813887;
22996 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22997 written |= (1 << 4);
22998 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23000 frvbf_media_overflow (current_cpu, 8);
23003 if (LTDI (tmp_tmp, INVDI (549755813887))) {
23006 DI opval = INVDI (549755813887);
23007 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23008 written |= (1 << 4);
23009 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23011 frvbf_media_overflow (current_cpu, 8);
23015 DI opval = tmp_tmp;
23016 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23017 written |= (1 << 4);
23018 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23025 tmp_tmp = SUBDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))));
23026 if (GTDI (tmp_tmp, 549755813887)) {
23029 DI opval = 549755813887;
23030 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23031 written |= (1 << 5);
23032 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23034 frvbf_media_overflow (current_cpu, 4);
23037 if (LTDI (tmp_tmp, INVDI (549755813887))) {
23040 DI opval = INVDI (549755813887);
23041 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23042 written |= (1 << 5);
23043 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23045 frvbf_media_overflow (current_cpu, 4);
23049 DI opval = tmp_tmp;
23050 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23051 written |= (1 << 5);
23052 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23061 abuf->written = written;
23066 /* mdasaccs: mdasaccs$pack $ACC40Si,$ACC40Sk */
23069 SEM_FN_NAME (frvbf,mdasaccs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23071 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
23072 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23073 int UNUSED written = 0;
23074 IADDR UNUSED pc = abuf->addr;
23075 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23077 if (ANDSI (FLD (f_ACC40Si), SUBSI (4, 1))) {
23078 frvbf_media_acc_not_aligned (current_cpu);
23080 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
23081 frvbf_media_acc_not_aligned (current_cpu);
23086 tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))));
23087 if (GTDI (tmp_tmp, 549755813887)) {
23090 DI opval = 549755813887;
23091 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23092 written |= (1 << 6);
23093 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23095 frvbf_media_overflow (current_cpu, 8);
23098 if (LTDI (tmp_tmp, INVDI (549755813887))) {
23101 DI opval = INVDI (549755813887);
23102 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23103 written |= (1 << 6);
23104 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23106 frvbf_media_overflow (current_cpu, 8);
23110 DI opval = tmp_tmp;
23111 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23112 written |= (1 << 6);
23113 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23120 tmp_tmp = SUBDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))));
23121 if (GTDI (tmp_tmp, 549755813887)) {
23124 DI opval = 549755813887;
23125 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23126 written |= (1 << 7);
23127 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23129 frvbf_media_overflow (current_cpu, 4);
23132 if (LTDI (tmp_tmp, INVDI (549755813887))) {
23135 DI opval = INVDI (549755813887);
23136 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23137 written |= (1 << 7);
23138 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23140 frvbf_media_overflow (current_cpu, 4);
23144 DI opval = tmp_tmp;
23145 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23146 written |= (1 << 7);
23147 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23154 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Si)) + (2))), GET_H_ACC40S (((FLD (f_ACC40Si)) + (3))));
23155 if (GTDI (tmp_tmp, 549755813887)) {
23158 DI opval = 549755813887;
23159 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
23160 written |= (1 << 8);
23161 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23163 frvbf_media_overflow (current_cpu, 2);
23166 if (LTDI (tmp_tmp, INVDI (549755813887))) {
23169 DI opval = INVDI (549755813887);
23170 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
23171 written |= (1 << 8);
23172 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23174 frvbf_media_overflow (current_cpu, 2);
23178 DI opval = tmp_tmp;
23179 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
23180 written |= (1 << 8);
23181 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23188 tmp_tmp = SUBDI (GET_H_ACC40S (((FLD (f_ACC40Si)) + (2))), GET_H_ACC40S (((FLD (f_ACC40Si)) + (3))));
23189 if (GTDI (tmp_tmp, 549755813887)) {
23192 DI opval = 549755813887;
23193 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
23194 written |= (1 << 9);
23195 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23197 frvbf_media_overflow (current_cpu, 1);
23200 if (LTDI (tmp_tmp, INVDI (549755813887))) {
23203 DI opval = INVDI (549755813887);
23204 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
23205 written |= (1 << 9);
23206 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23208 frvbf_media_overflow (current_cpu, 1);
23212 DI opval = tmp_tmp;
23213 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
23214 written |= (1 << 9);
23215 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23224 abuf->written = written;
23229 /* mmulhs: mmulhs$pack $FRinti,$FRintj,$ACC40Sk */
23232 SEM_FN_NAME (frvbf,mmulhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23234 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23235 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23236 int UNUSED written = 0;
23237 IADDR UNUSED pc = abuf->addr;
23238 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23240 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23241 frvbf_media_acc_not_aligned (current_cpu);
23249 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23250 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23251 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23252 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23255 DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
23256 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23257 written |= (1 << 9);
23258 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23261 DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
23262 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23263 written |= (1 << 10);
23264 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23269 abuf->written = written;
23274 /* mmulhu: mmulhu$pack $FRinti,$FRintj,$ACC40Sk */
23277 SEM_FN_NAME (frvbf,mmulhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23279 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23280 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23281 int UNUSED written = 0;
23282 IADDR UNUSED pc = abuf->addr;
23283 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23285 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23286 frvbf_media_acc_not_aligned (current_cpu);
23294 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23295 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23296 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23297 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23300 DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
23301 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23302 written |= (1 << 9);
23303 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23306 DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
23307 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23308 written |= (1 << 10);
23309 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23314 abuf->written = written;
23319 /* mmulxhs: mmulxhs$pack $FRinti,$FRintj,$ACC40Sk */
23322 SEM_FN_NAME (frvbf,mmulxhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23324 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23325 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23326 int UNUSED written = 0;
23327 IADDR UNUSED pc = abuf->addr;
23328 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23330 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23331 frvbf_media_acc_not_aligned (current_cpu);
23339 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23340 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23341 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23342 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23345 DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
23346 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23347 written |= (1 << 9);
23348 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23351 DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
23352 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23353 written |= (1 << 10);
23354 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23359 abuf->written = written;
23364 /* mmulxhu: mmulxhu$pack $FRinti,$FRintj,$ACC40Sk */
23367 SEM_FN_NAME (frvbf,mmulxhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23369 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23370 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23371 int UNUSED written = 0;
23372 IADDR UNUSED pc = abuf->addr;
23373 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23375 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23376 frvbf_media_acc_not_aligned (current_cpu);
23384 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23385 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23386 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23387 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23390 DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
23391 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23392 written |= (1 << 9);
23393 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23396 DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
23397 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23398 written |= (1 << 10);
23399 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23404 abuf->written = written;
23409 /* cmmulhs: cmmulhs$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
23412 SEM_FN_NAME (frvbf,cmmulhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23414 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23415 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23416 int UNUSED written = 0;
23417 IADDR UNUSED pc = abuf->addr;
23418 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23420 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23421 frvbf_media_acc_not_aligned (current_cpu);
23423 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
23430 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23431 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23432 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23433 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23436 DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
23437 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23438 written |= (1 << 11);
23439 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23442 DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
23443 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23444 written |= (1 << 12);
23445 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23451 abuf->written = written;
23456 /* cmmulhu: cmmulhu$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
23459 SEM_FN_NAME (frvbf,cmmulhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23461 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23462 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23463 int UNUSED written = 0;
23464 IADDR UNUSED pc = abuf->addr;
23465 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23467 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23468 frvbf_media_acc_not_aligned (current_cpu);
23470 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
23477 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23478 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23479 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23480 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23483 DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
23484 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23485 written |= (1 << 11);
23486 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23489 DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
23490 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23491 written |= (1 << 12);
23492 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23498 abuf->written = written;
23503 /* mqmulhs: mqmulhs$pack $FRintieven,$FRintjeven,$ACC40Sk */
23506 SEM_FN_NAME (frvbf,mqmulhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23508 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
23509 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23510 int UNUSED written = 0;
23511 IADDR UNUSED pc = abuf->addr;
23512 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23514 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
23515 frvbf_media_acc_not_aligned (current_cpu);
23517 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
23518 frvbf_media_register_not_aligned (current_cpu);
23526 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23527 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23528 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23529 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23532 DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
23533 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23534 written |= (1 << 13);
23535 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23538 DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
23539 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23540 written |= (1 << 14);
23541 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23544 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23545 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23546 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23547 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23550 DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
23551 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
23552 written |= (1 << 15);
23553 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23556 DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
23557 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
23558 written |= (1 << 16);
23559 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23565 abuf->written = written;
23570 /* mqmulhu: mqmulhu$pack $FRintieven,$FRintjeven,$ACC40Sk */
23573 SEM_FN_NAME (frvbf,mqmulhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23575 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
23576 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23577 int UNUSED written = 0;
23578 IADDR UNUSED pc = abuf->addr;
23579 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23581 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
23582 frvbf_media_acc_not_aligned (current_cpu);
23584 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
23585 frvbf_media_register_not_aligned (current_cpu);
23593 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23594 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23595 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23596 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23599 DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
23600 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23601 written |= (1 << 13);
23602 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23605 DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
23606 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23607 written |= (1 << 14);
23608 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23611 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23612 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23613 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23614 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23617 DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
23618 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
23619 written |= (1 << 15);
23620 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23623 DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
23624 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
23625 written |= (1 << 16);
23626 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23632 abuf->written = written;
23637 /* mqmulxhs: mqmulxhs$pack $FRintieven,$FRintjeven,$ACC40Sk */
23640 SEM_FN_NAME (frvbf,mqmulxhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23642 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
23643 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23644 int UNUSED written = 0;
23645 IADDR UNUSED pc = abuf->addr;
23646 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23648 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
23649 frvbf_media_acc_not_aligned (current_cpu);
23651 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
23652 frvbf_media_register_not_aligned (current_cpu);
23660 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23661 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23662 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23663 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23666 DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
23667 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23668 written |= (1 << 13);
23669 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23672 DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
23673 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23674 written |= (1 << 14);
23675 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23678 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23679 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23680 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23681 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23684 DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
23685 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
23686 written |= (1 << 15);
23687 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23690 DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
23691 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
23692 written |= (1 << 16);
23693 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23699 abuf->written = written;
23704 /* mqmulxhu: mqmulxhu$pack $FRintieven,$FRintjeven,$ACC40Sk */
23707 SEM_FN_NAME (frvbf,mqmulxhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23709 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
23710 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23711 int UNUSED written = 0;
23712 IADDR UNUSED pc = abuf->addr;
23713 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23715 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
23716 frvbf_media_acc_not_aligned (current_cpu);
23718 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
23719 frvbf_media_register_not_aligned (current_cpu);
23727 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23728 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23729 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23730 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23733 DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
23734 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23735 written |= (1 << 13);
23736 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23739 DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
23740 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23741 written |= (1 << 14);
23742 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23745 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23746 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23747 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23748 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23751 DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
23752 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
23753 written |= (1 << 15);
23754 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23757 DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
23758 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
23759 written |= (1 << 16);
23760 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23766 abuf->written = written;
23771 /* cmqmulhs: cmqmulhs$pack $FRintieven,$FRintjeven,$ACC40Sk,$CCi,$cond */
23774 SEM_FN_NAME (frvbf,cmqmulhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23776 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
23777 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23778 int UNUSED written = 0;
23779 IADDR UNUSED pc = abuf->addr;
23780 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23782 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
23783 frvbf_media_acc_not_aligned (current_cpu);
23785 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
23786 frvbf_media_register_not_aligned (current_cpu);
23788 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
23795 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23796 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23797 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23798 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23801 DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
23802 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23803 written |= (1 << 15);
23804 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23807 DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
23808 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23809 written |= (1 << 16);
23810 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23813 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23814 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23815 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23816 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23819 DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
23820 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
23821 written |= (1 << 17);
23822 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23825 DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
23826 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
23827 written |= (1 << 18);
23828 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23835 abuf->written = written;
23840 /* cmqmulhu: cmqmulhu$pack $FRintieven,$FRintjeven,$ACC40Sk,$CCi,$cond */
23843 SEM_FN_NAME (frvbf,cmqmulhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23845 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
23846 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23847 int UNUSED written = 0;
23848 IADDR UNUSED pc = abuf->addr;
23849 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23851 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
23852 frvbf_media_acc_not_aligned (current_cpu);
23854 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
23855 frvbf_media_register_not_aligned (current_cpu);
23857 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
23864 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23865 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23866 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23867 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23870 DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
23871 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23872 written |= (1 << 15);
23873 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23876 DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
23877 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23878 written |= (1 << 16);
23879 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23882 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23883 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23884 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23885 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23888 DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
23889 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
23890 written |= (1 << 17);
23891 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23894 DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
23895 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
23896 written |= (1 << 18);
23897 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23904 abuf->written = written;
23909 /* mmachs: mmachs$pack $FRinti,$FRintj,$ACC40Sk */
23912 SEM_FN_NAME (frvbf,mmachs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23914 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23915 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23916 int UNUSED written = 0;
23917 IADDR UNUSED pc = abuf->addr;
23918 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23920 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23921 frvbf_media_acc_not_aligned (current_cpu);
23929 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23930 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23931 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23932 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23936 tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
23937 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
23940 DI opval = MAKEDI (127, 0xffffffff);
23941 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23942 written |= (1 << 11);
23943 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23945 frvbf_media_overflow (current_cpu, 8);
23948 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
23951 DI opval = MAKEDI (0xffffff80, 0);
23952 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23953 written |= (1 << 11);
23954 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23956 frvbf_media_overflow (current_cpu, 8);
23960 DI opval = tmp_tmp;
23961 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23962 written |= (1 << 11);
23963 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23970 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (1))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
23971 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
23974 DI opval = MAKEDI (127, 0xffffffff);
23975 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23976 written |= (1 << 12);
23977 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23979 frvbf_media_overflow (current_cpu, 4);
23982 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
23985 DI opval = MAKEDI (0xffffff80, 0);
23986 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23987 written |= (1 << 12);
23988 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23990 frvbf_media_overflow (current_cpu, 4);
23994 DI opval = tmp_tmp;
23995 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23996 written |= (1 << 12);
23997 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24005 abuf->written = written;
24010 /* mmachu: mmachu$pack $FRinti,$FRintj,$ACC40Uk */
24013 SEM_FN_NAME (frvbf,mmachu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24015 #define FLD(f) abuf->fields.sfmt_cmmachu.f
24016 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24017 int UNUSED written = 0;
24018 IADDR UNUSED pc = abuf->addr;
24019 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24021 if (ANDSI (FLD (f_ACC40Uk), SUBSI (2, 1))) {
24022 frvbf_media_acc_not_aligned (current_cpu);
24030 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24031 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24032 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24033 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24037 tmp_tmp = ADDDI (GET_H_ACC40U (FLD (f_ACC40Uk)), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
24038 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24041 UDI opval = MAKEDI (255, 0xffffffff);
24042 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24043 written |= (1 << 11);
24044 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24046 frvbf_media_overflow (current_cpu, 8);
24049 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24052 UDI opval = MAKEDI (0, 0);
24053 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24054 written |= (1 << 11);
24055 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24057 frvbf_media_overflow (current_cpu, 8);
24061 UDI opval = tmp_tmp;
24062 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24063 written |= (1 << 11);
24064 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24071 tmp_tmp = ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (1))), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
24072 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24075 UDI opval = MAKEDI (255, 0xffffffff);
24076 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24077 written |= (1 << 12);
24078 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24080 frvbf_media_overflow (current_cpu, 4);
24083 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24086 UDI opval = MAKEDI (0, 0);
24087 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24088 written |= (1 << 12);
24089 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24091 frvbf_media_overflow (current_cpu, 4);
24095 UDI opval = tmp_tmp;
24096 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24097 written |= (1 << 12);
24098 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24106 abuf->written = written;
24111 /* mmrdhs: mmrdhs$pack $FRinti,$FRintj,$ACC40Sk */
24114 SEM_FN_NAME (frvbf,mmrdhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24116 #define FLD(f) abuf->fields.sfmt_cmmachs.f
24117 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24118 int UNUSED written = 0;
24119 IADDR UNUSED pc = abuf->addr;
24120 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24122 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
24123 frvbf_media_acc_not_aligned (current_cpu);
24131 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24132 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24133 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24134 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24138 tmp_tmp = SUBDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
24139 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24142 DI opval = MAKEDI (127, 0xffffffff);
24143 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24144 written |= (1 << 11);
24145 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24147 frvbf_media_overflow (current_cpu, 8);
24150 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24153 DI opval = MAKEDI (0xffffff80, 0);
24154 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24155 written |= (1 << 11);
24156 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24158 frvbf_media_overflow (current_cpu, 8);
24162 DI opval = tmp_tmp;
24163 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24164 written |= (1 << 11);
24165 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24172 tmp_tmp = SUBDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (1))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
24173 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24176 DI opval = MAKEDI (127, 0xffffffff);
24177 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24178 written |= (1 << 12);
24179 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24181 frvbf_media_overflow (current_cpu, 4);
24184 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24187 DI opval = MAKEDI (0xffffff80, 0);
24188 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24189 written |= (1 << 12);
24190 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24192 frvbf_media_overflow (current_cpu, 4);
24196 DI opval = tmp_tmp;
24197 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24198 written |= (1 << 12);
24199 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24207 abuf->written = written;
24212 /* mmrdhu: mmrdhu$pack $FRinti,$FRintj,$ACC40Uk */
24215 SEM_FN_NAME (frvbf,mmrdhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24217 #define FLD(f) abuf->fields.sfmt_cmmachu.f
24218 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24219 int UNUSED written = 0;
24220 IADDR UNUSED pc = abuf->addr;
24221 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24223 if (ANDSI (FLD (f_ACC40Uk), SUBSI (2, 1))) {
24224 frvbf_media_acc_not_aligned (current_cpu);
24232 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24233 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24234 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24235 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24239 tmp_tmp = SUBDI (GET_H_ACC40U (FLD (f_ACC40Uk)), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
24240 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24243 UDI opval = MAKEDI (255, 0xffffffff);
24244 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24245 written |= (1 << 11);
24246 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24248 frvbf_media_overflow (current_cpu, 8);
24251 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24254 UDI opval = MAKEDI (0, 0);
24255 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24256 written |= (1 << 11);
24257 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24259 frvbf_media_overflow (current_cpu, 8);
24263 UDI opval = tmp_tmp;
24264 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24265 written |= (1 << 11);
24266 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24273 tmp_tmp = SUBDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (1))), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
24274 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24277 UDI opval = MAKEDI (255, 0xffffffff);
24278 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24279 written |= (1 << 12);
24280 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24282 frvbf_media_overflow (current_cpu, 4);
24285 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24288 UDI opval = MAKEDI (0, 0);
24289 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24290 written |= (1 << 12);
24291 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24293 frvbf_media_overflow (current_cpu, 4);
24297 UDI opval = tmp_tmp;
24298 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24299 written |= (1 << 12);
24300 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24308 abuf->written = written;
24313 /* cmmachs: cmmachs$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
24316 SEM_FN_NAME (frvbf,cmmachs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24318 #define FLD(f) abuf->fields.sfmt_cmmachs.f
24319 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24320 int UNUSED written = 0;
24321 IADDR UNUSED pc = abuf->addr;
24322 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24324 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
24325 frvbf_media_acc_not_aligned (current_cpu);
24327 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
24334 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24335 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24336 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24337 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24341 tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
24342 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24345 DI opval = MAKEDI (127, 0xffffffff);
24346 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24347 written |= (1 << 13);
24348 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24350 frvbf_media_overflow (current_cpu, 8);
24353 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24356 DI opval = MAKEDI (0xffffff80, 0);
24357 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24358 written |= (1 << 13);
24359 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24361 frvbf_media_overflow (current_cpu, 8);
24365 DI opval = tmp_tmp;
24366 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24367 written |= (1 << 13);
24368 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24375 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (1))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
24376 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24379 DI opval = MAKEDI (127, 0xffffffff);
24380 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24381 written |= (1 << 14);
24382 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24384 frvbf_media_overflow (current_cpu, 4);
24387 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24390 DI opval = MAKEDI (0xffffff80, 0);
24391 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24392 written |= (1 << 14);
24393 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24395 frvbf_media_overflow (current_cpu, 4);
24399 DI opval = tmp_tmp;
24400 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24401 written |= (1 << 14);
24402 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24411 abuf->written = written;
24416 /* cmmachu: cmmachu$pack $FRinti,$FRintj,$ACC40Uk,$CCi,$cond */
24419 SEM_FN_NAME (frvbf,cmmachu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24421 #define FLD(f) abuf->fields.sfmt_cmmachu.f
24422 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24423 int UNUSED written = 0;
24424 IADDR UNUSED pc = abuf->addr;
24425 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24427 if (ANDSI (FLD (f_ACC40Uk), SUBSI (2, 1))) {
24428 frvbf_media_acc_not_aligned (current_cpu);
24430 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
24437 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24438 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24439 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24440 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24444 tmp_tmp = ADDDI (GET_H_ACC40U (FLD (f_ACC40Uk)), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
24445 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24448 UDI opval = MAKEDI (255, 0xffffffff);
24449 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24450 written |= (1 << 13);
24451 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24453 frvbf_media_overflow (current_cpu, 8);
24456 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24459 UDI opval = MAKEDI (0, 0);
24460 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24461 written |= (1 << 13);
24462 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24464 frvbf_media_overflow (current_cpu, 8);
24468 UDI opval = tmp_tmp;
24469 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24470 written |= (1 << 13);
24471 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24478 tmp_tmp = ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (1))), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
24479 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24482 UDI opval = MAKEDI (255, 0xffffffff);
24483 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24484 written |= (1 << 14);
24485 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24487 frvbf_media_overflow (current_cpu, 4);
24490 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24493 UDI opval = MAKEDI (0, 0);
24494 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24495 written |= (1 << 14);
24496 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24498 frvbf_media_overflow (current_cpu, 4);
24502 UDI opval = tmp_tmp;
24503 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24504 written |= (1 << 14);
24505 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24514 abuf->written = written;
24519 /* mqmachs: mqmachs$pack $FRintieven,$FRintjeven,$ACC40Sk */
24522 SEM_FN_NAME (frvbf,mqmachs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24524 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
24525 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24526 int UNUSED written = 0;
24527 IADDR UNUSED pc = abuf->addr;
24528 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24530 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
24531 frvbf_media_acc_not_aligned (current_cpu);
24533 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
24534 frvbf_media_register_not_aligned (current_cpu);
24542 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24543 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24544 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24545 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24549 tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
24550 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24553 DI opval = MAKEDI (127, 0xffffffff);
24554 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24555 written |= (1 << 17);
24556 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24558 frvbf_media_overflow (current_cpu, 8);
24561 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24564 DI opval = MAKEDI (0xffffff80, 0);
24565 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24566 written |= (1 << 17);
24567 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24569 frvbf_media_overflow (current_cpu, 8);
24573 DI opval = tmp_tmp;
24574 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24575 written |= (1 << 17);
24576 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24583 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (1))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
24584 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24587 DI opval = MAKEDI (127, 0xffffffff);
24588 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24589 written |= (1 << 18);
24590 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24592 frvbf_media_overflow (current_cpu, 4);
24595 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24598 DI opval = MAKEDI (0xffffff80, 0);
24599 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24600 written |= (1 << 18);
24601 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24603 frvbf_media_overflow (current_cpu, 4);
24607 DI opval = tmp_tmp;
24608 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24609 written |= (1 << 18);
24610 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24616 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24617 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24618 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24619 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24623 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (2))), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
24624 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24627 DI opval = MAKEDI (127, 0xffffffff);
24628 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
24629 written |= (1 << 19);
24630 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24632 frvbf_media_overflow (current_cpu, 2);
24635 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24638 DI opval = MAKEDI (0xffffff80, 0);
24639 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
24640 written |= (1 << 19);
24641 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24643 frvbf_media_overflow (current_cpu, 2);
24647 DI opval = tmp_tmp;
24648 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
24649 written |= (1 << 19);
24650 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24657 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (3))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
24658 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24661 DI opval = MAKEDI (127, 0xffffffff);
24662 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
24663 written |= (1 << 20);
24664 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24666 frvbf_media_overflow (current_cpu, 1);
24669 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24672 DI opval = MAKEDI (0xffffff80, 0);
24673 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
24674 written |= (1 << 20);
24675 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24677 frvbf_media_overflow (current_cpu, 1);
24681 DI opval = tmp_tmp;
24682 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
24683 written |= (1 << 20);
24684 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24693 abuf->written = written;
24698 /* mqmachu: mqmachu$pack $FRintieven,$FRintjeven,$ACC40Uk */
24701 SEM_FN_NAME (frvbf,mqmachu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24703 #define FLD(f) abuf->fields.sfmt_cmqmachu.f
24704 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24705 int UNUSED written = 0;
24706 IADDR UNUSED pc = abuf->addr;
24707 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24709 if (ANDSI (FLD (f_ACC40Uk), SUBSI (4, 1))) {
24710 frvbf_media_acc_not_aligned (current_cpu);
24712 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
24713 frvbf_media_register_not_aligned (current_cpu);
24721 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24722 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24723 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24724 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24728 tmp_tmp = ADDDI (GET_H_ACC40U (FLD (f_ACC40Uk)), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
24729 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24732 UDI opval = MAKEDI (255, 0xffffffff);
24733 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24734 written |= (1 << 17);
24735 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24737 frvbf_media_overflow (current_cpu, 8);
24740 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24743 UDI opval = MAKEDI (0, 0);
24744 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24745 written |= (1 << 17);
24746 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24748 frvbf_media_overflow (current_cpu, 8);
24752 UDI opval = tmp_tmp;
24753 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24754 written |= (1 << 17);
24755 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24762 tmp_tmp = ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (1))), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
24763 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24766 UDI opval = MAKEDI (255, 0xffffffff);
24767 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24768 written |= (1 << 18);
24769 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24771 frvbf_media_overflow (current_cpu, 4);
24774 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24777 UDI opval = MAKEDI (0, 0);
24778 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24779 written |= (1 << 18);
24780 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24782 frvbf_media_overflow (current_cpu, 4);
24786 UDI opval = tmp_tmp;
24787 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24788 written |= (1 << 18);
24789 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24795 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24796 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24797 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24798 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24802 tmp_tmp = ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (2))), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
24803 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24806 UDI opval = MAKEDI (255, 0xffffffff);
24807 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (2)), opval);
24808 written |= (1 << 19);
24809 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24811 frvbf_media_overflow (current_cpu, 2);
24814 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24817 UDI opval = MAKEDI (0, 0);
24818 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (2)), opval);
24819 written |= (1 << 19);
24820 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24822 frvbf_media_overflow (current_cpu, 2);
24826 UDI opval = tmp_tmp;
24827 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (2)), opval);
24828 written |= (1 << 19);
24829 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24836 tmp_tmp = ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (3))), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
24837 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24840 UDI opval = MAKEDI (255, 0xffffffff);
24841 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (3)), opval);
24842 written |= (1 << 20);
24843 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24845 frvbf_media_overflow (current_cpu, 1);
24848 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24851 UDI opval = MAKEDI (0, 0);
24852 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (3)), opval);
24853 written |= (1 << 20);
24854 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24856 frvbf_media_overflow (current_cpu, 1);
24860 UDI opval = tmp_tmp;
24861 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (3)), opval);
24862 written |= (1 << 20);
24863 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24872 abuf->written = written;
24877 /* cmqmachs: cmqmachs$pack $FRintieven,$FRintjeven,$ACC40Sk,$CCi,$cond */
24880 SEM_FN_NAME (frvbf,cmqmachs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24882 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
24883 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24884 int UNUSED written = 0;
24885 IADDR UNUSED pc = abuf->addr;
24886 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24888 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
24889 frvbf_media_acc_not_aligned (current_cpu);
24891 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
24892 frvbf_media_register_not_aligned (current_cpu);
24894 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
24901 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24902 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24903 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24904 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24908 tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
24909 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24912 DI opval = MAKEDI (127, 0xffffffff);
24913 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24914 written |= (1 << 19);
24915 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24917 frvbf_media_overflow (current_cpu, 8);
24920 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24923 DI opval = MAKEDI (0xffffff80, 0);
24924 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24925 written |= (1 << 19);
24926 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24928 frvbf_media_overflow (current_cpu, 8);
24932 DI opval = tmp_tmp;
24933 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24934 written |= (1 << 19);
24935 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24942 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (1))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
24943 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24946 DI opval = MAKEDI (127, 0xffffffff);
24947 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24948 written |= (1 << 20);
24949 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24951 frvbf_media_overflow (current_cpu, 4);
24954 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24957 DI opval = MAKEDI (0xffffff80, 0);
24958 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24959 written |= (1 << 20);
24960 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24962 frvbf_media_overflow (current_cpu, 4);
24966 DI opval = tmp_tmp;
24967 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24968 written |= (1 << 20);
24969 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24975 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24976 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24977 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24978 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24982 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (2))), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
24983 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24986 DI opval = MAKEDI (127, 0xffffffff);
24987 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
24988 written |= (1 << 21);
24989 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24991 frvbf_media_overflow (current_cpu, 2);
24994 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24997 DI opval = MAKEDI (0xffffff80, 0);
24998 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
24999 written |= (1 << 21);
25000 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25002 frvbf_media_overflow (current_cpu, 2);
25006 DI opval = tmp_tmp;
25007 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25008 written |= (1 << 21);
25009 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25016 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (3))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
25017 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25020 DI opval = MAKEDI (127, 0xffffffff);
25021 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25022 written |= (1 << 22);
25023 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25025 frvbf_media_overflow (current_cpu, 1);
25028 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25031 DI opval = MAKEDI (0xffffff80, 0);
25032 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25033 written |= (1 << 22);
25034 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25036 frvbf_media_overflow (current_cpu, 1);
25040 DI opval = tmp_tmp;
25041 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25042 written |= (1 << 22);
25043 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25053 abuf->written = written;
25058 /* cmqmachu: cmqmachu$pack $FRintieven,$FRintjeven,$ACC40Uk,$CCi,$cond */
25061 SEM_FN_NAME (frvbf,cmqmachu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
25063 #define FLD(f) abuf->fields.sfmt_cmqmachu.f
25064 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
25065 int UNUSED written = 0;
25066 IADDR UNUSED pc = abuf->addr;
25067 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
25069 if (ANDSI (FLD (f_ACC40Uk), SUBSI (4, 1))) {
25070 frvbf_media_acc_not_aligned (current_cpu);
25072 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
25073 frvbf_media_register_not_aligned (current_cpu);
25075 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
25082 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25083 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25084 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25085 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25089 tmp_tmp = ADDDI (GET_H_ACC40U (FLD (f_ACC40Uk)), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
25090 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
25093 UDI opval = MAKEDI (255, 0xffffffff);
25094 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
25095 written |= (1 << 19);
25096 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25098 frvbf_media_overflow (current_cpu, 8);
25101 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
25104 UDI opval = MAKEDI (0, 0);
25105 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
25106 written |= (1 << 19);
25107 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25109 frvbf_media_overflow (current_cpu, 8);
25113 UDI opval = tmp_tmp;
25114 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
25115 written |= (1 << 19);
25116 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25123 tmp_tmp = ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (1))), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
25124 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
25127 UDI opval = MAKEDI (255, 0xffffffff);
25128 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
25129 written |= (1 << 20);
25130 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25132 frvbf_media_overflow (current_cpu, 4);
25135 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
25138 UDI opval = MAKEDI (0, 0);
25139 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
25140 written |= (1 << 20);
25141 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25143 frvbf_media_overflow (current_cpu, 4);
25147 UDI opval = tmp_tmp;
25148 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
25149 written |= (1 << 20);
25150 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25156 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25157 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25158 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25159 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25163 tmp_tmp = ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (2))), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
25164 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
25167 UDI opval = MAKEDI (255, 0xffffffff);
25168 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (2)), opval);
25169 written |= (1 << 21);
25170 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25172 frvbf_media_overflow (current_cpu, 2);
25175 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
25178 UDI opval = MAKEDI (0, 0);
25179 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (2)), opval);
25180 written |= (1 << 21);
25181 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25183 frvbf_media_overflow (current_cpu, 2);
25187 UDI opval = tmp_tmp;
25188 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (2)), opval);
25189 written |= (1 << 21);
25190 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25197 tmp_tmp = ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (3))), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
25198 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
25201 UDI opval = MAKEDI (255, 0xffffffff);
25202 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (3)), opval);
25203 written |= (1 << 22);
25204 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25206 frvbf_media_overflow (current_cpu, 1);
25209 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
25212 UDI opval = MAKEDI (0, 0);
25213 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (3)), opval);
25214 written |= (1 << 22);
25215 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25217 frvbf_media_overflow (current_cpu, 1);
25221 UDI opval = tmp_tmp;
25222 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (3)), opval);
25223 written |= (1 << 22);
25224 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25234 abuf->written = written;
25239 /* mqxmachs: mqxmachs$pack $FRintieven,$FRintjeven,$ACC40Sk */
25242 SEM_FN_NAME (frvbf,mqxmachs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
25244 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
25245 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
25246 int UNUSED written = 0;
25247 IADDR UNUSED pc = abuf->addr;
25248 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
25250 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
25251 frvbf_media_acc_not_aligned (current_cpu);
25253 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
25254 frvbf_media_register_not_aligned (current_cpu);
25262 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25263 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25264 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25265 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25269 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (2))), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
25270 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25273 DI opval = MAKEDI (127, 0xffffffff);
25274 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25275 written |= (1 << 19);
25276 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25278 frvbf_media_overflow (current_cpu, 2);
25281 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25284 DI opval = MAKEDI (0xffffff80, 0);
25285 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25286 written |= (1 << 19);
25287 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25289 frvbf_media_overflow (current_cpu, 2);
25293 DI opval = tmp_tmp;
25294 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25295 written |= (1 << 19);
25296 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25303 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (3))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
25304 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25307 DI opval = MAKEDI (127, 0xffffffff);
25308 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25309 written |= (1 << 20);
25310 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25312 frvbf_media_overflow (current_cpu, 1);
25315 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25318 DI opval = MAKEDI (0xffffff80, 0);
25319 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25320 written |= (1 << 20);
25321 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25323 frvbf_media_overflow (current_cpu, 1);
25327 DI opval = tmp_tmp;
25328 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25329 written |= (1 << 20);
25330 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25336 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25337 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25338 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25339 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25343 tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
25344 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25347 DI opval = MAKEDI (127, 0xffffffff);
25348 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25349 written |= (1 << 17);
25350 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25352 frvbf_media_overflow (current_cpu, 8);
25355 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25358 DI opval = MAKEDI (0xffffff80, 0);
25359 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25360 written |= (1 << 17);
25361 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25363 frvbf_media_overflow (current_cpu, 8);
25367 DI opval = tmp_tmp;
25368 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25369 written |= (1 << 17);
25370 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25377 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (1))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
25378 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25381 DI opval = MAKEDI (127, 0xffffffff);
25382 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25383 written |= (1 << 18);
25384 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25386 frvbf_media_overflow (current_cpu, 4);
25389 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25392 DI opval = MAKEDI (0xffffff80, 0);
25393 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25394 written |= (1 << 18);
25395 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25397 frvbf_media_overflow (current_cpu, 4);
25401 DI opval = tmp_tmp;
25402 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25403 written |= (1 << 18);
25404 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25413 abuf->written = written;
25418 /* mqxmacxhs: mqxmacxhs$pack $FRintieven,$FRintjeven,$ACC40Sk */
25421 SEM_FN_NAME (frvbf,mqxmacxhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
25423 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
25424 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
25425 int UNUSED written = 0;
25426 IADDR UNUSED pc = abuf->addr;
25427 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
25429 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
25430 frvbf_media_acc_not_aligned (current_cpu);
25432 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
25433 frvbf_media_register_not_aligned (current_cpu);
25441 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25442 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25443 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25444 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25448 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (2))), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo)));
25449 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25452 DI opval = MAKEDI (127, 0xffffffff);
25453 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25454 written |= (1 << 19);
25455 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25457 frvbf_media_overflow (current_cpu, 2);
25460 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25463 DI opval = MAKEDI (0xffffff80, 0);
25464 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25465 written |= (1 << 19);
25466 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25468 frvbf_media_overflow (current_cpu, 2);
25472 DI opval = tmp_tmp;
25473 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25474 written |= (1 << 19);
25475 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25482 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (3))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi)));
25483 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25486 DI opval = MAKEDI (127, 0xffffffff);
25487 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25488 written |= (1 << 20);
25489 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25491 frvbf_media_overflow (current_cpu, 1);
25494 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25497 DI opval = MAKEDI (0xffffff80, 0);
25498 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25499 written |= (1 << 20);
25500 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25502 frvbf_media_overflow (current_cpu, 1);
25506 DI opval = tmp_tmp;
25507 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25508 written |= (1 << 20);
25509 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25515 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25516 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25517 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25518 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25522 tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo)));
25523 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25526 DI opval = MAKEDI (127, 0xffffffff);
25527 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25528 written |= (1 << 17);
25529 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25531 frvbf_media_overflow (current_cpu, 8);
25534 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25537 DI opval = MAKEDI (0xffffff80, 0);
25538 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25539 written |= (1 << 17);
25540 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25542 frvbf_media_overflow (current_cpu, 8);
25546 DI opval = tmp_tmp;
25547 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25548 written |= (1 << 17);
25549 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25556 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (1))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi)));
25557 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25560 DI opval = MAKEDI (127, 0xffffffff);
25561 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25562 written |= (1 << 18);
25563 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25565 frvbf_media_overflow (current_cpu, 4);
25568 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25571 DI opval = MAKEDI (0xffffff80, 0);
25572 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25573 written |= (1 << 18);
25574 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25576 frvbf_media_overflow (current_cpu, 4);
25580 DI opval = tmp_tmp;
25581 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25582 written |= (1 << 18);
25583 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25592 abuf->written = written;
25597 /* mqmacxhs: mqmacxhs$pack $FRintieven,$FRintjeven,$ACC40Sk */
25600 SEM_FN_NAME (frvbf,mqmacxhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
25602 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
25603 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
25604 int UNUSED written = 0;
25605 IADDR UNUSED pc = abuf->addr;
25606 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
25608 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
25609 frvbf_media_acc_not_aligned (current_cpu);
25611 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
25612 frvbf_media_register_not_aligned (current_cpu);
25620 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25621 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25622 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25623 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25627 tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo)));
25628 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25631 DI opval = MAKEDI (127, 0xffffffff);
25632 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25633 written |= (1 << 17);
25634 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25636 frvbf_media_overflow (current_cpu, 8);
25639 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25642 DI opval = MAKEDI (0xffffff80, 0);
25643 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25644 written |= (1 << 17);
25645 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25647 frvbf_media_overflow (current_cpu, 8);
25651 DI opval = tmp_tmp;
25652 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25653 written |= (1 << 17);
25654 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25661 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (1))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi)));
25662 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25665 DI opval = MAKEDI (127, 0xffffffff);
25666 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25667 written |= (1 << 18);
25668 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25670 frvbf_media_overflow (current_cpu, 4);
25673 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25676 DI opval = MAKEDI (0xffffff80, 0);
25677 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25678 written |= (1 << 18);
25679 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25681 frvbf_media_overflow (current_cpu, 4);
25685 DI opval = tmp_tmp;
25686 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25687 written |= (1 << 18);
25688 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25694 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25695 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25696 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25697 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25701 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (2))), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo)));
25702 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25705 DI opval = MAKEDI (127, 0xffffffff);
25706 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25707 written |= (1 << 19);
25708 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25710 frvbf_media_overflow (current_cpu, 2);
25713 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25716 DI opval = MAKEDI (0xffffff80, 0);
25717 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25718 written |= (1 << 19);
25719 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25721 frvbf_media_overflow (current_cpu, 2);
25725 DI opval = tmp_tmp;
25726 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25727 written |= (1 << 19);
25728 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25735 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (3))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi)));
25736 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25739 DI opval = MAKEDI (127, 0xffffffff);
25740 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25741 written |= (1 << 20);
25742 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25744 frvbf_media_overflow (current_cpu, 1);
25747 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25750 DI opval = MAKEDI (0xffffff80, 0);
25751 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25752 written |= (1 << 20);
25753 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25755 frvbf_media_overflow (current_cpu, 1);
25759 DI opval = tmp_tmp;
25760 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25761 written |= (1 << 20);
25762 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25771 abuf->written = written;
25776 /* mcpxrs: mcpxrs$pack $FRinti,$FRintj,$ACC40Sk */
25779 SEM_FN_NAME (frvbf,mcpxrs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
25781 #define FLD(f) abuf->fields.sfmt_cmmachs.f
25782 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
25783 int UNUSED written = 0;
25784 IADDR UNUSED pc = abuf->addr;
25785 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
25793 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25794 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25795 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25796 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25801 tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
25802 tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
25803 tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
25804 if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
25807 DI opval = MAKEDI (127, 0xffffffff);
25808 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25809 written |= (1 << 8);
25810 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25812 frvbf_media_overflow (current_cpu, 8);
25815 if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
25818 DI opval = MAKEDI (0xffffff80, 0);
25819 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25820 written |= (1 << 8);
25821 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25823 frvbf_media_overflow (current_cpu, 8);
25827 DI opval = tmp_tmp1;
25828 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25829 written |= (1 << 8);
25830 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25837 abuf->written = written;
25842 /* mcpxru: mcpxru$pack $FRinti,$FRintj,$ACC40Sk */
25845 SEM_FN_NAME (frvbf,mcpxru) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
25847 #define FLD(f) abuf->fields.sfmt_cmmachs.f
25848 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
25849 int UNUSED written = 0;
25850 IADDR UNUSED pc = abuf->addr;
25851 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
25859 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25860 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25861 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25862 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25867 tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
25868 tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
25869 tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
25870 if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
25873 DI opval = MAKEDI (255, 0xffffffff);
25874 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25875 written |= (1 << 8);
25876 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25878 frvbf_media_overflow (current_cpu, 8);
25881 if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
25884 DI opval = MAKEDI (0, 0);
25885 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25886 written |= (1 << 8);
25887 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25889 frvbf_media_overflow (current_cpu, 8);
25893 DI opval = tmp_tmp1;
25894 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25895 written |= (1 << 8);
25896 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25903 abuf->written = written;
25908 /* mcpxis: mcpxis$pack $FRinti,$FRintj,$ACC40Sk */
25911 SEM_FN_NAME (frvbf,mcpxis) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
25913 #define FLD(f) abuf->fields.sfmt_cmmachs.f
25914 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
25915 int UNUSED written = 0;
25916 IADDR UNUSED pc = abuf->addr;
25917 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
25925 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25926 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25927 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25928 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25933 tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
25934 tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
25935 tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
25936 if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
25939 DI opval = MAKEDI (127, 0xffffffff);
25940 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25941 written |= (1 << 8);
25942 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25944 frvbf_media_overflow (current_cpu, 8);
25947 if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
25950 DI opval = MAKEDI (0xffffff80, 0);
25951 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25952 written |= (1 << 8);
25953 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25955 frvbf_media_overflow (current_cpu, 8);
25959 DI opval = tmp_tmp1;
25960 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25961 written |= (1 << 8);
25962 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25969 abuf->written = written;
25974 /* mcpxiu: mcpxiu$pack $FRinti,$FRintj,$ACC40Sk */
25977 SEM_FN_NAME (frvbf,mcpxiu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
25979 #define FLD(f) abuf->fields.sfmt_cmmachs.f
25980 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
25981 int UNUSED written = 0;
25982 IADDR UNUSED pc = abuf->addr;
25983 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
25991 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25992 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25993 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25994 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25999 tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
26000 tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
26001 tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
26002 if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
26005 DI opval = MAKEDI (255, 0xffffffff);
26006 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26007 written |= (1 << 8);
26008 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26010 frvbf_media_overflow (current_cpu, 8);
26013 if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
26016 DI opval = MAKEDI (0, 0);
26017 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26018 written |= (1 << 8);
26019 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26021 frvbf_media_overflow (current_cpu, 8);
26025 DI opval = tmp_tmp1;
26026 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26027 written |= (1 << 8);
26028 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26035 abuf->written = written;
26040 /* cmcpxrs: cmcpxrs$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
26043 SEM_FN_NAME (frvbf,cmcpxrs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26045 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26046 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26047 int UNUSED written = 0;
26048 IADDR UNUSED pc = abuf->addr;
26049 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26051 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
26058 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26059 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26060 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26061 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26066 tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
26067 tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
26068 tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26069 if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26072 DI opval = MAKEDI (127, 0xffffffff);
26073 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26074 written |= (1 << 10);
26075 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26077 frvbf_media_overflow (current_cpu, 8);
26080 if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26083 DI opval = MAKEDI (0xffffff80, 0);
26084 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26085 written |= (1 << 10);
26086 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26088 frvbf_media_overflow (current_cpu, 8);
26092 DI opval = tmp_tmp1;
26093 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26094 written |= (1 << 10);
26095 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26103 abuf->written = written;
26108 /* cmcpxru: cmcpxru$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
26111 SEM_FN_NAME (frvbf,cmcpxru) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26113 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26114 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26115 int UNUSED written = 0;
26116 IADDR UNUSED pc = abuf->addr;
26117 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26119 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
26126 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26127 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26128 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26129 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26134 tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
26135 tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
26136 tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26137 if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
26140 DI opval = MAKEDI (255, 0xffffffff);
26141 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26142 written |= (1 << 10);
26143 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26145 frvbf_media_overflow (current_cpu, 8);
26148 if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
26151 DI opval = MAKEDI (0, 0);
26152 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26153 written |= (1 << 10);
26154 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26156 frvbf_media_overflow (current_cpu, 8);
26160 DI opval = tmp_tmp1;
26161 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26162 written |= (1 << 10);
26163 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26171 abuf->written = written;
26176 /* cmcpxis: cmcpxis$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
26179 SEM_FN_NAME (frvbf,cmcpxis) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26181 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26182 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26183 int UNUSED written = 0;
26184 IADDR UNUSED pc = abuf->addr;
26185 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26187 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
26194 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26195 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26196 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26197 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26202 tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
26203 tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
26204 tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
26205 if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26208 DI opval = MAKEDI (127, 0xffffffff);
26209 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26210 written |= (1 << 10);
26211 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26213 frvbf_media_overflow (current_cpu, 8);
26216 if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26219 DI opval = MAKEDI (0xffffff80, 0);
26220 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26221 written |= (1 << 10);
26222 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26224 frvbf_media_overflow (current_cpu, 8);
26228 DI opval = tmp_tmp1;
26229 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26230 written |= (1 << 10);
26231 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26239 abuf->written = written;
26244 /* cmcpxiu: cmcpxiu$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
26247 SEM_FN_NAME (frvbf,cmcpxiu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26249 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26250 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26251 int UNUSED written = 0;
26252 IADDR UNUSED pc = abuf->addr;
26253 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26255 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
26262 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26263 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26264 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26265 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26270 tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
26271 tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
26272 tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
26273 if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
26276 DI opval = MAKEDI (255, 0xffffffff);
26277 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26278 written |= (1 << 10);
26279 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26281 frvbf_media_overflow (current_cpu, 8);
26284 if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
26287 DI opval = MAKEDI (0, 0);
26288 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26289 written |= (1 << 10);
26290 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26292 frvbf_media_overflow (current_cpu, 8);
26296 DI opval = tmp_tmp1;
26297 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26298 written |= (1 << 10);
26299 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26307 abuf->written = written;
26312 /* mqcpxrs: mqcpxrs$pack $FRintieven,$FRintjeven,$ACC40Sk */
26315 SEM_FN_NAME (frvbf,mqcpxrs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26317 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
26318 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26319 int UNUSED written = 0;
26320 IADDR UNUSED pc = abuf->addr;
26321 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26323 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
26324 frvbf_media_acc_not_aligned (current_cpu);
26326 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
26327 frvbf_media_register_not_aligned (current_cpu);
26335 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26336 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26337 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26338 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26343 tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
26344 tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
26345 tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26346 if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26349 DI opval = MAKEDI (127, 0xffffffff);
26350 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26351 written |= (1 << 13);
26352 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26354 frvbf_media_overflow (current_cpu, 8);
26357 if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26360 DI opval = MAKEDI (0xffffff80, 0);
26361 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26362 written |= (1 << 13);
26363 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26365 frvbf_media_overflow (current_cpu, 8);
26369 DI opval = tmp_tmp1;
26370 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26371 written |= (1 << 13);
26372 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26378 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26379 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26380 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26381 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26386 tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
26387 tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
26388 tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26389 if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26392 DI opval = MAKEDI (127, 0xffffffff);
26393 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26394 written |= (1 << 14);
26395 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26397 frvbf_media_overflow (current_cpu, 4);
26400 if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26403 DI opval = MAKEDI (0xffffff80, 0);
26404 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26405 written |= (1 << 14);
26406 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26408 frvbf_media_overflow (current_cpu, 4);
26412 DI opval = tmp_tmp1;
26413 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26414 written |= (1 << 14);
26415 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26424 abuf->written = written;
26429 /* mqcpxru: mqcpxru$pack $FRintieven,$FRintjeven,$ACC40Sk */
26432 SEM_FN_NAME (frvbf,mqcpxru) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26434 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
26435 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26436 int UNUSED written = 0;
26437 IADDR UNUSED pc = abuf->addr;
26438 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26440 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
26441 frvbf_media_acc_not_aligned (current_cpu);
26443 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
26444 frvbf_media_register_not_aligned (current_cpu);
26452 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26453 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26454 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26455 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26460 tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
26461 tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
26462 tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26463 if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
26466 DI opval = MAKEDI (255, 0xffffffff);
26467 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26468 written |= (1 << 13);
26469 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26471 frvbf_media_overflow (current_cpu, 8);
26474 if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
26477 DI opval = MAKEDI (0, 0);
26478 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26479 written |= (1 << 13);
26480 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26482 frvbf_media_overflow (current_cpu, 8);
26486 DI opval = tmp_tmp1;
26487 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26488 written |= (1 << 13);
26489 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26495 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26496 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26497 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26498 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26503 tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
26504 tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
26505 tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26506 if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
26509 DI opval = MAKEDI (255, 0xffffffff);
26510 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26511 written |= (1 << 14);
26512 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26514 frvbf_media_overflow (current_cpu, 4);
26517 if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
26520 DI opval = MAKEDI (0, 0);
26521 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26522 written |= (1 << 14);
26523 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26525 frvbf_media_overflow (current_cpu, 4);
26529 DI opval = tmp_tmp1;
26530 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26531 written |= (1 << 14);
26532 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26541 abuf->written = written;
26546 /* mqcpxis: mqcpxis$pack $FRintieven,$FRintjeven,$ACC40Sk */
26549 SEM_FN_NAME (frvbf,mqcpxis) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26551 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
26552 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26553 int UNUSED written = 0;
26554 IADDR UNUSED pc = abuf->addr;
26555 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26557 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
26558 frvbf_media_acc_not_aligned (current_cpu);
26560 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
26561 frvbf_media_register_not_aligned (current_cpu);
26569 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26570 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26571 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26572 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26577 tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
26578 tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
26579 tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
26580 if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26583 DI opval = MAKEDI (127, 0xffffffff);
26584 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26585 written |= (1 << 13);
26586 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26588 frvbf_media_overflow (current_cpu, 8);
26591 if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26594 DI opval = MAKEDI (0xffffff80, 0);
26595 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26596 written |= (1 << 13);
26597 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26599 frvbf_media_overflow (current_cpu, 8);
26603 DI opval = tmp_tmp1;
26604 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26605 written |= (1 << 13);
26606 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26612 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26613 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26614 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26615 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26620 tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
26621 tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
26622 tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
26623 if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26626 DI opval = MAKEDI (127, 0xffffffff);
26627 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26628 written |= (1 << 14);
26629 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26631 frvbf_media_overflow (current_cpu, 4);
26634 if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26637 DI opval = MAKEDI (0xffffff80, 0);
26638 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26639 written |= (1 << 14);
26640 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26642 frvbf_media_overflow (current_cpu, 4);
26646 DI opval = tmp_tmp1;
26647 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26648 written |= (1 << 14);
26649 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26658 abuf->written = written;
26663 /* mqcpxiu: mqcpxiu$pack $FRintieven,$FRintjeven,$ACC40Sk */
26666 SEM_FN_NAME (frvbf,mqcpxiu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26668 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
26669 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26670 int UNUSED written = 0;
26671 IADDR UNUSED pc = abuf->addr;
26672 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26674 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
26675 frvbf_media_acc_not_aligned (current_cpu);
26677 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
26678 frvbf_media_register_not_aligned (current_cpu);
26686 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26687 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26688 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26689 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26694 tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
26695 tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
26696 tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
26697 if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
26700 DI opval = MAKEDI (255, 0xffffffff);
26701 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26702 written |= (1 << 13);
26703 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26705 frvbf_media_overflow (current_cpu, 8);
26708 if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
26711 DI opval = MAKEDI (0, 0);
26712 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26713 written |= (1 << 13);
26714 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26716 frvbf_media_overflow (current_cpu, 8);
26720 DI opval = tmp_tmp1;
26721 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26722 written |= (1 << 13);
26723 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26729 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26730 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26731 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26732 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26737 tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
26738 tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
26739 tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
26740 if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
26743 DI opval = MAKEDI (255, 0xffffffff);
26744 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26745 written |= (1 << 14);
26746 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26748 frvbf_media_overflow (current_cpu, 4);
26751 if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
26754 DI opval = MAKEDI (0, 0);
26755 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26756 written |= (1 << 14);
26757 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26759 frvbf_media_overflow (current_cpu, 4);
26763 DI opval = tmp_tmp1;
26764 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26765 written |= (1 << 14);
26766 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26775 abuf->written = written;
26780 /* mexpdhw: mexpdhw$pack $FRinti,$u6,$FRintk */
26783 SEM_FN_NAME (frvbf,mexpdhw) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26785 #define FLD(f) abuf->fields.sfmt_cmexpdhw.f
26786 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26787 int UNUSED written = 0;
26788 IADDR UNUSED pc = abuf->addr;
26789 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26793 if (ANDSI (FLD (f_u6), 1)) {
26794 tmp_tmp = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
26796 tmp_tmp = GET_H_FR_HI (((FLD (f_FRi)) + (0)));
26799 UHI opval = tmp_tmp;
26800 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
26801 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
26804 UHI opval = tmp_tmp;
26805 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
26806 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
26814 /* cmexpdhw: cmexpdhw$pack $FRinti,$u6,$FRintk,$CCi,$cond */
26817 SEM_FN_NAME (frvbf,cmexpdhw) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26819 #define FLD(f) abuf->fields.sfmt_cmexpdhw.f
26820 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26821 int UNUSED written = 0;
26822 IADDR UNUSED pc = abuf->addr;
26823 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26825 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
26828 if (ANDSI (FLD (f_u6), 1)) {
26829 tmp_tmp = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
26831 tmp_tmp = GET_H_FR_HI (((FLD (f_FRi)) + (0)));
26834 UHI opval = tmp_tmp;
26835 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
26836 written |= (1 << 7);
26837 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
26840 UHI opval = tmp_tmp;
26841 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
26842 written |= (1 << 8);
26843 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
26848 abuf->written = written;
26853 /* mexpdhd: mexpdhd$pack $FRinti,$u6,$FRintkeven */
26856 SEM_FN_NAME (frvbf,mexpdhd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26858 #define FLD(f) abuf->fields.sfmt_cmexpdhd.f
26859 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26860 int UNUSED written = 0;
26861 IADDR UNUSED pc = abuf->addr;
26862 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26864 if (ANDSI (FLD (f_FRk), SUBSI (2, 1))) {
26865 frvbf_media_register_not_aligned (current_cpu);
26870 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
26871 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
26872 written |= (1 << 6);
26873 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
26875 if (ANDSI (FLD (f_u6), 1)) {
26876 tmp_tmp = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
26878 tmp_tmp = GET_H_FR_HI (((FLD (f_FRi)) + (0)));
26881 UHI opval = tmp_tmp;
26882 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
26883 written |= (1 << 7);
26884 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
26887 UHI opval = tmp_tmp;
26888 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
26889 written |= (1 << 9);
26890 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
26893 UHI opval = tmp_tmp;
26894 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
26895 written |= (1 << 8);
26896 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
26899 UHI opval = tmp_tmp;
26900 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
26901 written |= (1 << 10);
26902 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
26907 abuf->written = written;
26912 /* cmexpdhd: cmexpdhd$pack $FRinti,$u6,$FRintkeven,$CCi,$cond */
26915 SEM_FN_NAME (frvbf,cmexpdhd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26917 #define FLD(f) abuf->fields.sfmt_cmexpdhd.f
26918 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26919 int UNUSED written = 0;
26920 IADDR UNUSED pc = abuf->addr;
26921 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26923 if (ANDSI (FLD (f_FRk), SUBSI (2, 1))) {
26924 frvbf_media_register_not_aligned (current_cpu);
26926 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
26930 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
26931 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
26932 written |= (1 << 8);
26933 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
26935 if (ANDSI (FLD (f_u6), 1)) {
26936 tmp_tmp = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
26938 tmp_tmp = GET_H_FR_HI (((FLD (f_FRi)) + (0)));
26941 UHI opval = tmp_tmp;
26942 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
26943 written |= (1 << 9);
26944 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
26947 UHI opval = tmp_tmp;
26948 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
26949 written |= (1 << 11);
26950 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
26953 UHI opval = tmp_tmp;
26954 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
26955 written |= (1 << 10);
26956 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
26959 UHI opval = tmp_tmp;
26960 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
26961 written |= (1 << 12);
26962 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
26968 abuf->written = written;
26973 /* mpackh: mpackh$pack $FRinti,$FRintj,$FRintk */
26976 SEM_FN_NAME (frvbf,mpackh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26978 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
26979 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26980 int UNUSED written = 0;
26981 IADDR UNUSED pc = abuf->addr;
26982 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26986 UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
26987 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
26988 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
26991 UHI opval = GET_H_FR_LO (((FLD (f_FRj)) + (0)));
26992 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
26993 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27001 /* mdpackh: mdpackh$pack $FRintieven,$FRintjeven,$FRintkeven */
27004 SEM_FN_NAME (frvbf,mdpackh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27006 #define FLD(f) abuf->fields.sfmt_mdpackh.f
27007 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27008 int UNUSED written = 0;
27009 IADDR UNUSED pc = abuf->addr;
27010 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27012 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
27013 frvbf_media_register_not_aligned (current_cpu);
27017 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
27018 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
27019 written |= (1 << 10);
27020 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27023 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27024 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27025 written |= (1 << 11);
27026 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27029 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27030 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27031 written |= (1 << 12);
27032 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27036 UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
27037 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27038 written |= (1 << 13);
27039 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27042 UHI opval = GET_H_FR_LO (((FLD (f_FRj)) + (0)));
27043 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27044 written |= (1 << 15);
27045 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27050 UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (1)));
27051 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
27052 written |= (1 << 14);
27053 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27056 UHI opval = GET_H_FR_LO (((FLD (f_FRj)) + (1)));
27057 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
27058 written |= (1 << 16);
27059 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27065 abuf->written = written;
27070 /* munpackh: munpackh$pack $FRinti,$FRintkeven */
27073 SEM_FN_NAME (frvbf,munpackh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27075 #define FLD(f) abuf->fields.sfmt_munpackh.f
27076 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27077 int UNUSED written = 0;
27078 IADDR UNUSED pc = abuf->addr;
27079 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27081 if (ANDSI (FLD (f_FRk), SUBSI (2, 1))) {
27082 frvbf_media_register_not_aligned (current_cpu);
27086 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
27087 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
27088 written |= (1 << 6);
27089 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27092 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27093 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27094 written |= (1 << 7);
27095 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27099 UHI opval = GET_H_FR_HI (((FLD (f_FRi)) + (0)));
27100 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27101 written |= (1 << 8);
27102 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27105 UHI opval = GET_H_FR_HI (((FLD (f_FRi)) + (0)));
27106 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27107 written |= (1 << 10);
27108 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27111 UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
27112 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (ADDSI (0, 1))), opval);
27113 written |= (1 << 9);
27114 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27117 UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
27118 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (ADDSI (0, 1))), opval);
27119 written |= (1 << 11);
27120 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27126 abuf->written = written;
27131 /* mdunpackh: mdunpackh$pack $FRintieven,$FRintk */
27134 SEM_FN_NAME (frvbf,mdunpackh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27136 #define FLD(f) abuf->fields.sfmt_mdunpackh.f
27137 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27138 int UNUSED written = 0;
27139 IADDR UNUSED pc = abuf->addr;
27140 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27142 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (4, 1)))) {
27143 frvbf_media_register_not_aligned (current_cpu);
27147 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
27148 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
27149 written |= (1 << 8);
27150 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27153 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27154 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27155 written |= (1 << 9);
27156 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27160 UHI opval = GET_H_FR_HI (((FLD (f_FRi)) + (0)));
27161 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27162 written |= (1 << 10);
27163 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27166 UHI opval = GET_H_FR_HI (((FLD (f_FRi)) + (0)));
27167 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27168 written |= (1 << 14);
27169 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27172 UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
27173 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (ADDSI (0, 1))), opval);
27174 written |= (1 << 12);
27175 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27178 UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
27179 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (ADDSI (0, 1))), opval);
27180 written |= (1 << 16);
27181 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27186 UHI opval = GET_H_FR_HI (((FLD (f_FRi)) + (1)));
27187 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (2)), opval);
27188 written |= (1 << 11);
27189 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27192 UHI opval = GET_H_FR_HI (((FLD (f_FRi)) + (1)));
27193 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (2)), opval);
27194 written |= (1 << 15);
27195 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27198 UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (1)));
27199 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (ADDSI (2, 1))), opval);
27200 written |= (1 << 13);
27201 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27204 UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (1)));
27205 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (ADDSI (2, 1))), opval);
27206 written |= (1 << 17);
27207 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27213 abuf->written = written;
27218 /* mbtoh: mbtoh$pack $FRintj,$FRintkeven */
27221 SEM_FN_NAME (frvbf,mbtoh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27223 #define FLD(f) abuf->fields.sfmt_cmbtoh.f
27224 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27225 int UNUSED written = 0;
27226 IADDR UNUSED pc = abuf->addr;
27227 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27231 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27232 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27233 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27236 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27237 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27238 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27240 if (ANDSI (FLD (f_FRk), SUBSI (2, 1))) {
27241 frvbf_media_register_not_aligned (current_cpu);
27245 UHI opval = GET_H_FR_3 (((FLD (f_FRj)) + (0)));
27246 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27247 written |= (1 << 10);
27248 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27251 UHI opval = GET_H_FR_2 (((FLD (f_FRj)) + (0)));
27252 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27253 written |= (1 << 12);
27254 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27257 UHI opval = GET_H_FR_1 (((FLD (f_FRj)) + (0)));
27258 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
27259 written |= (1 << 11);
27260 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27263 UHI opval = GET_H_FR_0 (((FLD (f_FRj)) + (0)));
27264 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
27265 written |= (1 << 13);
27266 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27272 abuf->written = written;
27277 /* cmbtoh: cmbtoh$pack $FRintj,$FRintkeven,$CCi,$cond */
27280 SEM_FN_NAME (frvbf,cmbtoh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27282 #define FLD(f) abuf->fields.sfmt_cmbtoh.f
27283 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27284 int UNUSED written = 0;
27285 IADDR UNUSED pc = abuf->addr;
27286 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27290 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27291 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27292 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27295 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27296 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27297 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27299 if (ANDSI (FLD (f_FRk), SUBSI (2, 1))) {
27300 frvbf_media_register_not_aligned (current_cpu);
27302 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
27305 UHI opval = GET_H_FR_3 (((FLD (f_FRj)) + (0)));
27306 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27307 written |= (1 << 12);
27308 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27311 UHI opval = GET_H_FR_2 (((FLD (f_FRj)) + (0)));
27312 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27313 written |= (1 << 14);
27314 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27317 UHI opval = GET_H_FR_1 (((FLD (f_FRj)) + (0)));
27318 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
27319 written |= (1 << 13);
27320 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27323 UHI opval = GET_H_FR_0 (((FLD (f_FRj)) + (0)));
27324 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
27325 written |= (1 << 15);
27326 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27333 abuf->written = written;
27338 /* mhtob: mhtob$pack $FRintjeven,$FRintk */
27341 SEM_FN_NAME (frvbf,mhtob) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27343 #define FLD(f) abuf->fields.sfmt_cmhtob.f
27344 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27345 int UNUSED written = 0;
27346 IADDR UNUSED pc = abuf->addr;
27347 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27351 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27352 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27353 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27356 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27357 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27358 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27360 if (ANDSI (FLD (f_FRj), SUBSI (2, 1))) {
27361 frvbf_media_register_not_aligned (current_cpu);
27365 UHI opval = GET_H_FR_HI (((FLD (f_FRj)) + (0)));
27366 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_3_set, ((FLD (f_FRk)) + (0)), opval);
27367 written |= (1 << 13);
27368 TRACE_RESULT (current_cpu, abuf, "fr_3", 'x', opval);
27371 UHI opval = GET_H_FR_LO (((FLD (f_FRj)) + (0)));
27372 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_2_set, ((FLD (f_FRk)) + (0)), opval);
27373 written |= (1 << 12);
27374 TRACE_RESULT (current_cpu, abuf, "fr_2", 'x', opval);
27377 UHI opval = GET_H_FR_HI (((FLD (f_FRj)) + (1)));
27378 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_1_set, ((FLD (f_FRk)) + (0)), opval);
27379 written |= (1 << 11);
27380 TRACE_RESULT (current_cpu, abuf, "fr_1", 'x', opval);
27383 UHI opval = GET_H_FR_LO (((FLD (f_FRj)) + (1)));
27384 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_0_set, ((FLD (f_FRk)) + (0)), opval);
27385 written |= (1 << 10);
27386 TRACE_RESULT (current_cpu, abuf, "fr_0", 'x', opval);
27392 abuf->written = written;
27397 /* cmhtob: cmhtob$pack $FRintjeven,$FRintk,$CCi,$cond */
27400 SEM_FN_NAME (frvbf,cmhtob) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27402 #define FLD(f) abuf->fields.sfmt_cmhtob.f
27403 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27404 int UNUSED written = 0;
27405 IADDR UNUSED pc = abuf->addr;
27406 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27410 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27411 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27412 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27415 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27416 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27417 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27419 if (ANDSI (FLD (f_FRj), SUBSI (2, 1))) {
27420 frvbf_media_register_not_aligned (current_cpu);
27422 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
27425 UHI opval = GET_H_FR_HI (((FLD (f_FRj)) + (0)));
27426 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_3_set, ((FLD (f_FRk)) + (0)), opval);
27427 written |= (1 << 15);
27428 TRACE_RESULT (current_cpu, abuf, "fr_3", 'x', opval);
27431 UHI opval = GET_H_FR_LO (((FLD (f_FRj)) + (0)));
27432 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_2_set, ((FLD (f_FRk)) + (0)), opval);
27433 written |= (1 << 14);
27434 TRACE_RESULT (current_cpu, abuf, "fr_2", 'x', opval);
27437 UHI opval = GET_H_FR_HI (((FLD (f_FRj)) + (1)));
27438 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_1_set, ((FLD (f_FRk)) + (0)), opval);
27439 written |= (1 << 13);
27440 TRACE_RESULT (current_cpu, abuf, "fr_1", 'x', opval);
27443 UHI opval = GET_H_FR_LO (((FLD (f_FRj)) + (1)));
27444 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_0_set, ((FLD (f_FRk)) + (0)), opval);
27445 written |= (1 << 12);
27446 TRACE_RESULT (current_cpu, abuf, "fr_0", 'x', opval);
27453 abuf->written = written;
27458 /* mbtohe: mbtohe$pack $FRintj,$FRintk */
27461 SEM_FN_NAME (frvbf,mbtohe) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27463 #define FLD(f) abuf->fields.sfmt_cmbtohe.f
27464 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27465 int UNUSED written = 0;
27466 IADDR UNUSED pc = abuf->addr;
27467 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27471 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27472 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27473 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27476 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27477 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27478 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27480 if (ANDSI (FLD (f_FRk), SUBSI (4, 1))) {
27481 frvbf_media_register_not_aligned (current_cpu);
27485 UHI opval = GET_H_FR_3 (((FLD (f_FRj)) + (0)));
27486 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27487 written |= (1 << 10);
27488 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27491 UHI opval = GET_H_FR_3 (((FLD (f_FRj)) + (0)));
27492 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27493 written |= (1 << 14);
27494 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27497 UHI opval = GET_H_FR_2 (((FLD (f_FRj)) + (0)));
27498 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
27499 written |= (1 << 11);
27500 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27503 UHI opval = GET_H_FR_2 (((FLD (f_FRj)) + (0)));
27504 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
27505 written |= (1 << 15);
27506 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27509 UHI opval = GET_H_FR_1 (((FLD (f_FRj)) + (0)));
27510 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (2)), opval);
27511 written |= (1 << 12);
27512 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27515 UHI opval = GET_H_FR_1 (((FLD (f_FRj)) + (0)));
27516 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (2)), opval);
27517 written |= (1 << 16);
27518 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27521 UHI opval = GET_H_FR_0 (((FLD (f_FRj)) + (0)));
27522 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (3)), opval);
27523 written |= (1 << 13);
27524 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27527 UHI opval = GET_H_FR_0 (((FLD (f_FRj)) + (0)));
27528 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (3)), opval);
27529 written |= (1 << 17);
27530 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27536 abuf->written = written;
27541 /* cmbtohe: cmbtohe$pack $FRintj,$FRintk,$CCi,$cond */
27544 SEM_FN_NAME (frvbf,cmbtohe) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27546 #define FLD(f) abuf->fields.sfmt_cmbtohe.f
27547 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27548 int UNUSED written = 0;
27549 IADDR UNUSED pc = abuf->addr;
27550 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27554 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27555 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27556 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27559 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27560 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27561 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27563 if (ANDSI (FLD (f_FRk), SUBSI (4, 1))) {
27564 frvbf_media_register_not_aligned (current_cpu);
27566 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
27569 UHI opval = GET_H_FR_3 (((FLD (f_FRj)) + (0)));
27570 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27571 written |= (1 << 12);
27572 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27575 UHI opval = GET_H_FR_3 (((FLD (f_FRj)) + (0)));
27576 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27577 written |= (1 << 16);
27578 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27581 UHI opval = GET_H_FR_2 (((FLD (f_FRj)) + (0)));
27582 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
27583 written |= (1 << 13);
27584 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27587 UHI opval = GET_H_FR_2 (((FLD (f_FRj)) + (0)));
27588 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
27589 written |= (1 << 17);
27590 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27593 UHI opval = GET_H_FR_1 (((FLD (f_FRj)) + (0)));
27594 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (2)), opval);
27595 written |= (1 << 14);
27596 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27599 UHI opval = GET_H_FR_1 (((FLD (f_FRj)) + (0)));
27600 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (2)), opval);
27601 written |= (1 << 18);
27602 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27605 UHI opval = GET_H_FR_0 (((FLD (f_FRj)) + (0)));
27606 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (3)), opval);
27607 written |= (1 << 15);
27608 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27611 UHI opval = GET_H_FR_0 (((FLD (f_FRj)) + (0)));
27612 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (3)), opval);
27613 written |= (1 << 19);
27614 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27621 abuf->written = written;
27626 /* mnop: mnop$pack */
27629 SEM_FN_NAME (frvbf,mnop) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27631 #define FLD(f) abuf->fields.fmt_empty.f
27632 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27633 int UNUSED written = 0;
27634 IADDR UNUSED pc = abuf->addr;
27635 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27637 ((void) 0); /*nop*/
27643 /* mclracc-0: mclracc$pack $ACC40Sk,$A0 */
27646 SEM_FN_NAME (frvbf,mclracc_0) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27648 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
27649 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27650 int UNUSED written = 0;
27651 IADDR UNUSED pc = abuf->addr;
27652 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27654 frvbf_clear_accumulators (current_cpu, FLD (f_ACC40Sk), 0);
27660 /* mclracc-1: mclracc$pack $ACC40Sk,$A1 */
27663 SEM_FN_NAME (frvbf,mclracc_1) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27665 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
27666 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27667 int UNUSED written = 0;
27668 IADDR UNUSED pc = abuf->addr;
27669 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27671 frvbf_clear_accumulators (current_cpu, FLD (f_ACC40Sk), 1);
27677 /* mrdacc: mrdacc$pack $ACC40Si,$FRintk */
27680 SEM_FN_NAME (frvbf,mrdacc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27682 #define FLD(f) abuf->fields.sfmt_mcuti.f
27683 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27684 int UNUSED written = 0;
27685 IADDR UNUSED pc = abuf->addr;
27686 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27689 SI opval = GET_H_ACC40S (FLD (f_ACC40Si));
27690 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27691 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27698 /* mrdaccg: mrdaccg$pack $ACCGi,$FRintk */
27701 SEM_FN_NAME (frvbf,mrdaccg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27703 #define FLD(f) abuf->fields.sfmt_mrdaccg.f
27704 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27705 int UNUSED written = 0;
27706 IADDR UNUSED pc = abuf->addr;
27707 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27710 SI opval = GET_H_ACCG (FLD (f_ACCGi));
27711 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27712 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27719 /* mwtacc: mwtacc$pack $FRinti,$ACC40Sk */
27722 SEM_FN_NAME (frvbf,mwtacc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27724 #define FLD(f) abuf->fields.sfmt_cmmachs.f
27725 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27726 int UNUSED written = 0;
27727 IADDR UNUSED pc = abuf->addr;
27728 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27731 DI opval = ORDI (ANDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MAKEDI (0xffffffff, 0)), GET_H_FR_INT (FLD (f_FRi)));
27732 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
27733 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
27740 /* mwtaccg: mwtaccg$pack $FRinti,$ACCGk */
27743 SEM_FN_NAME (frvbf,mwtaccg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27745 #define FLD(f) abuf->fields.sfmt_mwtaccg.f
27746 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27747 int UNUSED written = 0;
27748 IADDR UNUSED pc = abuf->addr;
27749 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27752 frv_ref_SI (GET_H_ACCG (FLD (f_ACCGk)));
27754 USI opval = GET_H_FR_INT (FLD (f_FRi));
27755 sim_queue_fn_si_write (current_cpu, frvbf_h_accg_set, FLD (f_ACCGk), opval);
27756 TRACE_RESULT (current_cpu, abuf, "accg", 'x', opval);
27764 /* mcop1: mcop1$pack $FRi,$FRj,$FRk */
27767 SEM_FN_NAME (frvbf,mcop1) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27769 #define FLD(f) abuf->fields.fmt_empty.f
27770 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27771 int UNUSED written = 0;
27772 IADDR UNUSED pc = abuf->addr;
27773 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27775 frvbf_media_cop (current_cpu, 1);
27781 /* mcop2: mcop2$pack $FRi,$FRj,$FRk */
27784 SEM_FN_NAME (frvbf,mcop2) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27786 #define FLD(f) abuf->fields.fmt_empty.f
27787 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27788 int UNUSED written = 0;
27789 IADDR UNUSED pc = abuf->addr;
27790 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27792 frvbf_media_cop (current_cpu, 2);
27798 /* fnop: fnop$pack */
27801 SEM_FN_NAME (frvbf,fnop) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27803 #define FLD(f) abuf->fields.fmt_empty.f
27804 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27805 int UNUSED written = 0;
27806 IADDR UNUSED pc = abuf->addr;
27807 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27809 ((void) 0); /*nop*/
27815 /* Table of all semantic fns. */
27817 static const struct sem_fn_desc sem_fns[] = {
27818 { FRVBF_INSN_X_INVALID, SEM_FN_NAME (frvbf,x_invalid) },
27819 { FRVBF_INSN_X_AFTER, SEM_FN_NAME (frvbf,x_after) },
27820 { FRVBF_INSN_X_BEFORE, SEM_FN_NAME (frvbf,x_before) },
27821 { FRVBF_INSN_X_CTI_CHAIN, SEM_FN_NAME (frvbf,x_cti_chain) },
27822 { FRVBF_INSN_X_CHAIN, SEM_FN_NAME (frvbf,x_chain) },
27823 { FRVBF_INSN_X_BEGIN, SEM_FN_NAME (frvbf,x_begin) },
27824 { FRVBF_INSN_ADD, SEM_FN_NAME (frvbf,add) },
27825 { FRVBF_INSN_SUB, SEM_FN_NAME (frvbf,sub) },
27826 { FRVBF_INSN_AND, SEM_FN_NAME (frvbf,and) },
27827 { FRVBF_INSN_OR, SEM_FN_NAME (frvbf,or) },
27828 { FRVBF_INSN_XOR, SEM_FN_NAME (frvbf,xor) },
27829 { FRVBF_INSN_NOT, SEM_FN_NAME (frvbf,not) },
27830 { FRVBF_INSN_SDIV, SEM_FN_NAME (frvbf,sdiv) },
27831 { FRVBF_INSN_NSDIV, SEM_FN_NAME (frvbf,nsdiv) },
27832 { FRVBF_INSN_UDIV, SEM_FN_NAME (frvbf,udiv) },
27833 { FRVBF_INSN_NUDIV, SEM_FN_NAME (frvbf,nudiv) },
27834 { FRVBF_INSN_SMUL, SEM_FN_NAME (frvbf,smul) },
27835 { FRVBF_INSN_UMUL, SEM_FN_NAME (frvbf,umul) },
27836 { FRVBF_INSN_SLL, SEM_FN_NAME (frvbf,sll) },
27837 { FRVBF_INSN_SRL, SEM_FN_NAME (frvbf,srl) },
27838 { FRVBF_INSN_SRA, SEM_FN_NAME (frvbf,sra) },
27839 { FRVBF_INSN_SCAN, SEM_FN_NAME (frvbf,scan) },
27840 { FRVBF_INSN_CADD, SEM_FN_NAME (frvbf,cadd) },
27841 { FRVBF_INSN_CSUB, SEM_FN_NAME (frvbf,csub) },
27842 { FRVBF_INSN_CAND, SEM_FN_NAME (frvbf,cand) },
27843 { FRVBF_INSN_COR, SEM_FN_NAME (frvbf,cor) },
27844 { FRVBF_INSN_CXOR, SEM_FN_NAME (frvbf,cxor) },
27845 { FRVBF_INSN_CNOT, SEM_FN_NAME (frvbf,cnot) },
27846 { FRVBF_INSN_CSMUL, SEM_FN_NAME (frvbf,csmul) },
27847 { FRVBF_INSN_CSDIV, SEM_FN_NAME (frvbf,csdiv) },
27848 { FRVBF_INSN_CUDIV, SEM_FN_NAME (frvbf,cudiv) },
27849 { FRVBF_INSN_CSLL, SEM_FN_NAME (frvbf,csll) },
27850 { FRVBF_INSN_CSRL, SEM_FN_NAME (frvbf,csrl) },
27851 { FRVBF_INSN_CSRA, SEM_FN_NAME (frvbf,csra) },
27852 { FRVBF_INSN_CSCAN, SEM_FN_NAME (frvbf,cscan) },
27853 { FRVBF_INSN_ADDCC, SEM_FN_NAME (frvbf,addcc) },
27854 { FRVBF_INSN_SUBCC, SEM_FN_NAME (frvbf,subcc) },
27855 { FRVBF_INSN_ANDCC, SEM_FN_NAME (frvbf,andcc) },
27856 { FRVBF_INSN_ORCC, SEM_FN_NAME (frvbf,orcc) },
27857 { FRVBF_INSN_XORCC, SEM_FN_NAME (frvbf,xorcc) },
27858 { FRVBF_INSN_SLLCC, SEM_FN_NAME (frvbf,sllcc) },
27859 { FRVBF_INSN_SRLCC, SEM_FN_NAME (frvbf,srlcc) },
27860 { FRVBF_INSN_SRACC, SEM_FN_NAME (frvbf,sracc) },
27861 { FRVBF_INSN_SMULCC, SEM_FN_NAME (frvbf,smulcc) },
27862 { FRVBF_INSN_UMULCC, SEM_FN_NAME (frvbf,umulcc) },
27863 { FRVBF_INSN_CADDCC, SEM_FN_NAME (frvbf,caddcc) },
27864 { FRVBF_INSN_CSUBCC, SEM_FN_NAME (frvbf,csubcc) },
27865 { FRVBF_INSN_CSMULCC, SEM_FN_NAME (frvbf,csmulcc) },
27866 { FRVBF_INSN_CANDCC, SEM_FN_NAME (frvbf,candcc) },
27867 { FRVBF_INSN_CORCC, SEM_FN_NAME (frvbf,corcc) },
27868 { FRVBF_INSN_CXORCC, SEM_FN_NAME (frvbf,cxorcc) },
27869 { FRVBF_INSN_CSLLCC, SEM_FN_NAME (frvbf,csllcc) },
27870 { FRVBF_INSN_CSRLCC, SEM_FN_NAME (frvbf,csrlcc) },
27871 { FRVBF_INSN_CSRACC, SEM_FN_NAME (frvbf,csracc) },
27872 { FRVBF_INSN_ADDX, SEM_FN_NAME (frvbf,addx) },
27873 { FRVBF_INSN_SUBX, SEM_FN_NAME (frvbf,subx) },
27874 { FRVBF_INSN_ADDXCC, SEM_FN_NAME (frvbf,addxcc) },
27875 { FRVBF_INSN_SUBXCC, SEM_FN_NAME (frvbf,subxcc) },
27876 { FRVBF_INSN_ADDI, SEM_FN_NAME (frvbf,addi) },
27877 { FRVBF_INSN_SUBI, SEM_FN_NAME (frvbf,subi) },
27878 { FRVBF_INSN_ANDI, SEM_FN_NAME (frvbf,andi) },
27879 { FRVBF_INSN_ORI, SEM_FN_NAME (frvbf,ori) },
27880 { FRVBF_INSN_XORI, SEM_FN_NAME (frvbf,xori) },
27881 { FRVBF_INSN_SDIVI, SEM_FN_NAME (frvbf,sdivi) },
27882 { FRVBF_INSN_NSDIVI, SEM_FN_NAME (frvbf,nsdivi) },
27883 { FRVBF_INSN_UDIVI, SEM_FN_NAME (frvbf,udivi) },
27884 { FRVBF_INSN_NUDIVI, SEM_FN_NAME (frvbf,nudivi) },
27885 { FRVBF_INSN_SMULI, SEM_FN_NAME (frvbf,smuli) },
27886 { FRVBF_INSN_UMULI, SEM_FN_NAME (frvbf,umuli) },
27887 { FRVBF_INSN_SLLI, SEM_FN_NAME (frvbf,slli) },
27888 { FRVBF_INSN_SRLI, SEM_FN_NAME (frvbf,srli) },
27889 { FRVBF_INSN_SRAI, SEM_FN_NAME (frvbf,srai) },
27890 { FRVBF_INSN_SCANI, SEM_FN_NAME (frvbf,scani) },
27891 { FRVBF_INSN_ADDICC, SEM_FN_NAME (frvbf,addicc) },
27892 { FRVBF_INSN_SUBICC, SEM_FN_NAME (frvbf,subicc) },
27893 { FRVBF_INSN_ANDICC, SEM_FN_NAME (frvbf,andicc) },
27894 { FRVBF_INSN_ORICC, SEM_FN_NAME (frvbf,oricc) },
27895 { FRVBF_INSN_XORICC, SEM_FN_NAME (frvbf,xoricc) },
27896 { FRVBF_INSN_SMULICC, SEM_FN_NAME (frvbf,smulicc) },
27897 { FRVBF_INSN_UMULICC, SEM_FN_NAME (frvbf,umulicc) },
27898 { FRVBF_INSN_SLLICC, SEM_FN_NAME (frvbf,sllicc) },
27899 { FRVBF_INSN_SRLICC, SEM_FN_NAME (frvbf,srlicc) },
27900 { FRVBF_INSN_SRAICC, SEM_FN_NAME (frvbf,sraicc) },
27901 { FRVBF_INSN_ADDXI, SEM_FN_NAME (frvbf,addxi) },
27902 { FRVBF_INSN_SUBXI, SEM_FN_NAME (frvbf,subxi) },
27903 { FRVBF_INSN_ADDXICC, SEM_FN_NAME (frvbf,addxicc) },
27904 { FRVBF_INSN_SUBXICC, SEM_FN_NAME (frvbf,subxicc) },
27905 { FRVBF_INSN_CMPB, SEM_FN_NAME (frvbf,cmpb) },
27906 { FRVBF_INSN_CMPBA, SEM_FN_NAME (frvbf,cmpba) },
27907 { FRVBF_INSN_SETLO, SEM_FN_NAME (frvbf,setlo) },
27908 { FRVBF_INSN_SETHI, SEM_FN_NAME (frvbf,sethi) },
27909 { FRVBF_INSN_SETLOS, SEM_FN_NAME (frvbf,setlos) },
27910 { FRVBF_INSN_LDSB, SEM_FN_NAME (frvbf,ldsb) },
27911 { FRVBF_INSN_LDUB, SEM_FN_NAME (frvbf,ldub) },
27912 { FRVBF_INSN_LDSH, SEM_FN_NAME (frvbf,ldsh) },
27913 { FRVBF_INSN_LDUH, SEM_FN_NAME (frvbf,lduh) },
27914 { FRVBF_INSN_LD, SEM_FN_NAME (frvbf,ld) },
27915 { FRVBF_INSN_LDBF, SEM_FN_NAME (frvbf,ldbf) },
27916 { FRVBF_INSN_LDHF, SEM_FN_NAME (frvbf,ldhf) },
27917 { FRVBF_INSN_LDF, SEM_FN_NAME (frvbf,ldf) },
27918 { FRVBF_INSN_LDC, SEM_FN_NAME (frvbf,ldc) },
27919 { FRVBF_INSN_NLDSB, SEM_FN_NAME (frvbf,nldsb) },
27920 { FRVBF_INSN_NLDUB, SEM_FN_NAME (frvbf,nldub) },
27921 { FRVBF_INSN_NLDSH, SEM_FN_NAME (frvbf,nldsh) },
27922 { FRVBF_INSN_NLDUH, SEM_FN_NAME (frvbf,nlduh) },
27923 { FRVBF_INSN_NLD, SEM_FN_NAME (frvbf,nld) },
27924 { FRVBF_INSN_NLDBF, SEM_FN_NAME (frvbf,nldbf) },
27925 { FRVBF_INSN_NLDHF, SEM_FN_NAME (frvbf,nldhf) },
27926 { FRVBF_INSN_NLDF, SEM_FN_NAME (frvbf,nldf) },
27927 { FRVBF_INSN_LDD, SEM_FN_NAME (frvbf,ldd) },
27928 { FRVBF_INSN_LDDF, SEM_FN_NAME (frvbf,lddf) },
27929 { FRVBF_INSN_LDDC, SEM_FN_NAME (frvbf,lddc) },
27930 { FRVBF_INSN_NLDD, SEM_FN_NAME (frvbf,nldd) },
27931 { FRVBF_INSN_NLDDF, SEM_FN_NAME (frvbf,nlddf) },
27932 { FRVBF_INSN_LDQ, SEM_FN_NAME (frvbf,ldq) },
27933 { FRVBF_INSN_LDQF, SEM_FN_NAME (frvbf,ldqf) },
27934 { FRVBF_INSN_LDQC, SEM_FN_NAME (frvbf,ldqc) },
27935 { FRVBF_INSN_NLDQ, SEM_FN_NAME (frvbf,nldq) },
27936 { FRVBF_INSN_NLDQF, SEM_FN_NAME (frvbf,nldqf) },
27937 { FRVBF_INSN_LDSBU, SEM_FN_NAME (frvbf,ldsbu) },
27938 { FRVBF_INSN_LDUBU, SEM_FN_NAME (frvbf,ldubu) },
27939 { FRVBF_INSN_LDSHU, SEM_FN_NAME (frvbf,ldshu) },
27940 { FRVBF_INSN_LDUHU, SEM_FN_NAME (frvbf,lduhu) },
27941 { FRVBF_INSN_LDU, SEM_FN_NAME (frvbf,ldu) },
27942 { FRVBF_INSN_NLDSBU, SEM_FN_NAME (frvbf,nldsbu) },
27943 { FRVBF_INSN_NLDUBU, SEM_FN_NAME (frvbf,nldubu) },
27944 { FRVBF_INSN_NLDSHU, SEM_FN_NAME (frvbf,nldshu) },
27945 { FRVBF_INSN_NLDUHU, SEM_FN_NAME (frvbf,nlduhu) },
27946 { FRVBF_INSN_NLDU, SEM_FN_NAME (frvbf,nldu) },
27947 { FRVBF_INSN_LDBFU, SEM_FN_NAME (frvbf,ldbfu) },
27948 { FRVBF_INSN_LDHFU, SEM_FN_NAME (frvbf,ldhfu) },
27949 { FRVBF_INSN_LDFU, SEM_FN_NAME (frvbf,ldfu) },
27950 { FRVBF_INSN_LDCU, SEM_FN_NAME (frvbf,ldcu) },
27951 { FRVBF_INSN_NLDBFU, SEM_FN_NAME (frvbf,nldbfu) },
27952 { FRVBF_INSN_NLDHFU, SEM_FN_NAME (frvbf,nldhfu) },
27953 { FRVBF_INSN_NLDFU, SEM_FN_NAME (frvbf,nldfu) },
27954 { FRVBF_INSN_LDDU, SEM_FN_NAME (frvbf,lddu) },
27955 { FRVBF_INSN_NLDDU, SEM_FN_NAME (frvbf,nlddu) },
27956 { FRVBF_INSN_LDDFU, SEM_FN_NAME (frvbf,lddfu) },
27957 { FRVBF_INSN_LDDCU, SEM_FN_NAME (frvbf,lddcu) },
27958 { FRVBF_INSN_NLDDFU, SEM_FN_NAME (frvbf,nlddfu) },
27959 { FRVBF_INSN_LDQU, SEM_FN_NAME (frvbf,ldqu) },
27960 { FRVBF_INSN_NLDQU, SEM_FN_NAME (frvbf,nldqu) },
27961 { FRVBF_INSN_LDQFU, SEM_FN_NAME (frvbf,ldqfu) },
27962 { FRVBF_INSN_LDQCU, SEM_FN_NAME (frvbf,ldqcu) },
27963 { FRVBF_INSN_NLDQFU, SEM_FN_NAME (frvbf,nldqfu) },
27964 { FRVBF_INSN_LDSBI, SEM_FN_NAME (frvbf,ldsbi) },
27965 { FRVBF_INSN_LDSHI, SEM_FN_NAME (frvbf,ldshi) },
27966 { FRVBF_INSN_LDI, SEM_FN_NAME (frvbf,ldi) },
27967 { FRVBF_INSN_LDUBI, SEM_FN_NAME (frvbf,ldubi) },
27968 { FRVBF_INSN_LDUHI, SEM_FN_NAME (frvbf,lduhi) },
27969 { FRVBF_INSN_LDBFI, SEM_FN_NAME (frvbf,ldbfi) },
27970 { FRVBF_INSN_LDHFI, SEM_FN_NAME (frvbf,ldhfi) },
27971 { FRVBF_INSN_LDFI, SEM_FN_NAME (frvbf,ldfi) },
27972 { FRVBF_INSN_NLDSBI, SEM_FN_NAME (frvbf,nldsbi) },
27973 { FRVBF_INSN_NLDUBI, SEM_FN_NAME (frvbf,nldubi) },
27974 { FRVBF_INSN_NLDSHI, SEM_FN_NAME (frvbf,nldshi) },
27975 { FRVBF_INSN_NLDUHI, SEM_FN_NAME (frvbf,nlduhi) },
27976 { FRVBF_INSN_NLDI, SEM_FN_NAME (frvbf,nldi) },
27977 { FRVBF_INSN_NLDBFI, SEM_FN_NAME (frvbf,nldbfi) },
27978 { FRVBF_INSN_NLDHFI, SEM_FN_NAME (frvbf,nldhfi) },
27979 { FRVBF_INSN_NLDFI, SEM_FN_NAME (frvbf,nldfi) },
27980 { FRVBF_INSN_LDDI, SEM_FN_NAME (frvbf,lddi) },
27981 { FRVBF_INSN_LDDFI, SEM_FN_NAME (frvbf,lddfi) },
27982 { FRVBF_INSN_NLDDI, SEM_FN_NAME (frvbf,nlddi) },
27983 { FRVBF_INSN_NLDDFI, SEM_FN_NAME (frvbf,nlddfi) },
27984 { FRVBF_INSN_LDQI, SEM_FN_NAME (frvbf,ldqi) },
27985 { FRVBF_INSN_LDQFI, SEM_FN_NAME (frvbf,ldqfi) },
27986 { FRVBF_INSN_NLDQFI, SEM_FN_NAME (frvbf,nldqfi) },
27987 { FRVBF_INSN_STB, SEM_FN_NAME (frvbf,stb) },
27988 { FRVBF_INSN_STH, SEM_FN_NAME (frvbf,sth) },
27989 { FRVBF_INSN_ST, SEM_FN_NAME (frvbf,st) },
27990 { FRVBF_INSN_STBF, SEM_FN_NAME (frvbf,stbf) },
27991 { FRVBF_INSN_STHF, SEM_FN_NAME (frvbf,sthf) },
27992 { FRVBF_INSN_STF, SEM_FN_NAME (frvbf,stf) },
27993 { FRVBF_INSN_STC, SEM_FN_NAME (frvbf,stc) },
27994 { FRVBF_INSN_RSTB, SEM_FN_NAME (frvbf,rstb) },
27995 { FRVBF_INSN_RSTH, SEM_FN_NAME (frvbf,rsth) },
27996 { FRVBF_INSN_RST, SEM_FN_NAME (frvbf,rst) },
27997 { FRVBF_INSN_RSTBF, SEM_FN_NAME (frvbf,rstbf) },
27998 { FRVBF_INSN_RSTHF, SEM_FN_NAME (frvbf,rsthf) },
27999 { FRVBF_INSN_RSTF, SEM_FN_NAME (frvbf,rstf) },
28000 { FRVBF_INSN_STD, SEM_FN_NAME (frvbf,std) },
28001 { FRVBF_INSN_STDF, SEM_FN_NAME (frvbf,stdf) },
28002 { FRVBF_INSN_STDC, SEM_FN_NAME (frvbf,stdc) },
28003 { FRVBF_INSN_RSTD, SEM_FN_NAME (frvbf,rstd) },
28004 { FRVBF_INSN_RSTDF, SEM_FN_NAME (frvbf,rstdf) },
28005 { FRVBF_INSN_STQ, SEM_FN_NAME (frvbf,stq) },
28006 { FRVBF_INSN_STQF, SEM_FN_NAME (frvbf,stqf) },
28007 { FRVBF_INSN_STQC, SEM_FN_NAME (frvbf,stqc) },
28008 { FRVBF_INSN_RSTQ, SEM_FN_NAME (frvbf,rstq) },
28009 { FRVBF_INSN_RSTQF, SEM_FN_NAME (frvbf,rstqf) },
28010 { FRVBF_INSN_STBU, SEM_FN_NAME (frvbf,stbu) },
28011 { FRVBF_INSN_STHU, SEM_FN_NAME (frvbf,sthu) },
28012 { FRVBF_INSN_STU, SEM_FN_NAME (frvbf,stu) },
28013 { FRVBF_INSN_STBFU, SEM_FN_NAME (frvbf,stbfu) },
28014 { FRVBF_INSN_STHFU, SEM_FN_NAME (frvbf,sthfu) },
28015 { FRVBF_INSN_STFU, SEM_FN_NAME (frvbf,stfu) },
28016 { FRVBF_INSN_STCU, SEM_FN_NAME (frvbf,stcu) },
28017 { FRVBF_INSN_STDU, SEM_FN_NAME (frvbf,stdu) },
28018 { FRVBF_INSN_STDFU, SEM_FN_NAME (frvbf,stdfu) },
28019 { FRVBF_INSN_STDCU, SEM_FN_NAME (frvbf,stdcu) },
28020 { FRVBF_INSN_STQU, SEM_FN_NAME (frvbf,stqu) },
28021 { FRVBF_INSN_STQFU, SEM_FN_NAME (frvbf,stqfu) },
28022 { FRVBF_INSN_STQCU, SEM_FN_NAME (frvbf,stqcu) },
28023 { FRVBF_INSN_CLDSB, SEM_FN_NAME (frvbf,cldsb) },
28024 { FRVBF_INSN_CLDUB, SEM_FN_NAME (frvbf,cldub) },
28025 { FRVBF_INSN_CLDSH, SEM_FN_NAME (frvbf,cldsh) },
28026 { FRVBF_INSN_CLDUH, SEM_FN_NAME (frvbf,clduh) },
28027 { FRVBF_INSN_CLD, SEM_FN_NAME (frvbf,cld) },
28028 { FRVBF_INSN_CLDBF, SEM_FN_NAME (frvbf,cldbf) },
28029 { FRVBF_INSN_CLDHF, SEM_FN_NAME (frvbf,cldhf) },
28030 { FRVBF_INSN_CLDF, SEM_FN_NAME (frvbf,cldf) },
28031 { FRVBF_INSN_CLDD, SEM_FN_NAME (frvbf,cldd) },
28032 { FRVBF_INSN_CLDDF, SEM_FN_NAME (frvbf,clddf) },
28033 { FRVBF_INSN_CLDQ, SEM_FN_NAME (frvbf,cldq) },
28034 { FRVBF_INSN_CLDSBU, SEM_FN_NAME (frvbf,cldsbu) },
28035 { FRVBF_INSN_CLDUBU, SEM_FN_NAME (frvbf,cldubu) },
28036 { FRVBF_INSN_CLDSHU, SEM_FN_NAME (frvbf,cldshu) },
28037 { FRVBF_INSN_CLDUHU, SEM_FN_NAME (frvbf,clduhu) },
28038 { FRVBF_INSN_CLDU, SEM_FN_NAME (frvbf,cldu) },
28039 { FRVBF_INSN_CLDBFU, SEM_FN_NAME (frvbf,cldbfu) },
28040 { FRVBF_INSN_CLDHFU, SEM_FN_NAME (frvbf,cldhfu) },
28041 { FRVBF_INSN_CLDFU, SEM_FN_NAME (frvbf,cldfu) },
28042 { FRVBF_INSN_CLDDU, SEM_FN_NAME (frvbf,clddu) },
28043 { FRVBF_INSN_CLDDFU, SEM_FN_NAME (frvbf,clddfu) },
28044 { FRVBF_INSN_CLDQU, SEM_FN_NAME (frvbf,cldqu) },
28045 { FRVBF_INSN_CSTB, SEM_FN_NAME (frvbf,cstb) },
28046 { FRVBF_INSN_CSTH, SEM_FN_NAME (frvbf,csth) },
28047 { FRVBF_INSN_CST, SEM_FN_NAME (frvbf,cst) },
28048 { FRVBF_INSN_CSTBF, SEM_FN_NAME (frvbf,cstbf) },
28049 { FRVBF_INSN_CSTHF, SEM_FN_NAME (frvbf,csthf) },
28050 { FRVBF_INSN_CSTF, SEM_FN_NAME (frvbf,cstf) },
28051 { FRVBF_INSN_CSTD, SEM_FN_NAME (frvbf,cstd) },
28052 { FRVBF_INSN_CSTDF, SEM_FN_NAME (frvbf,cstdf) },
28053 { FRVBF_INSN_CSTQ, SEM_FN_NAME (frvbf,cstq) },
28054 { FRVBF_INSN_CSTBU, SEM_FN_NAME (frvbf,cstbu) },
28055 { FRVBF_INSN_CSTHU, SEM_FN_NAME (frvbf,csthu) },
28056 { FRVBF_INSN_CSTU, SEM_FN_NAME (frvbf,cstu) },
28057 { FRVBF_INSN_CSTBFU, SEM_FN_NAME (frvbf,cstbfu) },
28058 { FRVBF_INSN_CSTHFU, SEM_FN_NAME (frvbf,csthfu) },
28059 { FRVBF_INSN_CSTFU, SEM_FN_NAME (frvbf,cstfu) },
28060 { FRVBF_INSN_CSTDU, SEM_FN_NAME (frvbf,cstdu) },
28061 { FRVBF_INSN_CSTDFU, SEM_FN_NAME (frvbf,cstdfu) },
28062 { FRVBF_INSN_STBI, SEM_FN_NAME (frvbf,stbi) },
28063 { FRVBF_INSN_STHI, SEM_FN_NAME (frvbf,sthi) },
28064 { FRVBF_INSN_STI, SEM_FN_NAME (frvbf,sti) },
28065 { FRVBF_INSN_STBFI, SEM_FN_NAME (frvbf,stbfi) },
28066 { FRVBF_INSN_STHFI, SEM_FN_NAME (frvbf,sthfi) },
28067 { FRVBF_INSN_STFI, SEM_FN_NAME (frvbf,stfi) },
28068 { FRVBF_INSN_STDI, SEM_FN_NAME (frvbf,stdi) },
28069 { FRVBF_INSN_STDFI, SEM_FN_NAME (frvbf,stdfi) },
28070 { FRVBF_INSN_STQI, SEM_FN_NAME (frvbf,stqi) },
28071 { FRVBF_INSN_STQFI, SEM_FN_NAME (frvbf,stqfi) },
28072 { FRVBF_INSN_SWAP, SEM_FN_NAME (frvbf,swap) },
28073 { FRVBF_INSN_SWAPI, SEM_FN_NAME (frvbf,swapi) },
28074 { FRVBF_INSN_CSWAP, SEM_FN_NAME (frvbf,cswap) },
28075 { FRVBF_INSN_MOVGF, SEM_FN_NAME (frvbf,movgf) },
28076 { FRVBF_INSN_MOVFG, SEM_FN_NAME (frvbf,movfg) },
28077 { FRVBF_INSN_MOVGFD, SEM_FN_NAME (frvbf,movgfd) },
28078 { FRVBF_INSN_MOVFGD, SEM_FN_NAME (frvbf,movfgd) },
28079 { FRVBF_INSN_MOVGFQ, SEM_FN_NAME (frvbf,movgfq) },
28080 { FRVBF_INSN_MOVFGQ, SEM_FN_NAME (frvbf,movfgq) },
28081 { FRVBF_INSN_CMOVGF, SEM_FN_NAME (frvbf,cmovgf) },
28082 { FRVBF_INSN_CMOVFG, SEM_FN_NAME (frvbf,cmovfg) },
28083 { FRVBF_INSN_CMOVGFD, SEM_FN_NAME (frvbf,cmovgfd) },
28084 { FRVBF_INSN_CMOVFGD, SEM_FN_NAME (frvbf,cmovfgd) },
28085 { FRVBF_INSN_MOVGS, SEM_FN_NAME (frvbf,movgs) },
28086 { FRVBF_INSN_MOVSG, SEM_FN_NAME (frvbf,movsg) },
28087 { FRVBF_INSN_BRA, SEM_FN_NAME (frvbf,bra) },
28088 { FRVBF_INSN_BNO, SEM_FN_NAME (frvbf,bno) },
28089 { FRVBF_INSN_BEQ, SEM_FN_NAME (frvbf,beq) },
28090 { FRVBF_INSN_BNE, SEM_FN_NAME (frvbf,bne) },
28091 { FRVBF_INSN_BLE, SEM_FN_NAME (frvbf,ble) },
28092 { FRVBF_INSN_BGT, SEM_FN_NAME (frvbf,bgt) },
28093 { FRVBF_INSN_BLT, SEM_FN_NAME (frvbf,blt) },
28094 { FRVBF_INSN_BGE, SEM_FN_NAME (frvbf,bge) },
28095 { FRVBF_INSN_BLS, SEM_FN_NAME (frvbf,bls) },
28096 { FRVBF_INSN_BHI, SEM_FN_NAME (frvbf,bhi) },
28097 { FRVBF_INSN_BC, SEM_FN_NAME (frvbf,bc) },
28098 { FRVBF_INSN_BNC, SEM_FN_NAME (frvbf,bnc) },
28099 { FRVBF_INSN_BN, SEM_FN_NAME (frvbf,bn) },
28100 { FRVBF_INSN_BP, SEM_FN_NAME (frvbf,bp) },
28101 { FRVBF_INSN_BV, SEM_FN_NAME (frvbf,bv) },
28102 { FRVBF_INSN_BNV, SEM_FN_NAME (frvbf,bnv) },
28103 { FRVBF_INSN_FBRA, SEM_FN_NAME (frvbf,fbra) },
28104 { FRVBF_INSN_FBNO, SEM_FN_NAME (frvbf,fbno) },
28105 { FRVBF_INSN_FBNE, SEM_FN_NAME (frvbf,fbne) },
28106 { FRVBF_INSN_FBEQ, SEM_FN_NAME (frvbf,fbeq) },
28107 { FRVBF_INSN_FBLG, SEM_FN_NAME (frvbf,fblg) },
28108 { FRVBF_INSN_FBUE, SEM_FN_NAME (frvbf,fbue) },
28109 { FRVBF_INSN_FBUL, SEM_FN_NAME (frvbf,fbul) },
28110 { FRVBF_INSN_FBGE, SEM_FN_NAME (frvbf,fbge) },
28111 { FRVBF_INSN_FBLT, SEM_FN_NAME (frvbf,fblt) },
28112 { FRVBF_INSN_FBUGE, SEM_FN_NAME (frvbf,fbuge) },
28113 { FRVBF_INSN_FBUG, SEM_FN_NAME (frvbf,fbug) },
28114 { FRVBF_INSN_FBLE, SEM_FN_NAME (frvbf,fble) },
28115 { FRVBF_INSN_FBGT, SEM_FN_NAME (frvbf,fbgt) },
28116 { FRVBF_INSN_FBULE, SEM_FN_NAME (frvbf,fbule) },
28117 { FRVBF_INSN_FBU, SEM_FN_NAME (frvbf,fbu) },
28118 { FRVBF_INSN_FBO, SEM_FN_NAME (frvbf,fbo) },
28119 { FRVBF_INSN_BCTRLR, SEM_FN_NAME (frvbf,bctrlr) },
28120 { FRVBF_INSN_BRALR, SEM_FN_NAME (frvbf,bralr) },
28121 { FRVBF_INSN_BNOLR, SEM_FN_NAME (frvbf,bnolr) },
28122 { FRVBF_INSN_BEQLR, SEM_FN_NAME (frvbf,beqlr) },
28123 { FRVBF_INSN_BNELR, SEM_FN_NAME (frvbf,bnelr) },
28124 { FRVBF_INSN_BLELR, SEM_FN_NAME (frvbf,blelr) },
28125 { FRVBF_INSN_BGTLR, SEM_FN_NAME (frvbf,bgtlr) },
28126 { FRVBF_INSN_BLTLR, SEM_FN_NAME (frvbf,bltlr) },
28127 { FRVBF_INSN_BGELR, SEM_FN_NAME (frvbf,bgelr) },
28128 { FRVBF_INSN_BLSLR, SEM_FN_NAME (frvbf,blslr) },
28129 { FRVBF_INSN_BHILR, SEM_FN_NAME (frvbf,bhilr) },
28130 { FRVBF_INSN_BCLR, SEM_FN_NAME (frvbf,bclr) },
28131 { FRVBF_INSN_BNCLR, SEM_FN_NAME (frvbf,bnclr) },
28132 { FRVBF_INSN_BNLR, SEM_FN_NAME (frvbf,bnlr) },
28133 { FRVBF_INSN_BPLR, SEM_FN_NAME (frvbf,bplr) },
28134 { FRVBF_INSN_BVLR, SEM_FN_NAME (frvbf,bvlr) },
28135 { FRVBF_INSN_BNVLR, SEM_FN_NAME (frvbf,bnvlr) },
28136 { FRVBF_INSN_FBRALR, SEM_FN_NAME (frvbf,fbralr) },
28137 { FRVBF_INSN_FBNOLR, SEM_FN_NAME (frvbf,fbnolr) },
28138 { FRVBF_INSN_FBEQLR, SEM_FN_NAME (frvbf,fbeqlr) },
28139 { FRVBF_INSN_FBNELR, SEM_FN_NAME (frvbf,fbnelr) },
28140 { FRVBF_INSN_FBLGLR, SEM_FN_NAME (frvbf,fblglr) },
28141 { FRVBF_INSN_FBUELR, SEM_FN_NAME (frvbf,fbuelr) },
28142 { FRVBF_INSN_FBULLR, SEM_FN_NAME (frvbf,fbullr) },
28143 { FRVBF_INSN_FBGELR, SEM_FN_NAME (frvbf,fbgelr) },
28144 { FRVBF_INSN_FBLTLR, SEM_FN_NAME (frvbf,fbltlr) },
28145 { FRVBF_INSN_FBUGELR, SEM_FN_NAME (frvbf,fbugelr) },
28146 { FRVBF_INSN_FBUGLR, SEM_FN_NAME (frvbf,fbuglr) },
28147 { FRVBF_INSN_FBLELR, SEM_FN_NAME (frvbf,fblelr) },
28148 { FRVBF_INSN_FBGTLR, SEM_FN_NAME (frvbf,fbgtlr) },
28149 { FRVBF_INSN_FBULELR, SEM_FN_NAME (frvbf,fbulelr) },
28150 { FRVBF_INSN_FBULR, SEM_FN_NAME (frvbf,fbulr) },
28151 { FRVBF_INSN_FBOLR, SEM_FN_NAME (frvbf,fbolr) },
28152 { FRVBF_INSN_BCRALR, SEM_FN_NAME (frvbf,bcralr) },
28153 { FRVBF_INSN_BCNOLR, SEM_FN_NAME (frvbf,bcnolr) },
28154 { FRVBF_INSN_BCEQLR, SEM_FN_NAME (frvbf,bceqlr) },
28155 { FRVBF_INSN_BCNELR, SEM_FN_NAME (frvbf,bcnelr) },
28156 { FRVBF_INSN_BCLELR, SEM_FN_NAME (frvbf,bclelr) },
28157 { FRVBF_INSN_BCGTLR, SEM_FN_NAME (frvbf,bcgtlr) },
28158 { FRVBF_INSN_BCLTLR, SEM_FN_NAME (frvbf,bcltlr) },
28159 { FRVBF_INSN_BCGELR, SEM_FN_NAME (frvbf,bcgelr) },
28160 { FRVBF_INSN_BCLSLR, SEM_FN_NAME (frvbf,bclslr) },
28161 { FRVBF_INSN_BCHILR, SEM_FN_NAME (frvbf,bchilr) },
28162 { FRVBF_INSN_BCCLR, SEM_FN_NAME (frvbf,bcclr) },
28163 { FRVBF_INSN_BCNCLR, SEM_FN_NAME (frvbf,bcnclr) },
28164 { FRVBF_INSN_BCNLR, SEM_FN_NAME (frvbf,bcnlr) },
28165 { FRVBF_INSN_BCPLR, SEM_FN_NAME (frvbf,bcplr) },
28166 { FRVBF_INSN_BCVLR, SEM_FN_NAME (frvbf,bcvlr) },
28167 { FRVBF_INSN_BCNVLR, SEM_FN_NAME (frvbf,bcnvlr) },
28168 { FRVBF_INSN_FCBRALR, SEM_FN_NAME (frvbf,fcbralr) },
28169 { FRVBF_INSN_FCBNOLR, SEM_FN_NAME (frvbf,fcbnolr) },
28170 { FRVBF_INSN_FCBEQLR, SEM_FN_NAME (frvbf,fcbeqlr) },
28171 { FRVBF_INSN_FCBNELR, SEM_FN_NAME (frvbf,fcbnelr) },
28172 { FRVBF_INSN_FCBLGLR, SEM_FN_NAME (frvbf,fcblglr) },
28173 { FRVBF_INSN_FCBUELR, SEM_FN_NAME (frvbf,fcbuelr) },
28174 { FRVBF_INSN_FCBULLR, SEM_FN_NAME (frvbf,fcbullr) },
28175 { FRVBF_INSN_FCBGELR, SEM_FN_NAME (frvbf,fcbgelr) },
28176 { FRVBF_INSN_FCBLTLR, SEM_FN_NAME (frvbf,fcbltlr) },
28177 { FRVBF_INSN_FCBUGELR, SEM_FN_NAME (frvbf,fcbugelr) },
28178 { FRVBF_INSN_FCBUGLR, SEM_FN_NAME (frvbf,fcbuglr) },
28179 { FRVBF_INSN_FCBLELR, SEM_FN_NAME (frvbf,fcblelr) },
28180 { FRVBF_INSN_FCBGTLR, SEM_FN_NAME (frvbf,fcbgtlr) },
28181 { FRVBF_INSN_FCBULELR, SEM_FN_NAME (frvbf,fcbulelr) },
28182 { FRVBF_INSN_FCBULR, SEM_FN_NAME (frvbf,fcbulr) },
28183 { FRVBF_INSN_FCBOLR, SEM_FN_NAME (frvbf,fcbolr) },
28184 { FRVBF_INSN_JMPL, SEM_FN_NAME (frvbf,jmpl) },
28185 { FRVBF_INSN_CALLL, SEM_FN_NAME (frvbf,calll) },
28186 { FRVBF_INSN_JMPIL, SEM_FN_NAME (frvbf,jmpil) },
28187 { FRVBF_INSN_CALLIL, SEM_FN_NAME (frvbf,callil) },
28188 { FRVBF_INSN_CALL, SEM_FN_NAME (frvbf,call) },
28189 { FRVBF_INSN_RETT, SEM_FN_NAME (frvbf,rett) },
28190 { FRVBF_INSN_REI, SEM_FN_NAME (frvbf,rei) },
28191 { FRVBF_INSN_TRA, SEM_FN_NAME (frvbf,tra) },
28192 { FRVBF_INSN_TNO, SEM_FN_NAME (frvbf,tno) },
28193 { FRVBF_INSN_TEQ, SEM_FN_NAME (frvbf,teq) },
28194 { FRVBF_INSN_TNE, SEM_FN_NAME (frvbf,tne) },
28195 { FRVBF_INSN_TLE, SEM_FN_NAME (frvbf,tle) },
28196 { FRVBF_INSN_TGT, SEM_FN_NAME (frvbf,tgt) },
28197 { FRVBF_INSN_TLT, SEM_FN_NAME (frvbf,tlt) },
28198 { FRVBF_INSN_TGE, SEM_FN_NAME (frvbf,tge) },
28199 { FRVBF_INSN_TLS, SEM_FN_NAME (frvbf,tls) },
28200 { FRVBF_INSN_THI, SEM_FN_NAME (frvbf,thi) },
28201 { FRVBF_INSN_TC, SEM_FN_NAME (frvbf,tc) },
28202 { FRVBF_INSN_TNC, SEM_FN_NAME (frvbf,tnc) },
28203 { FRVBF_INSN_TN, SEM_FN_NAME (frvbf,tn) },
28204 { FRVBF_INSN_TP, SEM_FN_NAME (frvbf,tp) },
28205 { FRVBF_INSN_TV, SEM_FN_NAME (frvbf,tv) },
28206 { FRVBF_INSN_TNV, SEM_FN_NAME (frvbf,tnv) },
28207 { FRVBF_INSN_FTRA, SEM_FN_NAME (frvbf,ftra) },
28208 { FRVBF_INSN_FTNO, SEM_FN_NAME (frvbf,ftno) },
28209 { FRVBF_INSN_FTNE, SEM_FN_NAME (frvbf,ftne) },
28210 { FRVBF_INSN_FTEQ, SEM_FN_NAME (frvbf,fteq) },
28211 { FRVBF_INSN_FTLG, SEM_FN_NAME (frvbf,ftlg) },
28212 { FRVBF_INSN_FTUE, SEM_FN_NAME (frvbf,ftue) },
28213 { FRVBF_INSN_FTUL, SEM_FN_NAME (frvbf,ftul) },
28214 { FRVBF_INSN_FTGE, SEM_FN_NAME (frvbf,ftge) },
28215 { FRVBF_INSN_FTLT, SEM_FN_NAME (frvbf,ftlt) },
28216 { FRVBF_INSN_FTUGE, SEM_FN_NAME (frvbf,ftuge) },
28217 { FRVBF_INSN_FTUG, SEM_FN_NAME (frvbf,ftug) },
28218 { FRVBF_INSN_FTLE, SEM_FN_NAME (frvbf,ftle) },
28219 { FRVBF_INSN_FTGT, SEM_FN_NAME (frvbf,ftgt) },
28220 { FRVBF_INSN_FTULE, SEM_FN_NAME (frvbf,ftule) },
28221 { FRVBF_INSN_FTU, SEM_FN_NAME (frvbf,ftu) },
28222 { FRVBF_INSN_FTO, SEM_FN_NAME (frvbf,fto) },
28223 { FRVBF_INSN_TIRA, SEM_FN_NAME (frvbf,tira) },
28224 { FRVBF_INSN_TINO, SEM_FN_NAME (frvbf,tino) },
28225 { FRVBF_INSN_TIEQ, SEM_FN_NAME (frvbf,tieq) },
28226 { FRVBF_INSN_TINE, SEM_FN_NAME (frvbf,tine) },
28227 { FRVBF_INSN_TILE, SEM_FN_NAME (frvbf,tile) },
28228 { FRVBF_INSN_TIGT, SEM_FN_NAME (frvbf,tigt) },
28229 { FRVBF_INSN_TILT, SEM_FN_NAME (frvbf,tilt) },
28230 { FRVBF_INSN_TIGE, SEM_FN_NAME (frvbf,tige) },
28231 { FRVBF_INSN_TILS, SEM_FN_NAME (frvbf,tils) },
28232 { FRVBF_INSN_TIHI, SEM_FN_NAME (frvbf,tihi) },
28233 { FRVBF_INSN_TIC, SEM_FN_NAME (frvbf,tic) },
28234 { FRVBF_INSN_TINC, SEM_FN_NAME (frvbf,tinc) },
28235 { FRVBF_INSN_TIN, SEM_FN_NAME (frvbf,tin) },
28236 { FRVBF_INSN_TIP, SEM_FN_NAME (frvbf,tip) },
28237 { FRVBF_INSN_TIV, SEM_FN_NAME (frvbf,tiv) },
28238 { FRVBF_INSN_TINV, SEM_FN_NAME (frvbf,tinv) },
28239 { FRVBF_INSN_FTIRA, SEM_FN_NAME (frvbf,ftira) },
28240 { FRVBF_INSN_FTINO, SEM_FN_NAME (frvbf,ftino) },
28241 { FRVBF_INSN_FTINE, SEM_FN_NAME (frvbf,ftine) },
28242 { FRVBF_INSN_FTIEQ, SEM_FN_NAME (frvbf,ftieq) },
28243 { FRVBF_INSN_FTILG, SEM_FN_NAME (frvbf,ftilg) },
28244 { FRVBF_INSN_FTIUE, SEM_FN_NAME (frvbf,ftiue) },
28245 { FRVBF_INSN_FTIUL, SEM_FN_NAME (frvbf,ftiul) },
28246 { FRVBF_INSN_FTIGE, SEM_FN_NAME (frvbf,ftige) },
28247 { FRVBF_INSN_FTILT, SEM_FN_NAME (frvbf,ftilt) },
28248 { FRVBF_INSN_FTIUGE, SEM_FN_NAME (frvbf,ftiuge) },
28249 { FRVBF_INSN_FTIUG, SEM_FN_NAME (frvbf,ftiug) },
28250 { FRVBF_INSN_FTILE, SEM_FN_NAME (frvbf,ftile) },
28251 { FRVBF_INSN_FTIGT, SEM_FN_NAME (frvbf,ftigt) },
28252 { FRVBF_INSN_FTIULE, SEM_FN_NAME (frvbf,ftiule) },
28253 { FRVBF_INSN_FTIU, SEM_FN_NAME (frvbf,ftiu) },
28254 { FRVBF_INSN_FTIO, SEM_FN_NAME (frvbf,ftio) },
28255 { FRVBF_INSN_BREAK, SEM_FN_NAME (frvbf,break) },
28256 { FRVBF_INSN_MTRAP, SEM_FN_NAME (frvbf,mtrap) },
28257 { FRVBF_INSN_ANDCR, SEM_FN_NAME (frvbf,andcr) },
28258 { FRVBF_INSN_ORCR, SEM_FN_NAME (frvbf,orcr) },
28259 { FRVBF_INSN_XORCR, SEM_FN_NAME (frvbf,xorcr) },
28260 { FRVBF_INSN_NANDCR, SEM_FN_NAME (frvbf,nandcr) },
28261 { FRVBF_INSN_NORCR, SEM_FN_NAME (frvbf,norcr) },
28262 { FRVBF_INSN_ANDNCR, SEM_FN_NAME (frvbf,andncr) },
28263 { FRVBF_INSN_ORNCR, SEM_FN_NAME (frvbf,orncr) },
28264 { FRVBF_INSN_NANDNCR, SEM_FN_NAME (frvbf,nandncr) },
28265 { FRVBF_INSN_NORNCR, SEM_FN_NAME (frvbf,norncr) },
28266 { FRVBF_INSN_NOTCR, SEM_FN_NAME (frvbf,notcr) },
28267 { FRVBF_INSN_CKRA, SEM_FN_NAME (frvbf,ckra) },
28268 { FRVBF_INSN_CKNO, SEM_FN_NAME (frvbf,ckno) },
28269 { FRVBF_INSN_CKEQ, SEM_FN_NAME (frvbf,ckeq) },
28270 { FRVBF_INSN_CKNE, SEM_FN_NAME (frvbf,ckne) },
28271 { FRVBF_INSN_CKLE, SEM_FN_NAME (frvbf,ckle) },
28272 { FRVBF_INSN_CKGT, SEM_FN_NAME (frvbf,ckgt) },
28273 { FRVBF_INSN_CKLT, SEM_FN_NAME (frvbf,cklt) },
28274 { FRVBF_INSN_CKGE, SEM_FN_NAME (frvbf,ckge) },
28275 { FRVBF_INSN_CKLS, SEM_FN_NAME (frvbf,ckls) },
28276 { FRVBF_INSN_CKHI, SEM_FN_NAME (frvbf,ckhi) },
28277 { FRVBF_INSN_CKC, SEM_FN_NAME (frvbf,ckc) },
28278 { FRVBF_INSN_CKNC, SEM_FN_NAME (frvbf,cknc) },
28279 { FRVBF_INSN_CKN, SEM_FN_NAME (frvbf,ckn) },
28280 { FRVBF_INSN_CKP, SEM_FN_NAME (frvbf,ckp) },
28281 { FRVBF_INSN_CKV, SEM_FN_NAME (frvbf,ckv) },
28282 { FRVBF_INSN_CKNV, SEM_FN_NAME (frvbf,cknv) },
28283 { FRVBF_INSN_FCKRA, SEM_FN_NAME (frvbf,fckra) },
28284 { FRVBF_INSN_FCKNO, SEM_FN_NAME (frvbf,fckno) },
28285 { FRVBF_INSN_FCKNE, SEM_FN_NAME (frvbf,fckne) },
28286 { FRVBF_INSN_FCKEQ, SEM_FN_NAME (frvbf,fckeq) },
28287 { FRVBF_INSN_FCKLG, SEM_FN_NAME (frvbf,fcklg) },
28288 { FRVBF_INSN_FCKUE, SEM_FN_NAME (frvbf,fckue) },
28289 { FRVBF_INSN_FCKUL, SEM_FN_NAME (frvbf,fckul) },
28290 { FRVBF_INSN_FCKGE, SEM_FN_NAME (frvbf,fckge) },
28291 { FRVBF_INSN_FCKLT, SEM_FN_NAME (frvbf,fcklt) },
28292 { FRVBF_INSN_FCKUGE, SEM_FN_NAME (frvbf,fckuge) },
28293 { FRVBF_INSN_FCKUG, SEM_FN_NAME (frvbf,fckug) },
28294 { FRVBF_INSN_FCKLE, SEM_FN_NAME (frvbf,fckle) },
28295 { FRVBF_INSN_FCKGT, SEM_FN_NAME (frvbf,fckgt) },
28296 { FRVBF_INSN_FCKULE, SEM_FN_NAME (frvbf,fckule) },
28297 { FRVBF_INSN_FCKU, SEM_FN_NAME (frvbf,fcku) },
28298 { FRVBF_INSN_FCKO, SEM_FN_NAME (frvbf,fcko) },
28299 { FRVBF_INSN_CCKRA, SEM_FN_NAME (frvbf,cckra) },
28300 { FRVBF_INSN_CCKNO, SEM_FN_NAME (frvbf,cckno) },
28301 { FRVBF_INSN_CCKEQ, SEM_FN_NAME (frvbf,cckeq) },
28302 { FRVBF_INSN_CCKNE, SEM_FN_NAME (frvbf,cckne) },
28303 { FRVBF_INSN_CCKLE, SEM_FN_NAME (frvbf,cckle) },
28304 { FRVBF_INSN_CCKGT, SEM_FN_NAME (frvbf,cckgt) },
28305 { FRVBF_INSN_CCKLT, SEM_FN_NAME (frvbf,ccklt) },
28306 { FRVBF_INSN_CCKGE, SEM_FN_NAME (frvbf,cckge) },
28307 { FRVBF_INSN_CCKLS, SEM_FN_NAME (frvbf,cckls) },
28308 { FRVBF_INSN_CCKHI, SEM_FN_NAME (frvbf,cckhi) },
28309 { FRVBF_INSN_CCKC, SEM_FN_NAME (frvbf,cckc) },
28310 { FRVBF_INSN_CCKNC, SEM_FN_NAME (frvbf,ccknc) },
28311 { FRVBF_INSN_CCKN, SEM_FN_NAME (frvbf,cckn) },
28312 { FRVBF_INSN_CCKP, SEM_FN_NAME (frvbf,cckp) },
28313 { FRVBF_INSN_CCKV, SEM_FN_NAME (frvbf,cckv) },
28314 { FRVBF_INSN_CCKNV, SEM_FN_NAME (frvbf,ccknv) },
28315 { FRVBF_INSN_CFCKRA, SEM_FN_NAME (frvbf,cfckra) },
28316 { FRVBF_INSN_CFCKNO, SEM_FN_NAME (frvbf,cfckno) },
28317 { FRVBF_INSN_CFCKNE, SEM_FN_NAME (frvbf,cfckne) },
28318 { FRVBF_INSN_CFCKEQ, SEM_FN_NAME (frvbf,cfckeq) },
28319 { FRVBF_INSN_CFCKLG, SEM_FN_NAME (frvbf,cfcklg) },
28320 { FRVBF_INSN_CFCKUE, SEM_FN_NAME (frvbf,cfckue) },
28321 { FRVBF_INSN_CFCKUL, SEM_FN_NAME (frvbf,cfckul) },
28322 { FRVBF_INSN_CFCKGE, SEM_FN_NAME (frvbf,cfckge) },
28323 { FRVBF_INSN_CFCKLT, SEM_FN_NAME (frvbf,cfcklt) },
28324 { FRVBF_INSN_CFCKUGE, SEM_FN_NAME (frvbf,cfckuge) },
28325 { FRVBF_INSN_CFCKUG, SEM_FN_NAME (frvbf,cfckug) },
28326 { FRVBF_INSN_CFCKLE, SEM_FN_NAME (frvbf,cfckle) },
28327 { FRVBF_INSN_CFCKGT, SEM_FN_NAME (frvbf,cfckgt) },
28328 { FRVBF_INSN_CFCKULE, SEM_FN_NAME (frvbf,cfckule) },
28329 { FRVBF_INSN_CFCKU, SEM_FN_NAME (frvbf,cfcku) },
28330 { FRVBF_INSN_CFCKO, SEM_FN_NAME (frvbf,cfcko) },
28331 { FRVBF_INSN_CJMPL, SEM_FN_NAME (frvbf,cjmpl) },
28332 { FRVBF_INSN_CCALLL, SEM_FN_NAME (frvbf,ccalll) },
28333 { FRVBF_INSN_ICI, SEM_FN_NAME (frvbf,ici) },
28334 { FRVBF_INSN_DCI, SEM_FN_NAME (frvbf,dci) },
28335 { FRVBF_INSN_ICEI, SEM_FN_NAME (frvbf,icei) },
28336 { FRVBF_INSN_DCEI, SEM_FN_NAME (frvbf,dcei) },
28337 { FRVBF_INSN_DCF, SEM_FN_NAME (frvbf,dcf) },
28338 { FRVBF_INSN_DCEF, SEM_FN_NAME (frvbf,dcef) },
28339 { FRVBF_INSN_WITLB, SEM_FN_NAME (frvbf,witlb) },
28340 { FRVBF_INSN_WDTLB, SEM_FN_NAME (frvbf,wdtlb) },
28341 { FRVBF_INSN_ITLBI, SEM_FN_NAME (frvbf,itlbi) },
28342 { FRVBF_INSN_DTLBI, SEM_FN_NAME (frvbf,dtlbi) },
28343 { FRVBF_INSN_ICPL, SEM_FN_NAME (frvbf,icpl) },
28344 { FRVBF_INSN_DCPL, SEM_FN_NAME (frvbf,dcpl) },
28345 { FRVBF_INSN_ICUL, SEM_FN_NAME (frvbf,icul) },
28346 { FRVBF_INSN_DCUL, SEM_FN_NAME (frvbf,dcul) },
28347 { FRVBF_INSN_BAR, SEM_FN_NAME (frvbf,bar) },
28348 { FRVBF_INSN_MEMBAR, SEM_FN_NAME (frvbf,membar) },
28349 { FRVBF_INSN_COP1, SEM_FN_NAME (frvbf,cop1) },
28350 { FRVBF_INSN_COP2, SEM_FN_NAME (frvbf,cop2) },
28351 { FRVBF_INSN_CLRGR, SEM_FN_NAME (frvbf,clrgr) },
28352 { FRVBF_INSN_CLRFR, SEM_FN_NAME (frvbf,clrfr) },
28353 { FRVBF_INSN_CLRGA, SEM_FN_NAME (frvbf,clrga) },
28354 { FRVBF_INSN_CLRFA, SEM_FN_NAME (frvbf,clrfa) },
28355 { FRVBF_INSN_COMMITGR, SEM_FN_NAME (frvbf,commitgr) },
28356 { FRVBF_INSN_COMMITFR, SEM_FN_NAME (frvbf,commitfr) },
28357 { FRVBF_INSN_COMMITGA, SEM_FN_NAME (frvbf,commitga) },
28358 { FRVBF_INSN_COMMITFA, SEM_FN_NAME (frvbf,commitfa) },
28359 { FRVBF_INSN_FITOS, SEM_FN_NAME (frvbf,fitos) },
28360 { FRVBF_INSN_FSTOI, SEM_FN_NAME (frvbf,fstoi) },
28361 { FRVBF_INSN_FITOD, SEM_FN_NAME (frvbf,fitod) },
28362 { FRVBF_INSN_FDTOI, SEM_FN_NAME (frvbf,fdtoi) },
28363 { FRVBF_INSN_FDITOS, SEM_FN_NAME (frvbf,fditos) },
28364 { FRVBF_INSN_FDSTOI, SEM_FN_NAME (frvbf,fdstoi) },
28365 { FRVBF_INSN_NFDITOS, SEM_FN_NAME (frvbf,nfditos) },
28366 { FRVBF_INSN_NFDSTOI, SEM_FN_NAME (frvbf,nfdstoi) },
28367 { FRVBF_INSN_CFITOS, SEM_FN_NAME (frvbf,cfitos) },
28368 { FRVBF_INSN_CFSTOI, SEM_FN_NAME (frvbf,cfstoi) },
28369 { FRVBF_INSN_NFITOS, SEM_FN_NAME (frvbf,nfitos) },
28370 { FRVBF_INSN_NFSTOI, SEM_FN_NAME (frvbf,nfstoi) },
28371 { FRVBF_INSN_FMOVS, SEM_FN_NAME (frvbf,fmovs) },
28372 { FRVBF_INSN_FMOVD, SEM_FN_NAME (frvbf,fmovd) },
28373 { FRVBF_INSN_FDMOVS, SEM_FN_NAME (frvbf,fdmovs) },
28374 { FRVBF_INSN_CFMOVS, SEM_FN_NAME (frvbf,cfmovs) },
28375 { FRVBF_INSN_FNEGS, SEM_FN_NAME (frvbf,fnegs) },
28376 { FRVBF_INSN_FNEGD, SEM_FN_NAME (frvbf,fnegd) },
28377 { FRVBF_INSN_FDNEGS, SEM_FN_NAME (frvbf,fdnegs) },
28378 { FRVBF_INSN_CFNEGS, SEM_FN_NAME (frvbf,cfnegs) },
28379 { FRVBF_INSN_FABSS, SEM_FN_NAME (frvbf,fabss) },
28380 { FRVBF_INSN_FABSD, SEM_FN_NAME (frvbf,fabsd) },
28381 { FRVBF_INSN_FDABSS, SEM_FN_NAME (frvbf,fdabss) },
28382 { FRVBF_INSN_CFABSS, SEM_FN_NAME (frvbf,cfabss) },
28383 { FRVBF_INSN_FSQRTS, SEM_FN_NAME (frvbf,fsqrts) },
28384 { FRVBF_INSN_FDSQRTS, SEM_FN_NAME (frvbf,fdsqrts) },
28385 { FRVBF_INSN_NFDSQRTS, SEM_FN_NAME (frvbf,nfdsqrts) },
28386 { FRVBF_INSN_FSQRTD, SEM_FN_NAME (frvbf,fsqrtd) },
28387 { FRVBF_INSN_CFSQRTS, SEM_FN_NAME (frvbf,cfsqrts) },
28388 { FRVBF_INSN_NFSQRTS, SEM_FN_NAME (frvbf,nfsqrts) },
28389 { FRVBF_INSN_FADDS, SEM_FN_NAME (frvbf,fadds) },
28390 { FRVBF_INSN_FSUBS, SEM_FN_NAME (frvbf,fsubs) },
28391 { FRVBF_INSN_FMULS, SEM_FN_NAME (frvbf,fmuls) },
28392 { FRVBF_INSN_FDIVS, SEM_FN_NAME (frvbf,fdivs) },
28393 { FRVBF_INSN_FADDD, SEM_FN_NAME (frvbf,faddd) },
28394 { FRVBF_INSN_FSUBD, SEM_FN_NAME (frvbf,fsubd) },
28395 { FRVBF_INSN_FMULD, SEM_FN_NAME (frvbf,fmuld) },
28396 { FRVBF_INSN_FDIVD, SEM_FN_NAME (frvbf,fdivd) },
28397 { FRVBF_INSN_CFADDS, SEM_FN_NAME (frvbf,cfadds) },
28398 { FRVBF_INSN_CFSUBS, SEM_FN_NAME (frvbf,cfsubs) },
28399 { FRVBF_INSN_CFMULS, SEM_FN_NAME (frvbf,cfmuls) },
28400 { FRVBF_INSN_CFDIVS, SEM_FN_NAME (frvbf,cfdivs) },
28401 { FRVBF_INSN_NFADDS, SEM_FN_NAME (frvbf,nfadds) },
28402 { FRVBF_INSN_NFSUBS, SEM_FN_NAME (frvbf,nfsubs) },
28403 { FRVBF_INSN_NFMULS, SEM_FN_NAME (frvbf,nfmuls) },
28404 { FRVBF_INSN_NFDIVS, SEM_FN_NAME (frvbf,nfdivs) },
28405 { FRVBF_INSN_FCMPS, SEM_FN_NAME (frvbf,fcmps) },
28406 { FRVBF_INSN_FCMPD, SEM_FN_NAME (frvbf,fcmpd) },
28407 { FRVBF_INSN_CFCMPS, SEM_FN_NAME (frvbf,cfcmps) },
28408 { FRVBF_INSN_FDCMPS, SEM_FN_NAME (frvbf,fdcmps) },
28409 { FRVBF_INSN_FMADDS, SEM_FN_NAME (frvbf,fmadds) },
28410 { FRVBF_INSN_FMSUBS, SEM_FN_NAME (frvbf,fmsubs) },
28411 { FRVBF_INSN_FMADDD, SEM_FN_NAME (frvbf,fmaddd) },
28412 { FRVBF_INSN_FMSUBD, SEM_FN_NAME (frvbf,fmsubd) },
28413 { FRVBF_INSN_FDMADDS, SEM_FN_NAME (frvbf,fdmadds) },
28414 { FRVBF_INSN_NFDMADDS, SEM_FN_NAME (frvbf,nfdmadds) },
28415 { FRVBF_INSN_CFMADDS, SEM_FN_NAME (frvbf,cfmadds) },
28416 { FRVBF_INSN_CFMSUBS, SEM_FN_NAME (frvbf,cfmsubs) },
28417 { FRVBF_INSN_NFMADDS, SEM_FN_NAME (frvbf,nfmadds) },
28418 { FRVBF_INSN_NFMSUBS, SEM_FN_NAME (frvbf,nfmsubs) },
28419 { FRVBF_INSN_FMAS, SEM_FN_NAME (frvbf,fmas) },
28420 { FRVBF_INSN_FMSS, SEM_FN_NAME (frvbf,fmss) },
28421 { FRVBF_INSN_FDMAS, SEM_FN_NAME (frvbf,fdmas) },
28422 { FRVBF_INSN_FDMSS, SEM_FN_NAME (frvbf,fdmss) },
28423 { FRVBF_INSN_NFDMAS, SEM_FN_NAME (frvbf,nfdmas) },
28424 { FRVBF_INSN_NFDMSS, SEM_FN_NAME (frvbf,nfdmss) },
28425 { FRVBF_INSN_CFMAS, SEM_FN_NAME (frvbf,cfmas) },
28426 { FRVBF_INSN_CFMSS, SEM_FN_NAME (frvbf,cfmss) },
28427 { FRVBF_INSN_FMAD, SEM_FN_NAME (frvbf,fmad) },
28428 { FRVBF_INSN_FMSD, SEM_FN_NAME (frvbf,fmsd) },
28429 { FRVBF_INSN_NFMAS, SEM_FN_NAME (frvbf,nfmas) },
28430 { FRVBF_INSN_NFMSS, SEM_FN_NAME (frvbf,nfmss) },
28431 { FRVBF_INSN_FDADDS, SEM_FN_NAME (frvbf,fdadds) },
28432 { FRVBF_INSN_FDSUBS, SEM_FN_NAME (frvbf,fdsubs) },
28433 { FRVBF_INSN_FDMULS, SEM_FN_NAME (frvbf,fdmuls) },
28434 { FRVBF_INSN_FDDIVS, SEM_FN_NAME (frvbf,fddivs) },
28435 { FRVBF_INSN_FDSADS, SEM_FN_NAME (frvbf,fdsads) },
28436 { FRVBF_INSN_FDMULCS, SEM_FN_NAME (frvbf,fdmulcs) },
28437 { FRVBF_INSN_NFDMULCS, SEM_FN_NAME (frvbf,nfdmulcs) },
28438 { FRVBF_INSN_NFDADDS, SEM_FN_NAME (frvbf,nfdadds) },
28439 { FRVBF_INSN_NFDSUBS, SEM_FN_NAME (frvbf,nfdsubs) },
28440 { FRVBF_INSN_NFDMULS, SEM_FN_NAME (frvbf,nfdmuls) },
28441 { FRVBF_INSN_NFDDIVS, SEM_FN_NAME (frvbf,nfddivs) },
28442 { FRVBF_INSN_NFDSADS, SEM_FN_NAME (frvbf,nfdsads) },
28443 { FRVBF_INSN_NFDCMPS, SEM_FN_NAME (frvbf,nfdcmps) },
28444 { FRVBF_INSN_MHSETLOS, SEM_FN_NAME (frvbf,mhsetlos) },
28445 { FRVBF_INSN_MHSETHIS, SEM_FN_NAME (frvbf,mhsethis) },
28446 { FRVBF_INSN_MHDSETS, SEM_FN_NAME (frvbf,mhdsets) },
28447 { FRVBF_INSN_MHSETLOH, SEM_FN_NAME (frvbf,mhsetloh) },
28448 { FRVBF_INSN_MHSETHIH, SEM_FN_NAME (frvbf,mhsethih) },
28449 { FRVBF_INSN_MHDSETH, SEM_FN_NAME (frvbf,mhdseth) },
28450 { FRVBF_INSN_MAND, SEM_FN_NAME (frvbf,mand) },
28451 { FRVBF_INSN_MOR, SEM_FN_NAME (frvbf,mor) },
28452 { FRVBF_INSN_MXOR, SEM_FN_NAME (frvbf,mxor) },
28453 { FRVBF_INSN_CMAND, SEM_FN_NAME (frvbf,cmand) },
28454 { FRVBF_INSN_CMOR, SEM_FN_NAME (frvbf,cmor) },
28455 { FRVBF_INSN_CMXOR, SEM_FN_NAME (frvbf,cmxor) },
28456 { FRVBF_INSN_MNOT, SEM_FN_NAME (frvbf,mnot) },
28457 { FRVBF_INSN_CMNOT, SEM_FN_NAME (frvbf,cmnot) },
28458 { FRVBF_INSN_MROTLI, SEM_FN_NAME (frvbf,mrotli) },
28459 { FRVBF_INSN_MROTRI, SEM_FN_NAME (frvbf,mrotri) },
28460 { FRVBF_INSN_MWCUT, SEM_FN_NAME (frvbf,mwcut) },
28461 { FRVBF_INSN_MWCUTI, SEM_FN_NAME (frvbf,mwcuti) },
28462 { FRVBF_INSN_MCUT, SEM_FN_NAME (frvbf,mcut) },
28463 { FRVBF_INSN_MCUTI, SEM_FN_NAME (frvbf,mcuti) },
28464 { FRVBF_INSN_MCUTSS, SEM_FN_NAME (frvbf,mcutss) },
28465 { FRVBF_INSN_MCUTSSI, SEM_FN_NAME (frvbf,mcutssi) },
28466 { FRVBF_INSN_MDCUTSSI, SEM_FN_NAME (frvbf,mdcutssi) },
28467 { FRVBF_INSN_MAVEH, SEM_FN_NAME (frvbf,maveh) },
28468 { FRVBF_INSN_MSLLHI, SEM_FN_NAME (frvbf,msllhi) },
28469 { FRVBF_INSN_MSRLHI, SEM_FN_NAME (frvbf,msrlhi) },
28470 { FRVBF_INSN_MSRAHI, SEM_FN_NAME (frvbf,msrahi) },
28471 { FRVBF_INSN_MDROTLI, SEM_FN_NAME (frvbf,mdrotli) },
28472 { FRVBF_INSN_MCPLHI, SEM_FN_NAME (frvbf,mcplhi) },
28473 { FRVBF_INSN_MCPLI, SEM_FN_NAME (frvbf,mcpli) },
28474 { FRVBF_INSN_MSATHS, SEM_FN_NAME (frvbf,msaths) },
28475 { FRVBF_INSN_MQSATHS, SEM_FN_NAME (frvbf,mqsaths) },
28476 { FRVBF_INSN_MSATHU, SEM_FN_NAME (frvbf,msathu) },
28477 { FRVBF_INSN_MCMPSH, SEM_FN_NAME (frvbf,mcmpsh) },
28478 { FRVBF_INSN_MCMPUH, SEM_FN_NAME (frvbf,mcmpuh) },
28479 { FRVBF_INSN_MABSHS, SEM_FN_NAME (frvbf,mabshs) },
28480 { FRVBF_INSN_MADDHSS, SEM_FN_NAME (frvbf,maddhss) },
28481 { FRVBF_INSN_MADDHUS, SEM_FN_NAME (frvbf,maddhus) },
28482 { FRVBF_INSN_MSUBHSS, SEM_FN_NAME (frvbf,msubhss) },
28483 { FRVBF_INSN_MSUBHUS, SEM_FN_NAME (frvbf,msubhus) },
28484 { FRVBF_INSN_CMADDHSS, SEM_FN_NAME (frvbf,cmaddhss) },
28485 { FRVBF_INSN_CMADDHUS, SEM_FN_NAME (frvbf,cmaddhus) },
28486 { FRVBF_INSN_CMSUBHSS, SEM_FN_NAME (frvbf,cmsubhss) },
28487 { FRVBF_INSN_CMSUBHUS, SEM_FN_NAME (frvbf,cmsubhus) },
28488 { FRVBF_INSN_MQADDHSS, SEM_FN_NAME (frvbf,mqaddhss) },
28489 { FRVBF_INSN_MQADDHUS, SEM_FN_NAME (frvbf,mqaddhus) },
28490 { FRVBF_INSN_MQSUBHSS, SEM_FN_NAME (frvbf,mqsubhss) },
28491 { FRVBF_INSN_MQSUBHUS, SEM_FN_NAME (frvbf,mqsubhus) },
28492 { FRVBF_INSN_CMQADDHSS, SEM_FN_NAME (frvbf,cmqaddhss) },
28493 { FRVBF_INSN_CMQADDHUS, SEM_FN_NAME (frvbf,cmqaddhus) },
28494 { FRVBF_INSN_CMQSUBHSS, SEM_FN_NAME (frvbf,cmqsubhss) },
28495 { FRVBF_INSN_CMQSUBHUS, SEM_FN_NAME (frvbf,cmqsubhus) },
28496 { FRVBF_INSN_MADDACCS, SEM_FN_NAME (frvbf,maddaccs) },
28497 { FRVBF_INSN_MSUBACCS, SEM_FN_NAME (frvbf,msubaccs) },
28498 { FRVBF_INSN_MDADDACCS, SEM_FN_NAME (frvbf,mdaddaccs) },
28499 { FRVBF_INSN_MDSUBACCS, SEM_FN_NAME (frvbf,mdsubaccs) },
28500 { FRVBF_INSN_MASACCS, SEM_FN_NAME (frvbf,masaccs) },
28501 { FRVBF_INSN_MDASACCS, SEM_FN_NAME (frvbf,mdasaccs) },
28502 { FRVBF_INSN_MMULHS, SEM_FN_NAME (frvbf,mmulhs) },
28503 { FRVBF_INSN_MMULHU, SEM_FN_NAME (frvbf,mmulhu) },
28504 { FRVBF_INSN_MMULXHS, SEM_FN_NAME (frvbf,mmulxhs) },
28505 { FRVBF_INSN_MMULXHU, SEM_FN_NAME (frvbf,mmulxhu) },
28506 { FRVBF_INSN_CMMULHS, SEM_FN_NAME (frvbf,cmmulhs) },
28507 { FRVBF_INSN_CMMULHU, SEM_FN_NAME (frvbf,cmmulhu) },
28508 { FRVBF_INSN_MQMULHS, SEM_FN_NAME (frvbf,mqmulhs) },
28509 { FRVBF_INSN_MQMULHU, SEM_FN_NAME (frvbf,mqmulhu) },
28510 { FRVBF_INSN_MQMULXHS, SEM_FN_NAME (frvbf,mqmulxhs) },
28511 { FRVBF_INSN_MQMULXHU, SEM_FN_NAME (frvbf,mqmulxhu) },
28512 { FRVBF_INSN_CMQMULHS, SEM_FN_NAME (frvbf,cmqmulhs) },
28513 { FRVBF_INSN_CMQMULHU, SEM_FN_NAME (frvbf,cmqmulhu) },
28514 { FRVBF_INSN_MMACHS, SEM_FN_NAME (frvbf,mmachs) },
28515 { FRVBF_INSN_MMACHU, SEM_FN_NAME (frvbf,mmachu) },
28516 { FRVBF_INSN_MMRDHS, SEM_FN_NAME (frvbf,mmrdhs) },
28517 { FRVBF_INSN_MMRDHU, SEM_FN_NAME (frvbf,mmrdhu) },
28518 { FRVBF_INSN_CMMACHS, SEM_FN_NAME (frvbf,cmmachs) },
28519 { FRVBF_INSN_CMMACHU, SEM_FN_NAME (frvbf,cmmachu) },
28520 { FRVBF_INSN_MQMACHS, SEM_FN_NAME (frvbf,mqmachs) },
28521 { FRVBF_INSN_MQMACHU, SEM_FN_NAME (frvbf,mqmachu) },
28522 { FRVBF_INSN_CMQMACHS, SEM_FN_NAME (frvbf,cmqmachs) },
28523 { FRVBF_INSN_CMQMACHU, SEM_FN_NAME (frvbf,cmqmachu) },
28524 { FRVBF_INSN_MQXMACHS, SEM_FN_NAME (frvbf,mqxmachs) },
28525 { FRVBF_INSN_MQXMACXHS, SEM_FN_NAME (frvbf,mqxmacxhs) },
28526 { FRVBF_INSN_MQMACXHS, SEM_FN_NAME (frvbf,mqmacxhs) },
28527 { FRVBF_INSN_MCPXRS, SEM_FN_NAME (frvbf,mcpxrs) },
28528 { FRVBF_INSN_MCPXRU, SEM_FN_NAME (frvbf,mcpxru) },
28529 { FRVBF_INSN_MCPXIS, SEM_FN_NAME (frvbf,mcpxis) },
28530 { FRVBF_INSN_MCPXIU, SEM_FN_NAME (frvbf,mcpxiu) },
28531 { FRVBF_INSN_CMCPXRS, SEM_FN_NAME (frvbf,cmcpxrs) },
28532 { FRVBF_INSN_CMCPXRU, SEM_FN_NAME (frvbf,cmcpxru) },
28533 { FRVBF_INSN_CMCPXIS, SEM_FN_NAME (frvbf,cmcpxis) },
28534 { FRVBF_INSN_CMCPXIU, SEM_FN_NAME (frvbf,cmcpxiu) },
28535 { FRVBF_INSN_MQCPXRS, SEM_FN_NAME (frvbf,mqcpxrs) },
28536 { FRVBF_INSN_MQCPXRU, SEM_FN_NAME (frvbf,mqcpxru) },
28537 { FRVBF_INSN_MQCPXIS, SEM_FN_NAME (frvbf,mqcpxis) },
28538 { FRVBF_INSN_MQCPXIU, SEM_FN_NAME (frvbf,mqcpxiu) },
28539 { FRVBF_INSN_MEXPDHW, SEM_FN_NAME (frvbf,mexpdhw) },
28540 { FRVBF_INSN_CMEXPDHW, SEM_FN_NAME (frvbf,cmexpdhw) },
28541 { FRVBF_INSN_MEXPDHD, SEM_FN_NAME (frvbf,mexpdhd) },
28542 { FRVBF_INSN_CMEXPDHD, SEM_FN_NAME (frvbf,cmexpdhd) },
28543 { FRVBF_INSN_MPACKH, SEM_FN_NAME (frvbf,mpackh) },
28544 { FRVBF_INSN_MDPACKH, SEM_FN_NAME (frvbf,mdpackh) },
28545 { FRVBF_INSN_MUNPACKH, SEM_FN_NAME (frvbf,munpackh) },
28546 { FRVBF_INSN_MDUNPACKH, SEM_FN_NAME (frvbf,mdunpackh) },
28547 { FRVBF_INSN_MBTOH, SEM_FN_NAME (frvbf,mbtoh) },
28548 { FRVBF_INSN_CMBTOH, SEM_FN_NAME (frvbf,cmbtoh) },
28549 { FRVBF_INSN_MHTOB, SEM_FN_NAME (frvbf,mhtob) },
28550 { FRVBF_INSN_CMHTOB, SEM_FN_NAME (frvbf,cmhtob) },
28551 { FRVBF_INSN_MBTOHE, SEM_FN_NAME (frvbf,mbtohe) },
28552 { FRVBF_INSN_CMBTOHE, SEM_FN_NAME (frvbf,cmbtohe) },
28553 { FRVBF_INSN_MNOP, SEM_FN_NAME (frvbf,mnop) },
28554 { FRVBF_INSN_MCLRACC_0, SEM_FN_NAME (frvbf,mclracc_0) },
28555 { FRVBF_INSN_MCLRACC_1, SEM_FN_NAME (frvbf,mclracc_1) },
28556 { FRVBF_INSN_MRDACC, SEM_FN_NAME (frvbf,mrdacc) },
28557 { FRVBF_INSN_MRDACCG, SEM_FN_NAME (frvbf,mrdaccg) },
28558 { FRVBF_INSN_MWTACC, SEM_FN_NAME (frvbf,mwtacc) },
28559 { FRVBF_INSN_MWTACCG, SEM_FN_NAME (frvbf,mwtaccg) },
28560 { FRVBF_INSN_MCOP1, SEM_FN_NAME (frvbf,mcop1) },
28561 { FRVBF_INSN_MCOP2, SEM_FN_NAME (frvbf,mcop2) },
28562 { FRVBF_INSN_FNOP, SEM_FN_NAME (frvbf,fnop) },
28566 /* Add the semantic fns to IDESC_TABLE. */
28569 SEM_FN_NAME (frvbf,init_idesc_table) (SIM_CPU *current_cpu)
28571 IDESC *idesc_table = CPU_IDESC (current_cpu);
28572 const struct sem_fn_desc *sf;
28573 int mach_num = MACH_NUM (CPU_MACH (current_cpu));
28575 for (sf = &sem_fns[0]; sf->fn != 0; ++sf)
28577 const CGEN_INSN *insn = idesc_table[sf->index].idata;
28578 int valid_p = (CGEN_INSN_VIRTUAL_P (insn)
28579 || CGEN_INSN_MACH_HAS_P (insn, mach_num));
28582 idesc_table[sf->index].sem_fast = sf->fn;
28584 idesc_table[sf->index].sem_fast = SEM_FN_NAME (frvbf,x_invalid);
28587 idesc_table[sf->index].sem_full = sf->fn;
28589 idesc_table[sf->index].sem_full = SEM_FN_NAME (frvbf,x_invalid);