1 /* Simulator instruction semantics for frvbf.
3 THIS FILE IS MACHINE GENERATED WITH CGEN.
5 Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
7 This file is part of the GNU simulators.
9 This program is free software; you can redistribute it and/or modify
10 it under the terms of the GNU General Public License as published by
11 the Free Software Foundation; either version 2, or (at your option)
14 This program is distributed in the hope that it will be useful,
15 but WITHOUT ANY WARRANTY; without even the implied warranty of
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 GNU General Public License for more details.
19 You should have received a copy of the GNU General Public License along
20 with this program; if not, write to the Free Software Foundation, Inc.,
21 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
25 #define WANT_CPU frvbf
26 #define WANT_CPU_FRVBF
33 #if defined (__STDC__) || defined (ALMOST_STDC) || defined (HAVE_STRINGIZE)
34 #define GET_ATTR(cpu, num, attr) CGEN_ATTR_VALUE (NULL, abuf->idesc->attrs, CGEN_INSN_##attr)
36 #define GET_ATTR(cpu, num, attr) CGEN_ATTR_VALUE (NULL, abuf->idesc->attrs, CGEN_INSN_/**/attr)
39 /* This is used so that we can compile two copies of the semantic code,
40 one with full feature support and one without that runs fast(er).
41 FAST_P, when desired, is defined on the command line, -DFAST_P=1. */
43 #define SEM_FN_NAME(cpu,fn) XCONCAT3 (cpu,_semf_,fn)
45 #define TRACE_RESULT(cpu, abuf, name, type, val)
47 #define SEM_FN_NAME(cpu,fn) XCONCAT3 (cpu,_sem_,fn)
50 /* x-invalid: --invalid-- */
53 SEM_FN_NAME (frvbf,x_invalid) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
55 #define FLD(f) abuf->fields.fmt_empty.f
56 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
57 int UNUSED written = 0;
58 IADDR UNUSED pc = abuf->addr;
59 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 0);
62 /* Update the recorded pc in the cpu state struct.
63 Only necessary for WITH_SCACHE case, but to avoid the
64 conditional compilation .... */
66 /* Virtual insns have zero size. Overwrite vpc with address of next insn
67 using the default-insn-bitsize spec. When executing insns in parallel
68 we may want to queue the fault and continue execution. */
69 vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
70 vpc = sim_engine_invalid_insn (current_cpu, pc, vpc);
77 /* x-after: --after-- */
80 SEM_FN_NAME (frvbf,x_after) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
82 #define FLD(f) abuf->fields.fmt_empty.f
83 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
84 int UNUSED written = 0;
85 IADDR UNUSED pc = abuf->addr;
86 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 0);
89 #if WITH_SCACHE_PBB_FRVBF
90 frvbf_pbb_after (current_cpu, sem_arg);
98 /* x-before: --before-- */
101 SEM_FN_NAME (frvbf,x_before) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
103 #define FLD(f) abuf->fields.fmt_empty.f
104 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
105 int UNUSED written = 0;
106 IADDR UNUSED pc = abuf->addr;
107 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 0);
110 #if WITH_SCACHE_PBB_FRVBF
111 frvbf_pbb_before (current_cpu, sem_arg);
119 /* x-cti-chain: --cti-chain-- */
122 SEM_FN_NAME (frvbf,x_cti_chain) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
124 #define FLD(f) abuf->fields.fmt_empty.f
125 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
126 int UNUSED written = 0;
127 IADDR UNUSED pc = abuf->addr;
128 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 0);
131 #if WITH_SCACHE_PBB_FRVBF
133 vpc = frvbf_pbb_cti_chain (current_cpu, sem_arg,
134 pbb_br_type, pbb_br_npc);
137 /* FIXME: Allow provision of explicit ifmt spec in insn spec. */
138 vpc = frvbf_pbb_cti_chain (current_cpu, sem_arg,
139 CPU_PBB_BR_TYPE (current_cpu),
140 CPU_PBB_BR_NPC (current_cpu));
149 /* x-chain: --chain-- */
152 SEM_FN_NAME (frvbf,x_chain) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
154 #define FLD(f) abuf->fields.fmt_empty.f
155 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
156 int UNUSED written = 0;
157 IADDR UNUSED pc = abuf->addr;
158 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 0);
161 #if WITH_SCACHE_PBB_FRVBF
162 vpc = frvbf_pbb_chain (current_cpu, sem_arg);
173 /* x-begin: --begin-- */
176 SEM_FN_NAME (frvbf,x_begin) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
178 #define FLD(f) abuf->fields.fmt_empty.f
179 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
180 int UNUSED written = 0;
181 IADDR UNUSED pc = abuf->addr;
182 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 0);
185 #if WITH_SCACHE_PBB_FRVBF
186 #if defined DEFINE_SWITCH || defined FAST_P
187 /* In the switch case FAST_P is a constant, allowing several optimizations
188 in any called inline functions. */
189 vpc = frvbf_pbb_begin (current_cpu, FAST_P);
191 #if 0 /* cgen engine can't handle dynamic fast/full switching yet. */
192 vpc = frvbf_pbb_begin (current_cpu, STATE_RUN_FAST_P (CPU_STATE (current_cpu)));
194 vpc = frvbf_pbb_begin (current_cpu, 0);
204 /* add: add$pack $GRi,$GRj,$GRk */
207 SEM_FN_NAME (frvbf,add) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
209 #define FLD(f) abuf->fields.sfmt_addcc.f
210 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
211 int UNUSED written = 0;
212 IADDR UNUSED pc = abuf->addr;
213 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
216 SI opval = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
217 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
218 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
225 /* sub: sub$pack $GRi,$GRj,$GRk */
228 SEM_FN_NAME (frvbf,sub) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
230 #define FLD(f) abuf->fields.sfmt_addcc.f
231 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
232 int UNUSED written = 0;
233 IADDR UNUSED pc = abuf->addr;
234 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
237 SI opval = SUBSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
238 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
239 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
246 /* and: and$pack $GRi,$GRj,$GRk */
249 SEM_FN_NAME (frvbf,and) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
251 #define FLD(f) abuf->fields.sfmt_addcc.f
252 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
253 int UNUSED written = 0;
254 IADDR UNUSED pc = abuf->addr;
255 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
258 SI opval = ANDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
259 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
260 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
267 /* or: or$pack $GRi,$GRj,$GRk */
270 SEM_FN_NAME (frvbf,or) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
272 #define FLD(f) abuf->fields.sfmt_addcc.f
273 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
274 int UNUSED written = 0;
275 IADDR UNUSED pc = abuf->addr;
276 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
279 SI opval = ORSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
280 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
281 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
288 /* xor: xor$pack $GRi,$GRj,$GRk */
291 SEM_FN_NAME (frvbf,xor) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
293 #define FLD(f) abuf->fields.sfmt_addcc.f
294 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
295 int UNUSED written = 0;
296 IADDR UNUSED pc = abuf->addr;
297 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
300 SI opval = XORSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
301 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
302 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
309 /* not: not$pack $GRj,$GRk */
312 SEM_FN_NAME (frvbf,not) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
314 #define FLD(f) abuf->fields.sfmt_scutss.f
315 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
316 int UNUSED written = 0;
317 IADDR UNUSED pc = abuf->addr;
318 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
321 SI opval = INVSI (GET_H_GR (FLD (f_GRj)));
322 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
323 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
330 /* sdiv: sdiv$pack $GRi,$GRj,$GRk */
333 SEM_FN_NAME (frvbf,sdiv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
335 #define FLD(f) abuf->fields.sfmt_addcc.f
336 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
337 int UNUSED written = 0;
338 IADDR UNUSED pc = abuf->addr;
339 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
342 frvbf_signed_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), FLD (f_GRk), 0);
350 /* nsdiv: nsdiv$pack $GRi,$GRj,$GRk */
353 SEM_FN_NAME (frvbf,nsdiv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
355 #define FLD(f) abuf->fields.sfmt_addcc.f
356 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
357 int UNUSED written = 0;
358 IADDR UNUSED pc = abuf->addr;
359 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
362 frvbf_signed_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), FLD (f_GRk), 1);
370 /* udiv: udiv$pack $GRi,$GRj,$GRk */
373 SEM_FN_NAME (frvbf,udiv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
375 #define FLD(f) abuf->fields.sfmt_addcc.f
376 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
377 int UNUSED written = 0;
378 IADDR UNUSED pc = abuf->addr;
379 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
382 frvbf_unsigned_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), FLD (f_GRk), 0);
390 /* nudiv: nudiv$pack $GRi,$GRj,$GRk */
393 SEM_FN_NAME (frvbf,nudiv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
395 #define FLD(f) abuf->fields.sfmt_addcc.f
396 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
397 int UNUSED written = 0;
398 IADDR UNUSED pc = abuf->addr;
399 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
402 frvbf_unsigned_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), FLD (f_GRk), 1);
410 /* smul: smul$pack $GRi,$GRj,$GRdoublek */
413 SEM_FN_NAME (frvbf,smul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
415 #define FLD(f) abuf->fields.sfmt_smulcc.f
416 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
417 int UNUSED written = 0;
418 IADDR UNUSED pc = abuf->addr;
419 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
422 DI opval = MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (GET_H_GR (FLD (f_GRj))));
423 sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
424 TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
431 /* umul: umul$pack $GRi,$GRj,$GRdoublek */
434 SEM_FN_NAME (frvbf,umul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
436 #define FLD(f) abuf->fields.sfmt_smulcc.f
437 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
438 int UNUSED written = 0;
439 IADDR UNUSED pc = abuf->addr;
440 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
443 DI opval = MULDI (ZEXTSIDI (GET_H_GR (FLD (f_GRi))), ZEXTSIDI (GET_H_GR (FLD (f_GRj))));
444 sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
445 TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
452 /* smu: smu$pack $GRi,$GRj */
455 SEM_FN_NAME (frvbf,smu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
457 #define FLD(f) abuf->fields.sfmt_smass.f
458 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
459 int UNUSED written = 0;
460 IADDR UNUSED pc = abuf->addr;
461 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
464 DI opval = MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (GET_H_GR (FLD (f_GRj))));
465 sim_queue_fn_di_write (current_cpu, frvbf_h_iacc0_set, ((UINT) 0), opval);
466 TRACE_RESULT (current_cpu, abuf, "iacc0", 'D', opval);
473 /* smass: smass$pack $GRi,$GRj */
476 SEM_FN_NAME (frvbf,smass) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
478 #define FLD(f) abuf->fields.sfmt_smass.f
479 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
480 int UNUSED written = 0;
481 IADDR UNUSED pc = abuf->addr;
482 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
485 DI opval = (ANDIF (ANDIF (GTDI (MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (GET_H_GR (FLD (f_GRj)))), 0), GTDI (GET_H_IACC0 (((UINT) 0)), 0)), LTDI (SUBDI (9223372036854775807, MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (GET_H_GR (FLD (f_GRj))))), GET_H_IACC0 (((UINT) 0))))) ? (MAKEDI (2147483647, 0xffffffff)) : (ANDIF (ANDIF (LTDI (MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (GET_H_GR (FLD (f_GRj)))), 0), LTDI (GET_H_IACC0 (((UINT) 0)), 0)), GTDI (SUBDI (9223372036854775808, MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (GET_H_GR (FLD (f_GRj))))), GET_H_IACC0 (((UINT) 0))))) ? (MAKEDI (0x80000000, 0)) : (ADDDI (GET_H_IACC0 (((UINT) 0)), MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (GET_H_GR (FLD (f_GRj))))));
486 sim_queue_fn_di_write (current_cpu, frvbf_h_iacc0_set, ((UINT) 0), opval);
487 TRACE_RESULT (current_cpu, abuf, "iacc0", 'D', opval);
494 /* smsss: smsss$pack $GRi,$GRj */
497 SEM_FN_NAME (frvbf,smsss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
499 #define FLD(f) abuf->fields.sfmt_smass.f
500 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
501 int UNUSED written = 0;
502 IADDR UNUSED pc = abuf->addr;
503 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
506 DI opval = (ANDIF (ANDIF (LTDI (MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (GET_H_GR (FLD (f_GRj)))), 0), GTDI (GET_H_IACC0 (((UINT) 0)), 0)), LTDI (ADDDI (9223372036854775807, MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (GET_H_GR (FLD (f_GRj))))), GET_H_IACC0 (((UINT) 0))))) ? (MAKEDI (2147483647, 0xffffffff)) : (ANDIF (ANDIF (GTDI (MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (GET_H_GR (FLD (f_GRj)))), 0), LTDI (GET_H_IACC0 (((UINT) 0)), 0)), GTDI (ADDDI (9223372036854775808, MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (GET_H_GR (FLD (f_GRj))))), GET_H_IACC0 (((UINT) 0))))) ? (MAKEDI (0x80000000, 0)) : (SUBDI (GET_H_IACC0 (((UINT) 0)), MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (GET_H_GR (FLD (f_GRj))))));
507 sim_queue_fn_di_write (current_cpu, frvbf_h_iacc0_set, ((UINT) 0), opval);
508 TRACE_RESULT (current_cpu, abuf, "iacc0", 'D', opval);
515 /* sll: sll$pack $GRi,$GRj,$GRk */
518 SEM_FN_NAME (frvbf,sll) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
520 #define FLD(f) abuf->fields.sfmt_addcc.f
521 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
522 int UNUSED written = 0;
523 IADDR UNUSED pc = abuf->addr;
524 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
527 SI opval = SLLSI (GET_H_GR (FLD (f_GRi)), ANDSI (GET_H_GR (FLD (f_GRj)), 31));
528 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
529 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
536 /* srl: srl$pack $GRi,$GRj,$GRk */
539 SEM_FN_NAME (frvbf,srl) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
541 #define FLD(f) abuf->fields.sfmt_addcc.f
542 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
543 int UNUSED written = 0;
544 IADDR UNUSED pc = abuf->addr;
545 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
548 SI opval = SRLSI (GET_H_GR (FLD (f_GRi)), ANDSI (GET_H_GR (FLD (f_GRj)), 31));
549 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
550 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
557 /* sra: sra$pack $GRi,$GRj,$GRk */
560 SEM_FN_NAME (frvbf,sra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
562 #define FLD(f) abuf->fields.sfmt_addcc.f
563 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
564 int UNUSED written = 0;
565 IADDR UNUSED pc = abuf->addr;
566 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
569 SI opval = SRASI (GET_H_GR (FLD (f_GRi)), ANDSI (GET_H_GR (FLD (f_GRj)), 31));
570 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
571 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
578 /* slass: slass$pack $GRi,$GRj,$GRk */
581 SEM_FN_NAME (frvbf,slass) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
583 #define FLD(f) abuf->fields.sfmt_addcc.f
584 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
585 int UNUSED written = 0;
586 IADDR UNUSED pc = abuf->addr;
587 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
590 SI opval = frvbf_shift_left_arith_saturate (current_cpu, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
591 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
592 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
599 /* scutss: scutss$pack $GRj,$GRk */
602 SEM_FN_NAME (frvbf,scutss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
604 #define FLD(f) abuf->fields.sfmt_scutss.f
605 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
606 int UNUSED written = 0;
607 IADDR UNUSED pc = abuf->addr;
608 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
611 SI opval = frvbf_iacc_cut (current_cpu, GET_H_IACC0 (((UINT) 0)), GET_H_GR (FLD (f_GRj)));
612 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
613 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
620 /* scan: scan$pack $GRi,$GRj,$GRk */
623 SEM_FN_NAME (frvbf,scan) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
625 #define FLD(f) abuf->fields.sfmt_addcc.f
626 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
627 int UNUSED written = 0;
628 IADDR UNUSED pc = abuf->addr;
629 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
634 tmp_tmp1 = GET_H_GR (FLD (f_GRi));
635 tmp_tmp2 = SRASI (GET_H_GR (FLD (f_GRj)), 1);
637 SI opval = frvbf_scan_result (current_cpu, XORSI (tmp_tmp1, tmp_tmp2));
638 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
639 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
647 /* cadd: cadd$pack $GRi,$GRj,$GRk,$CCi,$cond */
650 SEM_FN_NAME (frvbf,cadd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
652 #define FLD(f) abuf->fields.sfmt_cswap.f
653 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
654 int UNUSED written = 0;
655 IADDR UNUSED pc = abuf->addr;
656 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
658 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
660 SI opval = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
661 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
663 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
667 abuf->written = written;
672 /* csub: csub$pack $GRi,$GRj,$GRk,$CCi,$cond */
675 SEM_FN_NAME (frvbf,csub) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
677 #define FLD(f) abuf->fields.sfmt_cswap.f
678 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
679 int UNUSED written = 0;
680 IADDR UNUSED pc = abuf->addr;
681 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
683 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
685 SI opval = SUBSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
686 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
688 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
692 abuf->written = written;
697 /* cand: cand$pack $GRi,$GRj,$GRk,$CCi,$cond */
700 SEM_FN_NAME (frvbf,cand) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
702 #define FLD(f) abuf->fields.sfmt_cswap.f
703 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
704 int UNUSED written = 0;
705 IADDR UNUSED pc = abuf->addr;
706 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
708 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
710 SI opval = ANDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
711 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
713 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
717 abuf->written = written;
722 /* cor: cor$pack $GRi,$GRj,$GRk,$CCi,$cond */
725 SEM_FN_NAME (frvbf,cor) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
727 #define FLD(f) abuf->fields.sfmt_cswap.f
728 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
729 int UNUSED written = 0;
730 IADDR UNUSED pc = abuf->addr;
731 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
733 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
735 SI opval = ORSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
736 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
738 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
742 abuf->written = written;
747 /* cxor: cxor$pack $GRi,$GRj,$GRk,$CCi,$cond */
750 SEM_FN_NAME (frvbf,cxor) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
752 #define FLD(f) abuf->fields.sfmt_cswap.f
753 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
754 int UNUSED written = 0;
755 IADDR UNUSED pc = abuf->addr;
756 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
758 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
760 SI opval = XORSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
761 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
763 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
767 abuf->written = written;
772 /* cnot: cnot$pack $GRj,$GRk,$CCi,$cond */
775 SEM_FN_NAME (frvbf,cnot) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
777 #define FLD(f) abuf->fields.sfmt_cswap.f
778 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
779 int UNUSED written = 0;
780 IADDR UNUSED pc = abuf->addr;
781 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
783 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
785 SI opval = INVSI (GET_H_GR (FLD (f_GRj)));
786 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
788 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
792 abuf->written = written;
797 /* csmul: csmul$pack $GRi,$GRj,$GRdoublek,$CCi,$cond */
800 SEM_FN_NAME (frvbf,csmul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
802 #define FLD(f) abuf->fields.sfmt_clddu.f
803 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
804 int UNUSED written = 0;
805 IADDR UNUSED pc = abuf->addr;
806 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
808 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
810 DI opval = MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (GET_H_GR (FLD (f_GRj))));
811 sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
813 TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
817 abuf->written = written;
822 /* csdiv: csdiv$pack $GRi,$GRj,$GRk,$CCi,$cond */
825 SEM_FN_NAME (frvbf,csdiv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
827 #define FLD(f) abuf->fields.sfmt_cswap.f
828 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
829 int UNUSED written = 0;
830 IADDR UNUSED pc = abuf->addr;
831 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
833 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
835 frvbf_signed_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), FLD (f_GRk), 0);
840 abuf->written = written;
845 /* cudiv: cudiv$pack $GRi,$GRj,$GRk,$CCi,$cond */
848 SEM_FN_NAME (frvbf,cudiv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
850 #define FLD(f) abuf->fields.sfmt_cswap.f
851 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
852 int UNUSED written = 0;
853 IADDR UNUSED pc = abuf->addr;
854 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
856 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
858 frvbf_unsigned_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), FLD (f_GRk), 0);
863 abuf->written = written;
868 /* csll: csll$pack $GRi,$GRj,$GRk,$CCi,$cond */
871 SEM_FN_NAME (frvbf,csll) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
873 #define FLD(f) abuf->fields.sfmt_cswap.f
874 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
875 int UNUSED written = 0;
876 IADDR UNUSED pc = abuf->addr;
877 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
879 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
881 SI opval = SLLSI (GET_H_GR (FLD (f_GRi)), ANDSI (GET_H_GR (FLD (f_GRj)), 31));
882 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
884 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
888 abuf->written = written;
893 /* csrl: csrl$pack $GRi,$GRj,$GRk,$CCi,$cond */
896 SEM_FN_NAME (frvbf,csrl) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
898 #define FLD(f) abuf->fields.sfmt_cswap.f
899 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
900 int UNUSED written = 0;
901 IADDR UNUSED pc = abuf->addr;
902 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
904 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
906 SI opval = SRLSI (GET_H_GR (FLD (f_GRi)), ANDSI (GET_H_GR (FLD (f_GRj)), 31));
907 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
909 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
913 abuf->written = written;
918 /* csra: csra$pack $GRi,$GRj,$GRk,$CCi,$cond */
921 SEM_FN_NAME (frvbf,csra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
923 #define FLD(f) abuf->fields.sfmt_cswap.f
924 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
925 int UNUSED written = 0;
926 IADDR UNUSED pc = abuf->addr;
927 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
929 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
931 SI opval = SRASI (GET_H_GR (FLD (f_GRi)), ANDSI (GET_H_GR (FLD (f_GRj)), 31));
932 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
934 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
938 abuf->written = written;
943 /* cscan: cscan$pack $GRi,$GRj,$GRk,$CCi,$cond */
946 SEM_FN_NAME (frvbf,cscan) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
948 #define FLD(f) abuf->fields.sfmt_cswap.f
949 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
950 int UNUSED written = 0;
951 IADDR UNUSED pc = abuf->addr;
952 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
954 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
958 tmp_tmp1 = GET_H_GR (FLD (f_GRi));
959 tmp_tmp2 = SRASI (GET_H_GR (FLD (f_GRj)), 1);
961 SI opval = frvbf_scan_result (current_cpu, XORSI (tmp_tmp1, tmp_tmp2));
962 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
964 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
969 abuf->written = written;
974 /* addcc: addcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
977 SEM_FN_NAME (frvbf,addcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
979 #define FLD(f) abuf->fields.sfmt_addcc.f
980 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
981 int UNUSED written = 0;
982 IADDR UNUSED pc = abuf->addr;
983 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
989 tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
990 tmp_tmp = ADDOFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0);
991 if (EQBI (tmp_tmp, 0)) {
992 tmp_cc = ANDQI (tmp_cc, 13);
994 tmp_cc = ORQI (tmp_cc, 2);
996 tmp_tmp = ADDCFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0);
997 if (EQBI (tmp_tmp, 0)) {
998 tmp_cc = ANDQI (tmp_cc, 14);
1000 tmp_cc = ORQI (tmp_cc, 1);
1002 tmp_result = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
1003 if (EQSI (tmp_result, 0)) {
1004 tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1006 if (LTSI (tmp_result, 0)) {
1007 tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1009 tmp_cc = ANDQI (tmp_cc, 3);
1013 SI opval = tmp_result;
1014 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1015 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1019 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1020 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1028 /* subcc: subcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1031 SEM_FN_NAME (frvbf,subcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1033 #define FLD(f) abuf->fields.sfmt_addcc.f
1034 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1035 int UNUSED written = 0;
1036 IADDR UNUSED pc = abuf->addr;
1037 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1043 tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
1044 tmp_tmp = SUBOFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0);
1045 if (EQBI (tmp_tmp, 0)) {
1046 tmp_cc = ANDQI (tmp_cc, 13);
1048 tmp_cc = ORQI (tmp_cc, 2);
1050 tmp_tmp = SUBCFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0);
1051 if (EQBI (tmp_tmp, 0)) {
1052 tmp_cc = ANDQI (tmp_cc, 14);
1054 tmp_cc = ORQI (tmp_cc, 1);
1056 tmp_result = SUBSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
1057 if (EQSI (tmp_result, 0)) {
1058 tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1060 if (LTSI (tmp_result, 0)) {
1061 tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1063 tmp_cc = ANDQI (tmp_cc, 3);
1067 SI opval = tmp_result;
1068 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1069 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1073 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1074 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1082 /* andcc: andcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1085 SEM_FN_NAME (frvbf,andcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1087 #define FLD(f) abuf->fields.sfmt_addcc.f
1088 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1089 int UNUSED written = 0;
1090 IADDR UNUSED pc = abuf->addr;
1091 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1095 tmp_tmp = ANDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
1098 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1099 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1101 if (EQSI (tmp_tmp, 0)) {
1103 UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 7), 4);
1104 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1105 written |= (1 << 4);
1106 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1109 if (LTSI (tmp_tmp, 0)) {
1111 UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 11), 8);
1112 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1113 written |= (1 << 4);
1114 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1118 UQI opval = ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 3);
1119 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1120 written |= (1 << 4);
1121 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1127 abuf->written = written;
1132 /* orcc: orcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1135 SEM_FN_NAME (frvbf,orcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1137 #define FLD(f) abuf->fields.sfmt_addcc.f
1138 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1139 int UNUSED written = 0;
1140 IADDR UNUSED pc = abuf->addr;
1141 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1145 tmp_tmp = ORSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
1148 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1149 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1151 if (EQSI (tmp_tmp, 0)) {
1153 UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 7), 4);
1154 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1155 written |= (1 << 4);
1156 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1159 if (LTSI (tmp_tmp, 0)) {
1161 UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 11), 8);
1162 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1163 written |= (1 << 4);
1164 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1168 UQI opval = ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 3);
1169 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1170 written |= (1 << 4);
1171 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1177 abuf->written = written;
1182 /* xorcc: xorcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1185 SEM_FN_NAME (frvbf,xorcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1187 #define FLD(f) abuf->fields.sfmt_addcc.f
1188 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1189 int UNUSED written = 0;
1190 IADDR UNUSED pc = abuf->addr;
1191 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1195 tmp_tmp = XORSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
1198 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1199 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1201 if (EQSI (tmp_tmp, 0)) {
1203 UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 7), 4);
1204 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1205 written |= (1 << 4);
1206 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1209 if (LTSI (tmp_tmp, 0)) {
1211 UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 11), 8);
1212 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1213 written |= (1 << 4);
1214 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1218 UQI opval = ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 3);
1219 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1220 written |= (1 << 4);
1221 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1227 abuf->written = written;
1232 /* sllcc: sllcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1235 SEM_FN_NAME (frvbf,sllcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1237 #define FLD(f) abuf->fields.sfmt_addcc.f
1238 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1239 int UNUSED written = 0;
1240 IADDR UNUSED pc = abuf->addr;
1241 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1247 tmp_shift = ANDSI (GET_H_GR (FLD (f_GRj)), 31);
1248 tmp_cc = frvbf_set_icc_for_shift_left (current_cpu, GET_H_GR (FLD (f_GRi)), tmp_shift, CPU (h_iccr[FLD (f_ICCi_1)]));
1249 tmp_tmp = SLLSI (GET_H_GR (FLD (f_GRi)), tmp_shift);
1252 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1253 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1255 if (EQSI (tmp_tmp, 0)) {
1256 tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1258 if (LTSI (tmp_tmp, 0)) {
1259 tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1261 tmp_cc = ANDQI (tmp_cc, 3);
1266 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1267 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1275 /* srlcc: srlcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1278 SEM_FN_NAME (frvbf,srlcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1280 #define FLD(f) abuf->fields.sfmt_addcc.f
1281 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1282 int UNUSED written = 0;
1283 IADDR UNUSED pc = abuf->addr;
1284 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1290 tmp_shift = ANDSI (GET_H_GR (FLD (f_GRj)), 31);
1291 tmp_cc = frvbf_set_icc_for_shift_right (current_cpu, GET_H_GR (FLD (f_GRi)), tmp_shift, CPU (h_iccr[FLD (f_ICCi_1)]));
1292 tmp_tmp = SRLSI (GET_H_GR (FLD (f_GRi)), tmp_shift);
1295 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1296 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1298 if (EQSI (tmp_tmp, 0)) {
1299 tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1301 if (LTSI (tmp_tmp, 0)) {
1302 tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1304 tmp_cc = ANDQI (tmp_cc, 3);
1309 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1310 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1318 /* sracc: sracc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1321 SEM_FN_NAME (frvbf,sracc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1323 #define FLD(f) abuf->fields.sfmt_addcc.f
1324 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1325 int UNUSED written = 0;
1326 IADDR UNUSED pc = abuf->addr;
1327 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1333 tmp_shift = ANDSI (GET_H_GR (FLD (f_GRj)), 31);
1334 tmp_cc = frvbf_set_icc_for_shift_right (current_cpu, GET_H_GR (FLD (f_GRi)), tmp_shift, CPU (h_iccr[FLD (f_ICCi_1)]));
1335 tmp_tmp = SRASI (GET_H_GR (FLD (f_GRi)), tmp_shift);
1338 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1339 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1341 if (EQSI (tmp_tmp, 0)) {
1342 tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1344 if (LTSI (tmp_tmp, 0)) {
1345 tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1347 tmp_cc = ANDQI (tmp_cc, 3);
1352 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1353 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1361 /* smulcc: smulcc$pack $GRi,$GRj,$GRdoublek,$ICCi_1 */
1364 SEM_FN_NAME (frvbf,smulcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1366 #define FLD(f) abuf->fields.sfmt_smulcc.f
1367 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1368 int UNUSED written = 0;
1369 IADDR UNUSED pc = abuf->addr;
1370 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1375 tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
1376 tmp_tmp = MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (GET_H_GR (FLD (f_GRj))));
1377 if (EQDI (SRLDI (tmp_tmp, 63), 0)) {
1378 tmp_cc = ANDQI (tmp_cc, 7);
1380 tmp_cc = ORQI (tmp_cc, 8);
1382 if (EQBI (EQDI (tmp_tmp, 0), 0)) {
1383 tmp_cc = ANDQI (tmp_cc, 11);
1385 tmp_cc = ORQI (tmp_cc, 4);
1389 sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
1390 TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
1394 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1395 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1403 /* umulcc: umulcc$pack $GRi,$GRj,$GRdoublek,$ICCi_1 */
1406 SEM_FN_NAME (frvbf,umulcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1408 #define FLD(f) abuf->fields.sfmt_smulcc.f
1409 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1410 int UNUSED written = 0;
1411 IADDR UNUSED pc = abuf->addr;
1412 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1417 tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
1418 tmp_tmp = MULDI (ZEXTSIDI (GET_H_GR (FLD (f_GRi))), ZEXTSIDI (GET_H_GR (FLD (f_GRj))));
1419 if (EQDI (SRLDI (tmp_tmp, 63), 0)) {
1420 tmp_cc = ANDQI (tmp_cc, 7);
1422 tmp_cc = ORQI (tmp_cc, 8);
1424 if (EQBI (EQDI (tmp_tmp, 0), 0)) {
1425 tmp_cc = ANDQI (tmp_cc, 11);
1427 tmp_cc = ORQI (tmp_cc, 4);
1431 sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
1432 TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
1436 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1437 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1445 /* caddcc: caddcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1448 SEM_FN_NAME (frvbf,caddcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1450 #define FLD(f) abuf->fields.sfmt_caddcc.f
1451 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1452 int UNUSED written = 0;
1453 IADDR UNUSED pc = abuf->addr;
1454 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1456 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1461 tmp_cc = CPU (h_iccr[((FLD (f_CCi)) & (3))]);
1462 tmp_tmp = ADDOFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0);
1463 if (EQBI (tmp_tmp, 0)) {
1464 tmp_cc = ANDQI (tmp_cc, 13);
1466 tmp_cc = ORQI (tmp_cc, 2);
1468 tmp_tmp = ADDCFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0);
1469 if (EQBI (tmp_tmp, 0)) {
1470 tmp_cc = ANDQI (tmp_cc, 14);
1472 tmp_cc = ORQI (tmp_cc, 1);
1474 tmp_result = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
1475 if (EQSI (tmp_result, 0)) {
1476 tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1478 if (LTSI (tmp_result, 0)) {
1479 tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1481 tmp_cc = ANDQI (tmp_cc, 3);
1485 SI opval = tmp_result;
1486 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1487 written |= (1 << 6);
1488 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1492 sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1493 written |= (1 << 7);
1494 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1499 abuf->written = written;
1504 /* csubcc: csubcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1507 SEM_FN_NAME (frvbf,csubcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1509 #define FLD(f) abuf->fields.sfmt_caddcc.f
1510 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1511 int UNUSED written = 0;
1512 IADDR UNUSED pc = abuf->addr;
1513 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1515 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1520 tmp_cc = CPU (h_iccr[((FLD (f_CCi)) & (3))]);
1521 tmp_tmp = SUBOFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0);
1522 if (EQBI (tmp_tmp, 0)) {
1523 tmp_cc = ANDQI (tmp_cc, 13);
1525 tmp_cc = ORQI (tmp_cc, 2);
1527 tmp_tmp = SUBCFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0);
1528 if (EQBI (tmp_tmp, 0)) {
1529 tmp_cc = ANDQI (tmp_cc, 14);
1531 tmp_cc = ORQI (tmp_cc, 1);
1533 tmp_result = SUBSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
1534 if (EQSI (tmp_result, 0)) {
1535 tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1537 if (LTSI (tmp_result, 0)) {
1538 tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1540 tmp_cc = ANDQI (tmp_cc, 3);
1544 SI opval = tmp_result;
1545 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1546 written |= (1 << 6);
1547 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1551 sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1552 written |= (1 << 7);
1553 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1558 abuf->written = written;
1563 /* csmulcc: csmulcc$pack $GRi,$GRj,$GRdoublek,$CCi,$cond */
1566 SEM_FN_NAME (frvbf,csmulcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1568 #define FLD(f) abuf->fields.sfmt_csmulcc.f
1569 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1570 int UNUSED written = 0;
1571 IADDR UNUSED pc = abuf->addr;
1572 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1574 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1578 tmp_cc = CPU (h_iccr[((FLD (f_CCi)) & (3))]);
1579 tmp_tmp = MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (GET_H_GR (FLD (f_GRj))));
1580 if (EQDI (SRLDI (tmp_tmp, 63), 0)) {
1581 tmp_cc = ANDQI (tmp_cc, 7);
1583 tmp_cc = ORQI (tmp_cc, 8);
1585 if (EQBI (EQDI (tmp_tmp, 0), 0)) {
1586 tmp_cc = ANDQI (tmp_cc, 11);
1588 tmp_cc = ORQI (tmp_cc, 4);
1592 sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
1593 written |= (1 << 6);
1594 TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
1598 sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1599 written |= (1 << 7);
1600 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1605 abuf->written = written;
1610 /* candcc: candcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1613 SEM_FN_NAME (frvbf,candcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1615 #define FLD(f) abuf->fields.sfmt_caddcc.f
1616 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1617 int UNUSED written = 0;
1618 IADDR UNUSED pc = abuf->addr;
1619 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1621 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1624 tmp_tmp = ANDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
1627 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1628 written |= (1 << 6);
1629 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1631 if (EQSI (tmp_tmp, 0)) {
1633 UQI opval = ORQI (ANDQI (CPU (h_iccr[((FLD (f_CCi)) & (3))]), 7), 4);
1634 sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1635 written |= (1 << 7);
1636 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1639 if (LTSI (tmp_tmp, 0)) {
1641 UQI opval = ORQI (ANDQI (CPU (h_iccr[((FLD (f_CCi)) & (3))]), 11), 8);
1642 sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1643 written |= (1 << 7);
1644 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1648 UQI opval = ANDQI (CPU (h_iccr[((FLD (f_CCi)) & (3))]), 3);
1649 sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1650 written |= (1 << 7);
1651 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1658 abuf->written = written;
1663 /* corcc: corcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1666 SEM_FN_NAME (frvbf,corcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1668 #define FLD(f) abuf->fields.sfmt_caddcc.f
1669 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1670 int UNUSED written = 0;
1671 IADDR UNUSED pc = abuf->addr;
1672 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1674 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1677 tmp_tmp = ORSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
1680 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1681 written |= (1 << 6);
1682 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1684 if (EQSI (tmp_tmp, 0)) {
1686 UQI opval = ORQI (ANDQI (CPU (h_iccr[((FLD (f_CCi)) & (3))]), 7), 4);
1687 sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1688 written |= (1 << 7);
1689 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1692 if (LTSI (tmp_tmp, 0)) {
1694 UQI opval = ORQI (ANDQI (CPU (h_iccr[((FLD (f_CCi)) & (3))]), 11), 8);
1695 sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1696 written |= (1 << 7);
1697 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1701 UQI opval = ANDQI (CPU (h_iccr[((FLD (f_CCi)) & (3))]), 3);
1702 sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1703 written |= (1 << 7);
1704 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1711 abuf->written = written;
1716 /* cxorcc: cxorcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1719 SEM_FN_NAME (frvbf,cxorcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1721 #define FLD(f) abuf->fields.sfmt_caddcc.f
1722 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1723 int UNUSED written = 0;
1724 IADDR UNUSED pc = abuf->addr;
1725 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1727 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1730 tmp_tmp = XORSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
1733 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1734 written |= (1 << 6);
1735 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1737 if (EQSI (tmp_tmp, 0)) {
1739 UQI opval = ORQI (ANDQI (CPU (h_iccr[((FLD (f_CCi)) & (3))]), 7), 4);
1740 sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1741 written |= (1 << 7);
1742 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1745 if (LTSI (tmp_tmp, 0)) {
1747 UQI opval = ORQI (ANDQI (CPU (h_iccr[((FLD (f_CCi)) & (3))]), 11), 8);
1748 sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1749 written |= (1 << 7);
1750 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1754 UQI opval = ANDQI (CPU (h_iccr[((FLD (f_CCi)) & (3))]), 3);
1755 sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1756 written |= (1 << 7);
1757 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1764 abuf->written = written;
1769 /* csllcc: csllcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1772 SEM_FN_NAME (frvbf,csllcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1774 #define FLD(f) abuf->fields.sfmt_caddcc.f
1775 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1776 int UNUSED written = 0;
1777 IADDR UNUSED pc = abuf->addr;
1778 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1780 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1785 tmp_shift = ANDSI (GET_H_GR (FLD (f_GRj)), 31);
1786 tmp_cc = frvbf_set_icc_for_shift_left (current_cpu, GET_H_GR (FLD (f_GRi)), tmp_shift, CPU (h_iccr[((FLD (f_CCi)) & (3))]));
1787 tmp_tmp = SLLSI (GET_H_GR (FLD (f_GRi)), tmp_shift);
1790 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1791 written |= (1 << 6);
1792 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1794 if (EQSI (tmp_tmp, 0)) {
1795 tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1797 if (LTSI (tmp_tmp, 0)) {
1798 tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1800 tmp_cc = ANDQI (tmp_cc, 3);
1805 sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1806 written |= (1 << 7);
1807 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1812 abuf->written = written;
1817 /* csrlcc: csrlcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1820 SEM_FN_NAME (frvbf,csrlcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1822 #define FLD(f) abuf->fields.sfmt_caddcc.f
1823 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1824 int UNUSED written = 0;
1825 IADDR UNUSED pc = abuf->addr;
1826 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1828 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1833 tmp_shift = ANDSI (GET_H_GR (FLD (f_GRj)), 31);
1834 tmp_cc = frvbf_set_icc_for_shift_right (current_cpu, GET_H_GR (FLD (f_GRi)), tmp_shift, CPU (h_iccr[((FLD (f_CCi)) & (3))]));
1835 tmp_tmp = SRLSI (GET_H_GR (FLD (f_GRi)), tmp_shift);
1838 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1839 written |= (1 << 6);
1840 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1842 if (EQSI (tmp_tmp, 0)) {
1843 tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1845 if (LTSI (tmp_tmp, 0)) {
1846 tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1848 tmp_cc = ANDQI (tmp_cc, 3);
1853 sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1854 written |= (1 << 7);
1855 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1860 abuf->written = written;
1865 /* csracc: csracc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1868 SEM_FN_NAME (frvbf,csracc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1870 #define FLD(f) abuf->fields.sfmt_caddcc.f
1871 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1872 int UNUSED written = 0;
1873 IADDR UNUSED pc = abuf->addr;
1874 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1876 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1881 tmp_shift = ANDSI (GET_H_GR (FLD (f_GRj)), 31);
1882 tmp_cc = frvbf_set_icc_for_shift_right (current_cpu, GET_H_GR (FLD (f_GRi)), tmp_shift, CPU (h_iccr[((FLD (f_CCi)) & (3))]));
1883 tmp_tmp = SRASI (GET_H_GR (FLD (f_GRi)), tmp_shift);
1886 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1887 written |= (1 << 6);
1888 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1890 if (EQSI (tmp_tmp, 0)) {
1891 tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1893 if (LTSI (tmp_tmp, 0)) {
1894 tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1896 tmp_cc = ANDQI (tmp_cc, 3);
1901 sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1902 written |= (1 << 7);
1903 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1908 abuf->written = written;
1913 /* addx: addx$pack $GRi,$GRj,$GRk,$ICCi_1 */
1916 SEM_FN_NAME (frvbf,addx) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1918 #define FLD(f) abuf->fields.sfmt_addcc.f
1919 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1920 int UNUSED written = 0;
1921 IADDR UNUSED pc = abuf->addr;
1922 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1925 SI opval = ADDCSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 1)));
1926 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1927 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1934 /* subx: subx$pack $GRi,$GRj,$GRk,$ICCi_1 */
1937 SEM_FN_NAME (frvbf,subx) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1939 #define FLD(f) abuf->fields.sfmt_addcc.f
1940 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1941 int UNUSED written = 0;
1942 IADDR UNUSED pc = abuf->addr;
1943 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1946 SI opval = SUBCSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 1)));
1947 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1948 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1955 /* addxcc: addxcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1958 SEM_FN_NAME (frvbf,addxcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1960 #define FLD(f) abuf->fields.sfmt_addcc.f
1961 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1962 int UNUSED written = 0;
1963 IADDR UNUSED pc = abuf->addr;
1964 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1969 tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
1970 tmp_tmp = ADDCSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), TRUNCQIBI (ANDQI (tmp_cc, 1)));
1971 if (EQSI (ADDOFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), TRUNCQIBI (ANDQI (tmp_cc, 1))), 0)) {
1972 tmp_cc = ANDQI (tmp_cc, 13);
1974 tmp_cc = ORQI (tmp_cc, 2);
1976 if (EQSI (ADDCFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), TRUNCQIBI (ANDQI (tmp_cc, 1))), 0)) {
1977 tmp_cc = ANDQI (tmp_cc, 14);
1979 tmp_cc = ORQI (tmp_cc, 1);
1981 if (EQSI (tmp_tmp, 0)) {
1982 tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1984 if (LTSI (tmp_tmp, 0)) {
1985 tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1987 tmp_cc = ANDQI (tmp_cc, 3);
1992 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1993 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1997 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1998 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2006 /* subxcc: subxcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
2009 SEM_FN_NAME (frvbf,subxcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2011 #define FLD(f) abuf->fields.sfmt_addcc.f
2012 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2013 int UNUSED written = 0;
2014 IADDR UNUSED pc = abuf->addr;
2015 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2020 tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
2021 tmp_tmp = SUBCSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), TRUNCQIBI (ANDQI (tmp_cc, 1)));
2022 if (EQSI (SUBOFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), TRUNCQIBI (ANDQI (tmp_cc, 1))), 0)) {
2023 tmp_cc = ANDQI (tmp_cc, 13);
2025 tmp_cc = ORQI (tmp_cc, 2);
2027 if (EQSI (SUBCFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), TRUNCQIBI (ANDQI (tmp_cc, 1))), 0)) {
2028 tmp_cc = ANDQI (tmp_cc, 14);
2030 tmp_cc = ORQI (tmp_cc, 1);
2032 if (EQSI (tmp_tmp, 0)) {
2033 tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
2035 if (LTSI (tmp_tmp, 0)) {
2036 tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
2038 tmp_cc = ANDQI (tmp_cc, 3);
2043 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2044 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2048 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2049 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2057 /* addss: addss$pack $GRi,$GRj,$GRk */
2060 SEM_FN_NAME (frvbf,addss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2062 #define FLD(f) abuf->fields.sfmt_addcc.f
2063 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2064 int UNUSED written = 0;
2065 IADDR UNUSED pc = abuf->addr;
2066 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2070 SI opval = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
2071 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2072 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2074 if (ADDOFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0)) {
2076 SI opval = (GTSI (GET_H_GR (FLD (f_GRi)), 0)) ? (2147483647) : (LTSI (GET_H_GR (FLD (f_GRi)), 0)) ? (0x80000000) : (0);
2077 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2078 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2087 /* subss: subss$pack $GRi,$GRj,$GRk */
2090 SEM_FN_NAME (frvbf,subss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2092 #define FLD(f) abuf->fields.sfmt_addcc.f
2093 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2094 int UNUSED written = 0;
2095 IADDR UNUSED pc = abuf->addr;
2096 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2100 SI opval = SUBSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
2101 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2102 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2104 if (SUBOFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0)) {
2106 SI opval = (GTSI (GET_H_GR (FLD (f_GRi)), 0)) ? (2147483647) : (LTSI (GET_H_GR (FLD (f_GRi)), 0)) ? (0x80000000) : (0);
2107 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2108 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2117 /* addi: addi$pack $GRi,$s12,$GRk */
2120 SEM_FN_NAME (frvbf,addi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2122 #define FLD(f) abuf->fields.sfmt_swapi.f
2123 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2124 int UNUSED written = 0;
2125 IADDR UNUSED pc = abuf->addr;
2126 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2129 SI opval = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
2130 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2131 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2138 /* subi: subi$pack $GRi,$s12,$GRk */
2141 SEM_FN_NAME (frvbf,subi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2143 #define FLD(f) abuf->fields.sfmt_swapi.f
2144 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2145 int UNUSED written = 0;
2146 IADDR UNUSED pc = abuf->addr;
2147 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2150 SI opval = SUBSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
2151 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2152 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2159 /* andi: andi$pack $GRi,$s12,$GRk */
2162 SEM_FN_NAME (frvbf,andi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2164 #define FLD(f) abuf->fields.sfmt_swapi.f
2165 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2166 int UNUSED written = 0;
2167 IADDR UNUSED pc = abuf->addr;
2168 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2171 SI opval = ANDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
2172 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2173 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2180 /* ori: ori$pack $GRi,$s12,$GRk */
2183 SEM_FN_NAME (frvbf,ori) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2185 #define FLD(f) abuf->fields.sfmt_swapi.f
2186 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2187 int UNUSED written = 0;
2188 IADDR UNUSED pc = abuf->addr;
2189 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2192 SI opval = ORSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
2193 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2194 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2201 /* xori: xori$pack $GRi,$s12,$GRk */
2204 SEM_FN_NAME (frvbf,xori) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2206 #define FLD(f) abuf->fields.sfmt_swapi.f
2207 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2208 int UNUSED written = 0;
2209 IADDR UNUSED pc = abuf->addr;
2210 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2213 SI opval = XORSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
2214 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2215 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2222 /* sdivi: sdivi$pack $GRi,$s12,$GRk */
2225 SEM_FN_NAME (frvbf,sdivi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2227 #define FLD(f) abuf->fields.sfmt_swapi.f
2228 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2229 int UNUSED written = 0;
2230 IADDR UNUSED pc = abuf->addr;
2231 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2234 frvbf_signed_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), FLD (f_d12), FLD (f_GRk), 0);
2242 /* nsdivi: nsdivi$pack $GRi,$s12,$GRk */
2245 SEM_FN_NAME (frvbf,nsdivi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2247 #define FLD(f) abuf->fields.sfmt_swapi.f
2248 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2249 int UNUSED written = 0;
2250 IADDR UNUSED pc = abuf->addr;
2251 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2254 frvbf_signed_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), FLD (f_d12), FLD (f_GRk), 1);
2262 /* udivi: udivi$pack $GRi,$s12,$GRk */
2265 SEM_FN_NAME (frvbf,udivi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2267 #define FLD(f) abuf->fields.sfmt_swapi.f
2268 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2269 int UNUSED written = 0;
2270 IADDR UNUSED pc = abuf->addr;
2271 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2274 frvbf_unsigned_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), FLD (f_d12), FLD (f_GRk), 0);
2282 /* nudivi: nudivi$pack $GRi,$s12,$GRk */
2285 SEM_FN_NAME (frvbf,nudivi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2287 #define FLD(f) abuf->fields.sfmt_swapi.f
2288 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2289 int UNUSED written = 0;
2290 IADDR UNUSED pc = abuf->addr;
2291 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2294 frvbf_unsigned_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), FLD (f_d12), FLD (f_GRk), 1);
2302 /* smuli: smuli$pack $GRi,$s12,$GRdoublek */
2305 SEM_FN_NAME (frvbf,smuli) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2307 #define FLD(f) abuf->fields.sfmt_smuli.f
2308 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2309 int UNUSED written = 0;
2310 IADDR UNUSED pc = abuf->addr;
2311 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2314 DI opval = MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (FLD (f_d12)));
2315 sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
2316 TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
2323 /* umuli: umuli$pack $GRi,$s12,$GRdoublek */
2326 SEM_FN_NAME (frvbf,umuli) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2328 #define FLD(f) abuf->fields.sfmt_smuli.f
2329 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2330 int UNUSED written = 0;
2331 IADDR UNUSED pc = abuf->addr;
2332 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2335 DI opval = MULDI (ZEXTSIDI (GET_H_GR (FLD (f_GRi))), ZEXTSIDI (FLD (f_d12)));
2336 sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
2337 TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
2344 /* slli: slli$pack $GRi,$s12,$GRk */
2347 SEM_FN_NAME (frvbf,slli) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2349 #define FLD(f) abuf->fields.sfmt_swapi.f
2350 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2351 int UNUSED written = 0;
2352 IADDR UNUSED pc = abuf->addr;
2353 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2356 SI opval = SLLSI (GET_H_GR (FLD (f_GRi)), ANDSI (FLD (f_d12), 31));
2357 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2358 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2365 /* srli: srli$pack $GRi,$s12,$GRk */
2368 SEM_FN_NAME (frvbf,srli) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2370 #define FLD(f) abuf->fields.sfmt_swapi.f
2371 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2372 int UNUSED written = 0;
2373 IADDR UNUSED pc = abuf->addr;
2374 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2377 SI opval = SRLSI (GET_H_GR (FLD (f_GRi)), ANDSI (FLD (f_d12), 31));
2378 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2379 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2386 /* srai: srai$pack $GRi,$s12,$GRk */
2389 SEM_FN_NAME (frvbf,srai) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2391 #define FLD(f) abuf->fields.sfmt_swapi.f
2392 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2393 int UNUSED written = 0;
2394 IADDR UNUSED pc = abuf->addr;
2395 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2398 SI opval = SRASI (GET_H_GR (FLD (f_GRi)), ANDSI (FLD (f_d12), 31));
2399 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2400 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2407 /* scani: scani$pack $GRi,$s12,$GRk */
2410 SEM_FN_NAME (frvbf,scani) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2412 #define FLD(f) abuf->fields.sfmt_swapi.f
2413 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2414 int UNUSED written = 0;
2415 IADDR UNUSED pc = abuf->addr;
2416 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2421 tmp_tmp1 = GET_H_GR (FLD (f_GRi));
2422 tmp_tmp2 = SRASI (FLD (f_d12), 1);
2424 SI opval = frvbf_scan_result (current_cpu, XORSI (tmp_tmp1, tmp_tmp2));
2425 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2426 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2434 /* addicc: addicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2437 SEM_FN_NAME (frvbf,addicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2439 #define FLD(f) abuf->fields.sfmt_addicc.f
2440 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2441 int UNUSED written = 0;
2442 IADDR UNUSED pc = abuf->addr;
2443 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2449 tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
2450 tmp_tmp = ADDOFSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), 0);
2451 if (EQBI (tmp_tmp, 0)) {
2452 tmp_cc = ANDQI (tmp_cc, 13);
2454 tmp_cc = ORQI (tmp_cc, 2);
2456 tmp_tmp = ADDCFSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), 0);
2457 if (EQBI (tmp_tmp, 0)) {
2458 tmp_cc = ANDQI (tmp_cc, 14);
2460 tmp_cc = ORQI (tmp_cc, 1);
2462 tmp_result = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10));
2463 if (EQSI (tmp_result, 0)) {
2464 tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
2466 if (LTSI (tmp_result, 0)) {
2467 tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
2469 tmp_cc = ANDQI (tmp_cc, 3);
2473 SI opval = tmp_result;
2474 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2475 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2479 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2480 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2488 /* subicc: subicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2491 SEM_FN_NAME (frvbf,subicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2493 #define FLD(f) abuf->fields.sfmt_addicc.f
2494 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2495 int UNUSED written = 0;
2496 IADDR UNUSED pc = abuf->addr;
2497 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2503 tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
2504 tmp_tmp = SUBOFSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), 0);
2505 if (EQBI (tmp_tmp, 0)) {
2506 tmp_cc = ANDQI (tmp_cc, 13);
2508 tmp_cc = ORQI (tmp_cc, 2);
2510 tmp_tmp = SUBCFSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), 0);
2511 if (EQBI (tmp_tmp, 0)) {
2512 tmp_cc = ANDQI (tmp_cc, 14);
2514 tmp_cc = ORQI (tmp_cc, 1);
2516 tmp_result = SUBSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10));
2517 if (EQSI (tmp_result, 0)) {
2518 tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
2520 if (LTSI (tmp_result, 0)) {
2521 tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
2523 tmp_cc = ANDQI (tmp_cc, 3);
2527 SI opval = tmp_result;
2528 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2529 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2533 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2534 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2542 /* andicc: andicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2545 SEM_FN_NAME (frvbf,andicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2547 #define FLD(f) abuf->fields.sfmt_addicc.f
2548 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2549 int UNUSED written = 0;
2550 IADDR UNUSED pc = abuf->addr;
2551 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2555 tmp_tmp = ANDSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10));
2558 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2559 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2561 if (EQSI (tmp_tmp, 0)) {
2563 UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 7), 4);
2564 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2565 written |= (1 << 4);
2566 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2569 if (LTSI (tmp_tmp, 0)) {
2571 UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 11), 8);
2572 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2573 written |= (1 << 4);
2574 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2578 UQI opval = ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 3);
2579 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2580 written |= (1 << 4);
2581 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2587 abuf->written = written;
2592 /* oricc: oricc$pack $GRi,$s10,$GRk,$ICCi_1 */
2595 SEM_FN_NAME (frvbf,oricc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2597 #define FLD(f) abuf->fields.sfmt_addicc.f
2598 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2599 int UNUSED written = 0;
2600 IADDR UNUSED pc = abuf->addr;
2601 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2605 tmp_tmp = ORSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10));
2608 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2609 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2611 if (EQSI (tmp_tmp, 0)) {
2613 UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 7), 4);
2614 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2615 written |= (1 << 4);
2616 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2619 if (LTSI (tmp_tmp, 0)) {
2621 UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 11), 8);
2622 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2623 written |= (1 << 4);
2624 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2628 UQI opval = ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 3);
2629 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2630 written |= (1 << 4);
2631 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2637 abuf->written = written;
2642 /* xoricc: xoricc$pack $GRi,$s10,$GRk,$ICCi_1 */
2645 SEM_FN_NAME (frvbf,xoricc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2647 #define FLD(f) abuf->fields.sfmt_addicc.f
2648 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2649 int UNUSED written = 0;
2650 IADDR UNUSED pc = abuf->addr;
2651 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2655 tmp_tmp = XORSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10));
2658 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2659 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2661 if (EQSI (tmp_tmp, 0)) {
2663 UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 7), 4);
2664 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2665 written |= (1 << 4);
2666 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2669 if (LTSI (tmp_tmp, 0)) {
2671 UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 11), 8);
2672 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2673 written |= (1 << 4);
2674 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2678 UQI opval = ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 3);
2679 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2680 written |= (1 << 4);
2681 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2687 abuf->written = written;
2692 /* smulicc: smulicc$pack $GRi,$s10,$GRdoublek,$ICCi_1 */
2695 SEM_FN_NAME (frvbf,smulicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2697 #define FLD(f) abuf->fields.sfmt_smulicc.f
2698 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2699 int UNUSED written = 0;
2700 IADDR UNUSED pc = abuf->addr;
2701 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2706 tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
2707 tmp_tmp = MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (FLD (f_s10)));
2708 if (EQDI (SRLDI (tmp_tmp, 63), 0)) {
2709 tmp_cc = ANDQI (tmp_cc, 7);
2711 tmp_cc = ORQI (tmp_cc, 8);
2713 if (EQBI (EQDI (tmp_tmp, 0), 0)) {
2714 tmp_cc = ANDQI (tmp_cc, 11);
2716 tmp_cc = ORQI (tmp_cc, 4);
2720 sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
2721 TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
2725 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2726 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2734 /* umulicc: umulicc$pack $GRi,$s10,$GRdoublek,$ICCi_1 */
2737 SEM_FN_NAME (frvbf,umulicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2739 #define FLD(f) abuf->fields.sfmt_smulicc.f
2740 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2741 int UNUSED written = 0;
2742 IADDR UNUSED pc = abuf->addr;
2743 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2748 tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
2749 tmp_tmp = MULDI (ZEXTSIDI (GET_H_GR (FLD (f_GRi))), ZEXTSIDI (FLD (f_s10)));
2750 if (EQDI (SRLDI (tmp_tmp, 63), 0)) {
2751 tmp_cc = ANDQI (tmp_cc, 7);
2753 tmp_cc = ORQI (tmp_cc, 8);
2755 if (EQBI (EQDI (tmp_tmp, 0), 0)) {
2756 tmp_cc = ANDQI (tmp_cc, 11);
2758 tmp_cc = ORQI (tmp_cc, 4);
2762 sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
2763 TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
2767 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2768 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2776 /* sllicc: sllicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2779 SEM_FN_NAME (frvbf,sllicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2781 #define FLD(f) abuf->fields.sfmt_addicc.f
2782 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2783 int UNUSED written = 0;
2784 IADDR UNUSED pc = abuf->addr;
2785 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2791 tmp_shift = ANDSI (FLD (f_s10), 31);
2792 tmp_cc = frvbf_set_icc_for_shift_left (current_cpu, GET_H_GR (FLD (f_GRi)), tmp_shift, CPU (h_iccr[FLD (f_ICCi_1)]));
2793 tmp_tmp = SLLSI (GET_H_GR (FLD (f_GRi)), tmp_shift);
2796 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2797 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2799 if (EQSI (tmp_tmp, 0)) {
2800 tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
2802 if (LTSI (tmp_tmp, 0)) {
2803 tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
2805 tmp_cc = ANDQI (tmp_cc, 3);
2810 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2811 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2819 /* srlicc: srlicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2822 SEM_FN_NAME (frvbf,srlicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2824 #define FLD(f) abuf->fields.sfmt_addicc.f
2825 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2826 int UNUSED written = 0;
2827 IADDR UNUSED pc = abuf->addr;
2828 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2834 tmp_shift = ANDSI (FLD (f_s10), 31);
2835 tmp_cc = frvbf_set_icc_for_shift_right (current_cpu, GET_H_GR (FLD (f_GRi)), tmp_shift, CPU (h_iccr[FLD (f_ICCi_1)]));
2836 tmp_tmp = SRLSI (GET_H_GR (FLD (f_GRi)), tmp_shift);
2839 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2840 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2842 if (EQSI (tmp_tmp, 0)) {
2843 tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
2845 if (LTSI (tmp_tmp, 0)) {
2846 tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
2848 tmp_cc = ANDQI (tmp_cc, 3);
2853 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2854 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2862 /* sraicc: sraicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2865 SEM_FN_NAME (frvbf,sraicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2867 #define FLD(f) abuf->fields.sfmt_addicc.f
2868 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2869 int UNUSED written = 0;
2870 IADDR UNUSED pc = abuf->addr;
2871 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2877 tmp_shift = ANDSI (FLD (f_s10), 31);
2878 tmp_cc = frvbf_set_icc_for_shift_right (current_cpu, GET_H_GR (FLD (f_GRi)), tmp_shift, CPU (h_iccr[FLD (f_ICCi_1)]));
2879 tmp_tmp = SRASI (GET_H_GR (FLD (f_GRi)), tmp_shift);
2882 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2883 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2885 if (EQSI (tmp_tmp, 0)) {
2886 tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
2888 if (LTSI (tmp_tmp, 0)) {
2889 tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
2891 tmp_cc = ANDQI (tmp_cc, 3);
2896 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2897 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2905 /* addxi: addxi$pack $GRi,$s10,$GRk,$ICCi_1 */
2908 SEM_FN_NAME (frvbf,addxi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2910 #define FLD(f) abuf->fields.sfmt_addicc.f
2911 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2912 int UNUSED written = 0;
2913 IADDR UNUSED pc = abuf->addr;
2914 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2917 SI opval = ADDCSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 1)));
2918 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2919 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2926 /* subxi: subxi$pack $GRi,$s10,$GRk,$ICCi_1 */
2929 SEM_FN_NAME (frvbf,subxi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2931 #define FLD(f) abuf->fields.sfmt_addicc.f
2932 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2933 int UNUSED written = 0;
2934 IADDR UNUSED pc = abuf->addr;
2935 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2938 SI opval = SUBCSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 1)));
2939 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2940 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2947 /* addxicc: addxicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2950 SEM_FN_NAME (frvbf,addxicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2952 #define FLD(f) abuf->fields.sfmt_addicc.f
2953 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2954 int UNUSED written = 0;
2955 IADDR UNUSED pc = abuf->addr;
2956 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2961 tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
2962 tmp_tmp = ADDCSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), TRUNCQIBI (ANDQI (tmp_cc, 1)));
2963 if (EQSI (ADDOFSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), TRUNCQIBI (ANDQI (tmp_cc, 1))), 0)) {
2964 tmp_cc = ANDQI (tmp_cc, 13);
2966 tmp_cc = ORQI (tmp_cc, 2);
2968 if (EQSI (ADDCFSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), TRUNCQIBI (ANDQI (tmp_cc, 1))), 0)) {
2969 tmp_cc = ANDQI (tmp_cc, 14);
2971 tmp_cc = ORQI (tmp_cc, 1);
2973 if (EQSI (tmp_tmp, 0)) {
2974 tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
2976 if (LTSI (tmp_tmp, 0)) {
2977 tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
2979 tmp_cc = ANDQI (tmp_cc, 3);
2984 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2985 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2989 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2990 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2998 /* subxicc: subxicc$pack $GRi,$s10,$GRk,$ICCi_1 */
3001 SEM_FN_NAME (frvbf,subxicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3003 #define FLD(f) abuf->fields.sfmt_addicc.f
3004 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3005 int UNUSED written = 0;
3006 IADDR UNUSED pc = abuf->addr;
3007 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3012 tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
3013 tmp_tmp = SUBCSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), TRUNCQIBI (ANDQI (tmp_cc, 1)));
3014 if (EQSI (SUBOFSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), TRUNCQIBI (ANDQI (tmp_cc, 1))), 0)) {
3015 tmp_cc = ANDQI (tmp_cc, 13);
3017 tmp_cc = ORQI (tmp_cc, 2);
3019 if (EQSI (SUBCFSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), TRUNCQIBI (ANDQI (tmp_cc, 1))), 0)) {
3020 tmp_cc = ANDQI (tmp_cc, 14);
3022 tmp_cc = ORQI (tmp_cc, 1);
3024 if (EQSI (tmp_tmp, 0)) {
3025 tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
3027 if (LTSI (tmp_tmp, 0)) {
3028 tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
3030 tmp_cc = ANDQI (tmp_cc, 3);
3035 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3036 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3040 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
3041 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
3049 /* cmpb: cmpb$pack $GRi,$GRj,$ICCi_1 */
3052 SEM_FN_NAME (frvbf,cmpb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3054 #define FLD(f) abuf->fields.sfmt_smulcc.f
3055 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3056 int UNUSED written = 0;
3057 IADDR UNUSED pc = abuf->addr;
3058 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3062 if (EQBI (EQSI (ANDSI (GET_H_GR (FLD (f_GRi)), 0xff000000), ANDSI (GET_H_GR (FLD (f_GRj)), 0xff000000)), 0)) {
3063 tmp_cc = ANDQI (tmp_cc, 7);
3065 tmp_cc = ORQI (tmp_cc, 8);
3067 if (EQBI (EQSI (ANDSI (GET_H_GR (FLD (f_GRi)), 16711680), ANDSI (GET_H_GR (FLD (f_GRj)), 16711680)), 0)) {
3068 tmp_cc = ANDQI (tmp_cc, 11);
3070 tmp_cc = ORQI (tmp_cc, 4);
3072 if (EQBI (EQSI (ANDSI (GET_H_GR (FLD (f_GRi)), 65280), ANDSI (GET_H_GR (FLD (f_GRj)), 65280)), 0)) {
3073 tmp_cc = ANDQI (tmp_cc, 13);
3075 tmp_cc = ORQI (tmp_cc, 2);
3077 if (EQBI (EQSI (ANDSI (GET_H_GR (FLD (f_GRi)), 255), ANDSI (GET_H_GR (FLD (f_GRj)), 255)), 0)) {
3078 tmp_cc = ANDQI (tmp_cc, 14);
3080 tmp_cc = ORQI (tmp_cc, 1);
3084 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
3085 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
3093 /* cmpba: cmpba$pack $GRi,$GRj,$ICCi_1 */
3096 SEM_FN_NAME (frvbf,cmpba) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3098 #define FLD(f) abuf->fields.sfmt_smulcc.f
3099 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3100 int UNUSED written = 0;
3101 IADDR UNUSED pc = abuf->addr;
3102 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3107 if (EQBI (ORIF (EQSI (ANDSI (GET_H_GR (FLD (f_GRi)), 0xff000000), ANDSI (GET_H_GR (FLD (f_GRj)), 0xff000000)), ORIF (EQSI (ANDSI (GET_H_GR (FLD (f_GRi)), 16711680), ANDSI (GET_H_GR (FLD (f_GRj)), 16711680)), ORIF (EQSI (ANDSI (GET_H_GR (FLD (f_GRi)), 65280), ANDSI (GET_H_GR (FLD (f_GRj)), 65280)), EQSI (ANDSI (GET_H_GR (FLD (f_GRi)), 255), ANDSI (GET_H_GR (FLD (f_GRj)), 255))))), 0)) {
3108 tmp_cc = ANDQI (tmp_cc, 14);
3110 tmp_cc = ORQI (tmp_cc, 1);
3114 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
3115 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
3123 /* setlo: setlo$pack $ulo16,$GRklo */
3126 SEM_FN_NAME (frvbf,setlo) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3128 #define FLD(f) abuf->fields.sfmt_setlo.f
3129 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3130 int UNUSED written = 0;
3131 IADDR UNUSED pc = abuf->addr;
3132 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3135 UHI opval = FLD (f_u16);
3136 sim_queue_fn_hi_write (current_cpu, frvbf_h_gr_lo_set, FLD (f_GRk), opval);
3137 TRACE_RESULT (current_cpu, abuf, "gr_lo", 'x', opval);
3144 /* sethi: sethi$pack $uhi16,$GRkhi */
3147 SEM_FN_NAME (frvbf,sethi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3149 #define FLD(f) abuf->fields.sfmt_sethi.f
3150 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3151 int UNUSED written = 0;
3152 IADDR UNUSED pc = abuf->addr;
3153 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3156 UHI opval = FLD (f_u16);
3157 sim_queue_fn_hi_write (current_cpu, frvbf_h_gr_hi_set, FLD (f_GRk), opval);
3158 TRACE_RESULT (current_cpu, abuf, "gr_hi", 'x', opval);
3165 /* setlos: setlos$pack $slo16,$GRk */
3168 SEM_FN_NAME (frvbf,setlos) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3170 #define FLD(f) abuf->fields.sfmt_setlos.f
3171 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3172 int UNUSED written = 0;
3173 IADDR UNUSED pc = abuf->addr;
3174 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3177 SI opval = FLD (f_s16);
3178 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3179 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3186 /* ldsb: ldsb$pack @($GRi,$GRj),$GRk */
3189 SEM_FN_NAME (frvbf,ldsb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3191 #define FLD(f) abuf->fields.sfmt_addcc.f
3192 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3193 int UNUSED written = 0;
3194 IADDR UNUSED pc = abuf->addr;
3195 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3198 SI opval = frvbf_read_mem_QI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3199 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3200 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3207 /* ldub: ldub$pack @($GRi,$GRj),$GRk */
3210 SEM_FN_NAME (frvbf,ldub) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3212 #define FLD(f) abuf->fields.sfmt_addcc.f
3213 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3214 int UNUSED written = 0;
3215 IADDR UNUSED pc = abuf->addr;
3216 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3219 SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3220 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3221 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3228 /* ldsh: ldsh$pack @($GRi,$GRj),$GRk */
3231 SEM_FN_NAME (frvbf,ldsh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3233 #define FLD(f) abuf->fields.sfmt_addcc.f
3234 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3235 int UNUSED written = 0;
3236 IADDR UNUSED pc = abuf->addr;
3237 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3240 SI opval = frvbf_read_mem_HI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3241 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3242 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3249 /* lduh: lduh$pack @($GRi,$GRj),$GRk */
3252 SEM_FN_NAME (frvbf,lduh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3254 #define FLD(f) abuf->fields.sfmt_addcc.f
3255 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3256 int UNUSED written = 0;
3257 IADDR UNUSED pc = abuf->addr;
3258 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3261 SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3262 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3263 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3270 /* ld: ld$pack @($GRi,$GRj),$GRk */
3273 SEM_FN_NAME (frvbf,ld) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3275 #define FLD(f) abuf->fields.sfmt_addcc.f
3276 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3277 int UNUSED written = 0;
3278 IADDR UNUSED pc = abuf->addr;
3279 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3282 SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3283 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3284 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3291 /* ldbf: ldbf$pack @($GRi,$GRj),$FRintk */
3294 SEM_FN_NAME (frvbf,ldbf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3296 #define FLD(f) abuf->fields.sfmt_cldbfu.f
3297 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3298 int UNUSED written = 0;
3299 IADDR UNUSED pc = abuf->addr;
3300 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3303 SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3304 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
3305 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
3312 /* ldhf: ldhf$pack @($GRi,$GRj),$FRintk */
3315 SEM_FN_NAME (frvbf,ldhf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3317 #define FLD(f) abuf->fields.sfmt_cldbfu.f
3318 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3319 int UNUSED written = 0;
3320 IADDR UNUSED pc = abuf->addr;
3321 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3324 SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3325 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
3326 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
3333 /* ldf: ldf$pack @($GRi,$GRj),$FRintk */
3336 SEM_FN_NAME (frvbf,ldf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3338 #define FLD(f) abuf->fields.sfmt_cldbfu.f
3339 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3340 int UNUSED written = 0;
3341 IADDR UNUSED pc = abuf->addr;
3342 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3345 SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3346 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
3347 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
3354 /* ldc: ldc$pack @($GRi,$GRj),$CPRk */
3357 SEM_FN_NAME (frvbf,ldc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3359 #define FLD(f) abuf->fields.sfmt_ldcu.f
3360 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3361 int UNUSED written = 0;
3362 IADDR UNUSED pc = abuf->addr;
3363 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3366 SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3367 sim_queue_si_write (current_cpu, & CPU (h_cpr[FLD (f_CPRk)]), opval);
3368 TRACE_RESULT (current_cpu, abuf, "cpr", 'x', opval);
3375 /* nldsb: nldsb$pack @($GRi,$GRj),$GRk */
3378 SEM_FN_NAME (frvbf,nldsb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3380 #define FLD(f) abuf->fields.sfmt_addcc.f
3381 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3382 int UNUSED written = 0;
3383 IADDR UNUSED pc = abuf->addr;
3384 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3388 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 1, 0);
3391 SI opval = frvbf_read_mem_QI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3392 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3393 written |= (1 << 6);
3394 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3399 abuf->written = written;
3404 /* nldub: nldub$pack @($GRi,$GRj),$GRk */
3407 SEM_FN_NAME (frvbf,nldub) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3409 #define FLD(f) abuf->fields.sfmt_addcc.f
3410 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3411 int UNUSED written = 0;
3412 IADDR UNUSED pc = abuf->addr;
3413 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3417 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 0, 0);
3420 SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3421 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3422 written |= (1 << 6);
3423 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3428 abuf->written = written;
3433 /* nldsh: nldsh$pack @($GRi,$GRj),$GRk */
3436 SEM_FN_NAME (frvbf,nldsh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3438 #define FLD(f) abuf->fields.sfmt_addcc.f
3439 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3440 int UNUSED written = 0;
3441 IADDR UNUSED pc = abuf->addr;
3442 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3446 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 3, 0);
3449 SI opval = frvbf_read_mem_HI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3450 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3451 written |= (1 << 6);
3452 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3457 abuf->written = written;
3462 /* nlduh: nlduh$pack @($GRi,$GRj),$GRk */
3465 SEM_FN_NAME (frvbf,nlduh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3467 #define FLD(f) abuf->fields.sfmt_addcc.f
3468 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3469 int UNUSED written = 0;
3470 IADDR UNUSED pc = abuf->addr;
3471 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3475 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 2, 0);
3478 SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3479 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3480 written |= (1 << 6);
3481 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3486 abuf->written = written;
3491 /* nld: nld$pack @($GRi,$GRj),$GRk */
3494 SEM_FN_NAME (frvbf,nld) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3496 #define FLD(f) abuf->fields.sfmt_addcc.f
3497 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3498 int UNUSED written = 0;
3499 IADDR UNUSED pc = abuf->addr;
3500 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3504 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 4, 0);
3507 SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3508 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3509 written |= (1 << 6);
3510 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3515 abuf->written = written;
3520 /* nldbf: nldbf$pack @($GRi,$GRj),$FRintk */
3523 SEM_FN_NAME (frvbf,nldbf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3525 #define FLD(f) abuf->fields.sfmt_cldbfu.f
3526 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3527 int UNUSED written = 0;
3528 IADDR UNUSED pc = abuf->addr;
3529 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3533 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 0, 1);
3536 SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3537 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
3538 written |= (1 << 6);
3539 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
3544 abuf->written = written;
3549 /* nldhf: nldhf$pack @($GRi,$GRj),$FRintk */
3552 SEM_FN_NAME (frvbf,nldhf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3554 #define FLD(f) abuf->fields.sfmt_cldbfu.f
3555 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3556 int UNUSED written = 0;
3557 IADDR UNUSED pc = abuf->addr;
3558 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3562 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 2, 1);
3565 SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3566 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
3567 written |= (1 << 6);
3568 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
3573 abuf->written = written;
3578 /* nldf: nldf$pack @($GRi,$GRj),$FRintk */
3581 SEM_FN_NAME (frvbf,nldf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3583 #define FLD(f) abuf->fields.sfmt_cldbfu.f
3584 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3585 int UNUSED written = 0;
3586 IADDR UNUSED pc = abuf->addr;
3587 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3591 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 4, 1);
3594 SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3595 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
3596 written |= (1 << 6);
3597 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
3602 abuf->written = written;
3607 /* ldd: ldd$pack @($GRi,$GRj),$GRdoublek */
3610 SEM_FN_NAME (frvbf,ldd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3612 #define FLD(f) abuf->fields.sfmt_smulcc.f
3613 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3614 int UNUSED written = 0;
3615 IADDR UNUSED pc = abuf->addr;
3616 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3620 if (NESI (FLD (f_GRk), 0)) {
3622 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3624 DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
3625 sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
3626 written |= (1 << 4);
3627 TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
3633 abuf->written = written;
3638 /* lddf: lddf$pack @($GRi,$GRj),$FRdoublek */
3641 SEM_FN_NAME (frvbf,lddf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3643 #define FLD(f) abuf->fields.sfmt_clddfu.f
3644 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3645 int UNUSED written = 0;
3646 IADDR UNUSED pc = abuf->addr;
3647 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3652 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3654 DF opval = frvbf_read_mem_DF (current_cpu, pc, tmp_address);
3655 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
3656 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
3665 /* lddc: lddc$pack @($GRi,$GRj),$CPRdoublek */
3668 SEM_FN_NAME (frvbf,lddc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3670 #define FLD(f) abuf->fields.sfmt_lddcu.f
3671 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3672 int UNUSED written = 0;
3673 IADDR UNUSED pc = abuf->addr;
3674 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3679 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3681 DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
3682 sim_queue_fn_di_write (current_cpu, frvbf_h_cpr_double_set, FLD (f_CPRk), opval);
3683 TRACE_RESULT (current_cpu, abuf, "cpr_double", 'D', opval);
3692 /* nldd: nldd$pack @($GRi,$GRj),$GRdoublek */
3695 SEM_FN_NAME (frvbf,nldd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3697 #define FLD(f) abuf->fields.sfmt_smulcc.f
3698 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3699 int UNUSED written = 0;
3700 IADDR UNUSED pc = abuf->addr;
3701 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3707 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 5, 0);
3709 if (NESI (FLD (f_GRk), 0)) {
3711 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3713 DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
3714 sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
3715 written |= (1 << 6);
3716 TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
3724 abuf->written = written;
3729 /* nlddf: nlddf$pack @($GRi,$GRj),$FRdoublek */
3732 SEM_FN_NAME (frvbf,nlddf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3734 #define FLD(f) abuf->fields.sfmt_clddfu.f
3735 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3736 int UNUSED written = 0;
3737 IADDR UNUSED pc = abuf->addr;
3738 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3744 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 5, 1);
3747 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3749 DF opval = frvbf_read_mem_DF (current_cpu, pc, tmp_address);
3750 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
3751 written |= (1 << 6);
3752 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
3759 abuf->written = written;
3764 /* ldq: ldq$pack @($GRi,$GRj),$GRk */
3767 SEM_FN_NAME (frvbf,ldq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3769 #define FLD(f) abuf->fields.sfmt_smulcc.f
3770 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3771 int UNUSED written = 0;
3772 IADDR UNUSED pc = abuf->addr;
3773 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3778 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3779 frvbf_load_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
3787 /* ldqf: ldqf$pack @($GRi,$GRj),$FRintk */
3790 SEM_FN_NAME (frvbf,ldqf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3792 #define FLD(f) abuf->fields.sfmt_cstdfu.f
3793 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3794 int UNUSED written = 0;
3795 IADDR UNUSED pc = abuf->addr;
3796 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3801 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3802 frvbf_load_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
3810 /* ldqc: ldqc$pack @($GRi,$GRj),$CPRk */
3813 SEM_FN_NAME (frvbf,ldqc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3815 #define FLD(f) abuf->fields.sfmt_stdcu.f
3816 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3817 int UNUSED written = 0;
3818 IADDR UNUSED pc = abuf->addr;
3819 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3824 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3825 frvbf_load_quad_CPR (current_cpu, pc, tmp_address, FLD (f_CPRk));
3833 /* nldq: nldq$pack @($GRi,$GRj),$GRk */
3836 SEM_FN_NAME (frvbf,nldq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3838 #define FLD(f) abuf->fields.sfmt_smulcc.f
3839 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3840 int UNUSED written = 0;
3841 IADDR UNUSED pc = abuf->addr;
3842 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3848 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 6, 0);
3851 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3852 frvbf_load_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
3862 /* nldqf: nldqf$pack @($GRi,$GRj),$FRintk */
3865 SEM_FN_NAME (frvbf,nldqf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3867 #define FLD(f) abuf->fields.sfmt_cstdfu.f
3868 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3869 int UNUSED written = 0;
3870 IADDR UNUSED pc = abuf->addr;
3871 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3877 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 6, 1);
3880 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3881 frvbf_load_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
3891 /* ldsbu: ldsbu$pack @($GRi,$GRj),$GRk */
3894 SEM_FN_NAME (frvbf,ldsbu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3896 #define FLD(f) abuf->fields.sfmt_cldsbu.f
3897 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3898 int UNUSED written = 0;
3899 IADDR UNUSED pc = abuf->addr;
3900 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3904 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3906 SI opval = frvbf_read_mem_QI (current_cpu, pc, tmp_address);
3907 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3908 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3910 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
3913 SI opval = tmp_address;
3914 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
3915 written |= (1 << 5);
3916 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3918 frvbf_force_update (current_cpu);
3923 abuf->written = written;
3928 /* ldubu: ldubu$pack @($GRi,$GRj),$GRk */
3931 SEM_FN_NAME (frvbf,ldubu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3933 #define FLD(f) abuf->fields.sfmt_cldsbu.f
3934 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3935 int UNUSED written = 0;
3936 IADDR UNUSED pc = abuf->addr;
3937 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3941 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3943 SI opval = frvbf_read_mem_UQI (current_cpu, pc, tmp_address);
3944 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3945 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3947 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
3950 SI opval = tmp_address;
3951 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
3952 written |= (1 << 5);
3953 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3955 frvbf_force_update (current_cpu);
3960 abuf->written = written;
3965 /* ldshu: ldshu$pack @($GRi,$GRj),$GRk */
3968 SEM_FN_NAME (frvbf,ldshu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3970 #define FLD(f) abuf->fields.sfmt_cldsbu.f
3971 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3972 int UNUSED written = 0;
3973 IADDR UNUSED pc = abuf->addr;
3974 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3978 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3980 SI opval = frvbf_read_mem_HI (current_cpu, pc, tmp_address);
3981 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3982 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3984 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
3987 SI opval = tmp_address;
3988 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
3989 written |= (1 << 5);
3990 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3992 frvbf_force_update (current_cpu);
3997 abuf->written = written;
4002 /* lduhu: lduhu$pack @($GRi,$GRj),$GRk */
4005 SEM_FN_NAME (frvbf,lduhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4007 #define FLD(f) abuf->fields.sfmt_cldsbu.f
4008 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4009 int UNUSED written = 0;
4010 IADDR UNUSED pc = abuf->addr;
4011 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4015 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4017 SI opval = frvbf_read_mem_UHI (current_cpu, pc, tmp_address);
4018 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4019 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4021 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4024 SI opval = tmp_address;
4025 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4026 written |= (1 << 5);
4027 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4029 frvbf_force_update (current_cpu);
4034 abuf->written = written;
4039 /* ldu: ldu$pack @($GRi,$GRj),$GRk */
4042 SEM_FN_NAME (frvbf,ldu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4044 #define FLD(f) abuf->fields.sfmt_cldsbu.f
4045 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4046 int UNUSED written = 0;
4047 IADDR UNUSED pc = abuf->addr;
4048 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4052 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4054 SI opval = frvbf_read_mem_SI (current_cpu, pc, tmp_address);
4055 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4056 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4058 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4061 SI opval = tmp_address;
4062 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4063 written |= (1 << 5);
4064 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4066 frvbf_force_update (current_cpu);
4071 abuf->written = written;
4076 /* nldsbu: nldsbu$pack @($GRi,$GRj),$GRk */
4079 SEM_FN_NAME (frvbf,nldsbu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4081 #define FLD(f) abuf->fields.sfmt_cldsbu.f
4082 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4083 int UNUSED written = 0;
4084 IADDR UNUSED pc = abuf->addr;
4085 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4089 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 1, 0);
4093 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4095 SI opval = frvbf_read_mem_QI (current_cpu, pc, tmp_address);
4096 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4097 written |= (1 << 7);
4098 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4100 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4103 SI opval = tmp_address;
4104 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4105 written |= (1 << 6);
4106 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4108 frvbf_force_update (current_cpu);
4115 abuf->written = written;
4120 /* nldubu: nldubu$pack @($GRi,$GRj),$GRk */
4123 SEM_FN_NAME (frvbf,nldubu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4125 #define FLD(f) abuf->fields.sfmt_cldsbu.f
4126 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4127 int UNUSED written = 0;
4128 IADDR UNUSED pc = abuf->addr;
4129 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4133 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 0, 0);
4137 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4139 SI opval = frvbf_read_mem_UQI (current_cpu, pc, tmp_address);
4140 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4141 written |= (1 << 7);
4142 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4144 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4147 SI opval = tmp_address;
4148 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4149 written |= (1 << 6);
4150 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4152 frvbf_force_update (current_cpu);
4159 abuf->written = written;
4164 /* nldshu: nldshu$pack @($GRi,$GRj),$GRk */
4167 SEM_FN_NAME (frvbf,nldshu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4169 #define FLD(f) abuf->fields.sfmt_cldsbu.f
4170 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4171 int UNUSED written = 0;
4172 IADDR UNUSED pc = abuf->addr;
4173 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4177 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 3, 0);
4181 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4183 SI opval = frvbf_read_mem_HI (current_cpu, pc, tmp_address);
4184 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4185 written |= (1 << 7);
4186 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4188 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4191 SI opval = tmp_address;
4192 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4193 written |= (1 << 6);
4194 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4196 frvbf_force_update (current_cpu);
4203 abuf->written = written;
4208 /* nlduhu: nlduhu$pack @($GRi,$GRj),$GRk */
4211 SEM_FN_NAME (frvbf,nlduhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4213 #define FLD(f) abuf->fields.sfmt_cldsbu.f
4214 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4215 int UNUSED written = 0;
4216 IADDR UNUSED pc = abuf->addr;
4217 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4221 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 2, 0);
4225 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4227 SI opval = frvbf_read_mem_UHI (current_cpu, pc, tmp_address);
4228 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4229 written |= (1 << 7);
4230 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4232 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4235 SI opval = tmp_address;
4236 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4237 written |= (1 << 6);
4238 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4240 frvbf_force_update (current_cpu);
4247 abuf->written = written;
4252 /* nldu: nldu$pack @($GRi,$GRj),$GRk */
4255 SEM_FN_NAME (frvbf,nldu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4257 #define FLD(f) abuf->fields.sfmt_cldsbu.f
4258 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4259 int UNUSED written = 0;
4260 IADDR UNUSED pc = abuf->addr;
4261 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4265 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 4, 0);
4269 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4271 SI opval = frvbf_read_mem_SI (current_cpu, pc, tmp_address);
4272 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4273 written |= (1 << 7);
4274 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4276 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4279 SI opval = tmp_address;
4280 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4281 written |= (1 << 6);
4282 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4284 frvbf_force_update (current_cpu);
4291 abuf->written = written;
4296 /* ldbfu: ldbfu$pack @($GRi,$GRj),$FRintk */
4299 SEM_FN_NAME (frvbf,ldbfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4301 #define FLD(f) abuf->fields.sfmt_cldbfu.f
4302 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4303 int UNUSED written = 0;
4304 IADDR UNUSED pc = abuf->addr;
4305 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4309 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4311 SI opval = frvbf_read_mem_UQI (current_cpu, pc, tmp_address);
4312 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
4313 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
4316 SI opval = tmp_address;
4317 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4318 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4320 frvbf_force_update (current_cpu);
4327 /* ldhfu: ldhfu$pack @($GRi,$GRj),$FRintk */
4330 SEM_FN_NAME (frvbf,ldhfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4332 #define FLD(f) abuf->fields.sfmt_cldbfu.f
4333 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4334 int UNUSED written = 0;
4335 IADDR UNUSED pc = abuf->addr;
4336 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4340 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4342 SI opval = frvbf_read_mem_UHI (current_cpu, pc, tmp_address);
4343 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
4344 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
4347 SI opval = tmp_address;
4348 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4349 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4351 frvbf_force_update (current_cpu);
4358 /* ldfu: ldfu$pack @($GRi,$GRj),$FRintk */
4361 SEM_FN_NAME (frvbf,ldfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4363 #define FLD(f) abuf->fields.sfmt_cldbfu.f
4364 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4365 int UNUSED written = 0;
4366 IADDR UNUSED pc = abuf->addr;
4367 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4371 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4373 SI opval = frvbf_read_mem_SI (current_cpu, pc, tmp_address);
4374 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
4375 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
4378 SI opval = tmp_address;
4379 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4380 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4382 frvbf_force_update (current_cpu);
4389 /* ldcu: ldcu$pack @($GRi,$GRj),$CPRk */
4392 SEM_FN_NAME (frvbf,ldcu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4394 #define FLD(f) abuf->fields.sfmt_ldcu.f
4395 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4396 int UNUSED written = 0;
4397 IADDR UNUSED pc = abuf->addr;
4398 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4402 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4404 SI opval = frvbf_read_mem_SI (current_cpu, pc, tmp_address);
4405 sim_queue_si_write (current_cpu, & CPU (h_cpr[FLD (f_CPRk)]), opval);
4406 TRACE_RESULT (current_cpu, abuf, "cpr", 'x', opval);
4409 SI opval = tmp_address;
4410 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4411 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4413 frvbf_force_update (current_cpu);
4420 /* nldbfu: nldbfu$pack @($GRi,$GRj),$FRintk */
4423 SEM_FN_NAME (frvbf,nldbfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4425 #define FLD(f) abuf->fields.sfmt_cldbfu.f
4426 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4427 int UNUSED written = 0;
4428 IADDR UNUSED pc = abuf->addr;
4429 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4433 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 0, 1);
4437 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4439 SI opval = frvbf_read_mem_UQI (current_cpu, pc, tmp_address);
4440 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
4441 written |= (1 << 6);
4442 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
4445 SI opval = tmp_address;
4446 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4447 written |= (1 << 7);
4448 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4450 frvbf_force_update (current_cpu);
4455 abuf->written = written;
4460 /* nldhfu: nldhfu$pack @($GRi,$GRj),$FRintk */
4463 SEM_FN_NAME (frvbf,nldhfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4465 #define FLD(f) abuf->fields.sfmt_cldbfu.f
4466 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4467 int UNUSED written = 0;
4468 IADDR UNUSED pc = abuf->addr;
4469 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4473 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 2, 1);
4477 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4479 SI opval = frvbf_read_mem_UHI (current_cpu, pc, tmp_address);
4480 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
4481 written |= (1 << 6);
4482 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
4485 SI opval = tmp_address;
4486 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4487 written |= (1 << 7);
4488 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4490 frvbf_force_update (current_cpu);
4495 abuf->written = written;
4500 /* nldfu: nldfu$pack @($GRi,$GRj),$FRintk */
4503 SEM_FN_NAME (frvbf,nldfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4505 #define FLD(f) abuf->fields.sfmt_cldbfu.f
4506 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4507 int UNUSED written = 0;
4508 IADDR UNUSED pc = abuf->addr;
4509 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4513 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 4, 1);
4517 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4519 SI opval = frvbf_read_mem_SI (current_cpu, pc, tmp_address);
4520 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
4521 written |= (1 << 6);
4522 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
4525 SI opval = tmp_address;
4526 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4527 written |= (1 << 7);
4528 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4530 frvbf_force_update (current_cpu);
4535 abuf->written = written;
4540 /* lddu: lddu$pack @($GRi,$GRj),$GRdoublek */
4543 SEM_FN_NAME (frvbf,lddu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4545 #define FLD(f) abuf->fields.sfmt_clddu.f
4546 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4547 int UNUSED written = 0;
4548 IADDR UNUSED pc = abuf->addr;
4549 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4553 if (NESI (FLD (f_GRk), 0)) {
4555 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4557 DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
4558 sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
4559 written |= (1 << 5);
4560 TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
4564 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4567 SI opval = tmp_address;
4568 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4569 written |= (1 << 6);
4570 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4572 frvbf_force_update (current_cpu);
4577 abuf->written = written;
4582 /* nlddu: nlddu$pack @($GRi,$GRj),$GRdoublek */
4585 SEM_FN_NAME (frvbf,nlddu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4587 #define FLD(f) abuf->fields.sfmt_clddu.f
4588 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4589 int UNUSED written = 0;
4590 IADDR UNUSED pc = abuf->addr;
4591 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4595 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 5, 0);
4599 if (NESI (FLD (f_GRk), 0)) {
4601 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4603 DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
4604 sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
4605 written |= (1 << 6);
4606 TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
4610 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4613 SI opval = tmp_address;
4614 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4615 written |= (1 << 7);
4616 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4618 frvbf_force_update (current_cpu);
4625 abuf->written = written;
4630 /* lddfu: lddfu$pack @($GRi,$GRj),$FRdoublek */
4633 SEM_FN_NAME (frvbf,lddfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4635 #define FLD(f) abuf->fields.sfmt_clddfu.f
4636 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4637 int UNUSED written = 0;
4638 IADDR UNUSED pc = abuf->addr;
4639 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4644 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4646 DF opval = frvbf_read_mem_DF (current_cpu, pc, tmp_address);
4647 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
4648 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
4652 SI opval = tmp_address;
4653 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4654 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4656 frvbf_force_update (current_cpu);
4663 /* lddcu: lddcu$pack @($GRi,$GRj),$CPRdoublek */
4666 SEM_FN_NAME (frvbf,lddcu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4668 #define FLD(f) abuf->fields.sfmt_lddcu.f
4669 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4670 int UNUSED written = 0;
4671 IADDR UNUSED pc = abuf->addr;
4672 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4677 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4679 DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
4680 sim_queue_fn_di_write (current_cpu, frvbf_h_cpr_double_set, FLD (f_CPRk), opval);
4681 TRACE_RESULT (current_cpu, abuf, "cpr_double", 'D', opval);
4685 SI opval = tmp_address;
4686 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4687 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4689 frvbf_force_update (current_cpu);
4696 /* nlddfu: nlddfu$pack @($GRi,$GRj),$FRdoublek */
4699 SEM_FN_NAME (frvbf,nlddfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4701 #define FLD(f) abuf->fields.sfmt_clddfu.f
4702 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4703 int UNUSED written = 0;
4704 IADDR UNUSED pc = abuf->addr;
4705 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4709 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 5, 1);
4714 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4716 DF opval = frvbf_read_mem_DF (current_cpu, pc, tmp_address);
4717 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
4718 written |= (1 << 6);
4719 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
4723 SI opval = tmp_address;
4724 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4725 written |= (1 << 7);
4726 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4728 frvbf_force_update (current_cpu);
4733 abuf->written = written;
4738 /* ldqu: ldqu$pack @($GRi,$GRj),$GRk */
4741 SEM_FN_NAME (frvbf,ldqu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4743 #define FLD(f) abuf->fields.sfmt_cstdu.f
4744 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4745 int UNUSED written = 0;
4746 IADDR UNUSED pc = abuf->addr;
4747 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4752 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4753 frvbf_load_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
4755 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4758 SI opval = tmp_address;
4759 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4760 written |= (1 << 5);
4761 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4763 frvbf_force_update (current_cpu);
4768 abuf->written = written;
4773 /* nldqu: nldqu$pack @($GRi,$GRj),$GRk */
4776 SEM_FN_NAME (frvbf,nldqu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4778 #define FLD(f) abuf->fields.sfmt_cstdu.f
4779 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4780 int UNUSED written = 0;
4781 IADDR UNUSED pc = abuf->addr;
4782 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4786 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 6, 0);
4791 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4792 frvbf_load_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
4794 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4797 SI opval = tmp_address;
4798 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4799 written |= (1 << 6);
4800 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4802 frvbf_force_update (current_cpu);
4809 abuf->written = written;
4814 /* ldqfu: ldqfu$pack @($GRi,$GRj),$FRintk */
4817 SEM_FN_NAME (frvbf,ldqfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4819 #define FLD(f) abuf->fields.sfmt_cstdfu.f
4820 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4821 int UNUSED written = 0;
4822 IADDR UNUSED pc = abuf->addr;
4823 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4828 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4829 frvbf_load_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
4832 SI opval = tmp_address;
4833 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4834 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4836 frvbf_force_update (current_cpu);
4843 /* ldqcu: ldqcu$pack @($GRi,$GRj),$CPRk */
4846 SEM_FN_NAME (frvbf,ldqcu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4848 #define FLD(f) abuf->fields.sfmt_stdcu.f
4849 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4850 int UNUSED written = 0;
4851 IADDR UNUSED pc = abuf->addr;
4852 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4857 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4858 frvbf_load_quad_CPR (current_cpu, pc, tmp_address, FLD (f_CPRk));
4861 SI opval = tmp_address;
4862 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4863 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4865 frvbf_force_update (current_cpu);
4872 /* nldqfu: nldqfu$pack @($GRi,$GRj),$FRintk */
4875 SEM_FN_NAME (frvbf,nldqfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4877 #define FLD(f) abuf->fields.sfmt_cstdfu.f
4878 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4879 int UNUSED written = 0;
4880 IADDR UNUSED pc = abuf->addr;
4881 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4885 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 6, 1);
4890 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4891 frvbf_load_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
4894 SI opval = tmp_address;
4895 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4896 written |= (1 << 6);
4897 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4899 frvbf_force_update (current_cpu);
4904 abuf->written = written;
4909 /* ldsbi: ldsbi$pack @($GRi,$d12),$GRk */
4912 SEM_FN_NAME (frvbf,ldsbi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4914 #define FLD(f) abuf->fields.sfmt_swapi.f
4915 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4916 int UNUSED written = 0;
4917 IADDR UNUSED pc = abuf->addr;
4918 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4921 SI opval = frvbf_read_mem_QI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
4922 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4923 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4930 /* ldshi: ldshi$pack @($GRi,$d12),$GRk */
4933 SEM_FN_NAME (frvbf,ldshi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4935 #define FLD(f) abuf->fields.sfmt_swapi.f
4936 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4937 int UNUSED written = 0;
4938 IADDR UNUSED pc = abuf->addr;
4939 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4942 SI opval = frvbf_read_mem_HI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
4943 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4944 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4951 /* ldi: ldi$pack @($GRi,$d12),$GRk */
4954 SEM_FN_NAME (frvbf,ldi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4956 #define FLD(f) abuf->fields.sfmt_swapi.f
4957 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4958 int UNUSED written = 0;
4959 IADDR UNUSED pc = abuf->addr;
4960 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4963 SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
4964 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4965 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4972 /* ldubi: ldubi$pack @($GRi,$d12),$GRk */
4975 SEM_FN_NAME (frvbf,ldubi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4977 #define FLD(f) abuf->fields.sfmt_swapi.f
4978 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4979 int UNUSED written = 0;
4980 IADDR UNUSED pc = abuf->addr;
4981 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4984 SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
4985 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4986 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4993 /* lduhi: lduhi$pack @($GRi,$d12),$GRk */
4996 SEM_FN_NAME (frvbf,lduhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4998 #define FLD(f) abuf->fields.sfmt_swapi.f
4999 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5000 int UNUSED written = 0;
5001 IADDR UNUSED pc = abuf->addr;
5002 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5005 SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5006 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
5007 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5014 /* ldbfi: ldbfi$pack @($GRi,$d12),$FRintk */
5017 SEM_FN_NAME (frvbf,ldbfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5019 #define FLD(f) abuf->fields.sfmt_ldbfi.f
5020 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5021 int UNUSED written = 0;
5022 IADDR UNUSED pc = abuf->addr;
5023 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5026 SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5027 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
5028 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
5035 /* ldhfi: ldhfi$pack @($GRi,$d12),$FRintk */
5038 SEM_FN_NAME (frvbf,ldhfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5040 #define FLD(f) abuf->fields.sfmt_ldbfi.f
5041 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5042 int UNUSED written = 0;
5043 IADDR UNUSED pc = abuf->addr;
5044 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5047 SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5048 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
5049 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
5056 /* ldfi: ldfi$pack @($GRi,$d12),$FRintk */
5059 SEM_FN_NAME (frvbf,ldfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5061 #define FLD(f) abuf->fields.sfmt_ldbfi.f
5062 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5063 int UNUSED written = 0;
5064 IADDR UNUSED pc = abuf->addr;
5065 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5068 SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5069 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
5070 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
5077 /* nldsbi: nldsbi$pack @($GRi,$d12),$GRk */
5080 SEM_FN_NAME (frvbf,nldsbi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5082 #define FLD(f) abuf->fields.sfmt_swapi.f
5083 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5084 int UNUSED written = 0;
5085 IADDR UNUSED pc = abuf->addr;
5086 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5090 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_GRk), FLD (f_d12), 1, 0);
5093 SI opval = frvbf_read_mem_QI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5094 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
5095 written |= (1 << 5);
5096 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5101 abuf->written = written;
5106 /* nldubi: nldubi$pack @($GRi,$d12),$GRk */
5109 SEM_FN_NAME (frvbf,nldubi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5111 #define FLD(f) abuf->fields.sfmt_swapi.f
5112 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5113 int UNUSED written = 0;
5114 IADDR UNUSED pc = abuf->addr;
5115 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5119 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_GRk), FLD (f_d12), 0, 0);
5122 SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5123 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
5124 written |= (1 << 5);
5125 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5130 abuf->written = written;
5135 /* nldshi: nldshi$pack @($GRi,$d12),$GRk */
5138 SEM_FN_NAME (frvbf,nldshi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5140 #define FLD(f) abuf->fields.sfmt_swapi.f
5141 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5142 int UNUSED written = 0;
5143 IADDR UNUSED pc = abuf->addr;
5144 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5148 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_GRk), FLD (f_d12), 3, 0);
5151 SI opval = frvbf_read_mem_HI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5152 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
5153 written |= (1 << 5);
5154 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5159 abuf->written = written;
5164 /* nlduhi: nlduhi$pack @($GRi,$d12),$GRk */
5167 SEM_FN_NAME (frvbf,nlduhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5169 #define FLD(f) abuf->fields.sfmt_swapi.f
5170 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5171 int UNUSED written = 0;
5172 IADDR UNUSED pc = abuf->addr;
5173 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5177 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_GRk), FLD (f_d12), 2, 0);
5180 SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5181 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
5182 written |= (1 << 5);
5183 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5188 abuf->written = written;
5193 /* nldi: nldi$pack @($GRi,$d12),$GRk */
5196 SEM_FN_NAME (frvbf,nldi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5198 #define FLD(f) abuf->fields.sfmt_swapi.f
5199 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5200 int UNUSED written = 0;
5201 IADDR UNUSED pc = abuf->addr;
5202 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5206 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_GRk), FLD (f_d12), 4, 0);
5209 SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5210 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
5211 written |= (1 << 5);
5212 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5217 abuf->written = written;
5222 /* nldbfi: nldbfi$pack @($GRi,$d12),$FRintk */
5225 SEM_FN_NAME (frvbf,nldbfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5227 #define FLD(f) abuf->fields.sfmt_ldbfi.f
5228 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5229 int UNUSED written = 0;
5230 IADDR UNUSED pc = abuf->addr;
5231 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5235 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_FRk), FLD (f_d12), 0, 1);
5238 SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5239 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
5240 written |= (1 << 5);
5241 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
5246 abuf->written = written;
5251 /* nldhfi: nldhfi$pack @($GRi,$d12),$FRintk */
5254 SEM_FN_NAME (frvbf,nldhfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5256 #define FLD(f) abuf->fields.sfmt_ldbfi.f
5257 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5258 int UNUSED written = 0;
5259 IADDR UNUSED pc = abuf->addr;
5260 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5264 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_FRk), FLD (f_d12), 2, 1);
5267 SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5268 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
5269 written |= (1 << 5);
5270 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
5275 abuf->written = written;
5280 /* nldfi: nldfi$pack @($GRi,$d12),$FRintk */
5283 SEM_FN_NAME (frvbf,nldfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5285 #define FLD(f) abuf->fields.sfmt_ldbfi.f
5286 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5287 int UNUSED written = 0;
5288 IADDR UNUSED pc = abuf->addr;
5289 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5293 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_FRk), FLD (f_d12), 4, 1);
5296 SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5297 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
5298 written |= (1 << 5);
5299 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
5304 abuf->written = written;
5309 /* lddi: lddi$pack @($GRi,$d12),$GRdoublek */
5312 SEM_FN_NAME (frvbf,lddi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5314 #define FLD(f) abuf->fields.sfmt_smuli.f
5315 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5316 int UNUSED written = 0;
5317 IADDR UNUSED pc = abuf->addr;
5318 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5322 if (NESI (FLD (f_GRk), 0)) {
5324 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
5326 DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
5327 sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
5328 written |= (1 << 4);
5329 TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
5335 abuf->written = written;
5340 /* lddfi: lddfi$pack @($GRi,$d12),$FRdoublek */
5343 SEM_FN_NAME (frvbf,lddfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5345 #define FLD(f) abuf->fields.sfmt_lddfi.f
5346 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5347 int UNUSED written = 0;
5348 IADDR UNUSED pc = abuf->addr;
5349 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5354 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
5356 DF opval = frvbf_read_mem_DF (current_cpu, pc, tmp_address);
5357 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
5358 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
5367 /* nlddi: nlddi$pack @($GRi,$d12),$GRdoublek */
5370 SEM_FN_NAME (frvbf,nlddi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5372 #define FLD(f) abuf->fields.sfmt_smuli.f
5373 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5374 int UNUSED written = 0;
5375 IADDR UNUSED pc = abuf->addr;
5376 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5382 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_GRk), FLD (f_d12), 5, 0);
5384 if (NESI (FLD (f_GRk), 0)) {
5386 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
5388 DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
5389 sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
5390 written |= (1 << 5);
5391 TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
5399 abuf->written = written;
5404 /* nlddfi: nlddfi$pack @($GRi,$d12),$FRdoublek */
5407 SEM_FN_NAME (frvbf,nlddfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5409 #define FLD(f) abuf->fields.sfmt_lddfi.f
5410 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5411 int UNUSED written = 0;
5412 IADDR UNUSED pc = abuf->addr;
5413 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5419 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_FRk), FLD (f_d12), 5, 1);
5422 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
5424 DF opval = frvbf_read_mem_DF (current_cpu, pc, tmp_address);
5425 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
5426 written |= (1 << 5);
5427 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
5434 abuf->written = written;
5439 /* ldqi: ldqi$pack @($GRi,$d12),$GRk */
5442 SEM_FN_NAME (frvbf,ldqi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5444 #define FLD(f) abuf->fields.sfmt_stdi.f
5445 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5446 int UNUSED written = 0;
5447 IADDR UNUSED pc = abuf->addr;
5448 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5453 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
5454 frvbf_load_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
5462 /* ldqfi: ldqfi$pack @($GRi,$d12),$FRintk */
5465 SEM_FN_NAME (frvbf,ldqfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5467 #define FLD(f) abuf->fields.sfmt_stdfi.f
5468 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5469 int UNUSED written = 0;
5470 IADDR UNUSED pc = abuf->addr;
5471 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5476 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
5477 frvbf_load_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
5485 /* nldqfi: nldqfi$pack @($GRi,$d12),$FRintk */
5488 SEM_FN_NAME (frvbf,nldqfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5490 #define FLD(f) abuf->fields.sfmt_stdfi.f
5491 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5492 int UNUSED written = 0;
5493 IADDR UNUSED pc = abuf->addr;
5494 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5500 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_FRk), FLD (f_d12), 6, 1);
5503 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
5504 frvbf_load_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
5514 /* stb: stb$pack $GRk,@($GRi,$GRj) */
5517 SEM_FN_NAME (frvbf,stb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5519 #define FLD(f) abuf->fields.sfmt_cswap.f
5520 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5521 int UNUSED written = 0;
5522 IADDR UNUSED pc = abuf->addr;
5523 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5525 frvbf_write_mem_QI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), GET_H_GR (FLD (f_GRk)));
5531 /* sth: sth$pack $GRk,@($GRi,$GRj) */
5534 SEM_FN_NAME (frvbf,sth) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5536 #define FLD(f) abuf->fields.sfmt_cswap.f
5537 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5538 int UNUSED written = 0;
5539 IADDR UNUSED pc = abuf->addr;
5540 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5542 frvbf_write_mem_HI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), GET_H_GR (FLD (f_GRk)));
5548 /* st: st$pack $GRk,@($GRi,$GRj) */
5551 SEM_FN_NAME (frvbf,st) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5553 #define FLD(f) abuf->fields.sfmt_cswap.f
5554 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5555 int UNUSED written = 0;
5556 IADDR UNUSED pc = abuf->addr;
5557 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5559 frvbf_write_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), GET_H_GR (FLD (f_GRk)));
5565 /* stbf: stbf$pack $FRintk,@($GRi,$GRj) */
5568 SEM_FN_NAME (frvbf,stbf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5570 #define FLD(f) abuf->fields.sfmt_cstbfu.f
5571 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5572 int UNUSED written = 0;
5573 IADDR UNUSED pc = abuf->addr;
5574 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5576 frvbf_write_mem_QI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), GET_H_FR_INT (FLD (f_FRk)));
5582 /* sthf: sthf$pack $FRintk,@($GRi,$GRj) */
5585 SEM_FN_NAME (frvbf,sthf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5587 #define FLD(f) abuf->fields.sfmt_cstbfu.f
5588 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5589 int UNUSED written = 0;
5590 IADDR UNUSED pc = abuf->addr;
5591 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5593 frvbf_write_mem_HI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), GET_H_FR_INT (FLD (f_FRk)));
5599 /* stf: stf$pack $FRintk,@($GRi,$GRj) */
5602 SEM_FN_NAME (frvbf,stf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5604 #define FLD(f) abuf->fields.sfmt_cstbfu.f
5605 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5606 int UNUSED written = 0;
5607 IADDR UNUSED pc = abuf->addr;
5608 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5610 frvbf_write_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), GET_H_FR_INT (FLD (f_FRk)));
5616 /* stc: stc$pack $CPRk,@($GRi,$GRj) */
5619 SEM_FN_NAME (frvbf,stc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5621 #define FLD(f) abuf->fields.sfmt_stcu.f
5622 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5623 int UNUSED written = 0;
5624 IADDR UNUSED pc = abuf->addr;
5625 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5627 frvbf_write_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), CPU (h_cpr[FLD (f_CPRk)]));
5633 /* rstb: rstb$pack $GRk,@($GRi,$GRj) */
5636 SEM_FN_NAME (frvbf,rstb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5638 #define FLD(f) abuf->fields.sfmt_cswap.f
5639 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5640 int UNUSED written = 0;
5641 IADDR UNUSED pc = abuf->addr;
5642 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5646 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5647 frvbf_write_mem_QI (current_cpu, pc, tmp_address, GET_H_GR (FLD (f_GRk)));
5648 frvbf_check_recovering_store (current_cpu, tmp_address, FLD (f_GRk), 1, 0);
5655 /* rsth: rsth$pack $GRk,@($GRi,$GRj) */
5658 SEM_FN_NAME (frvbf,rsth) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5660 #define FLD(f) abuf->fields.sfmt_cswap.f
5661 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5662 int UNUSED written = 0;
5663 IADDR UNUSED pc = abuf->addr;
5664 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5668 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5669 frvbf_write_mem_HI (current_cpu, pc, tmp_address, GET_H_GR (FLD (f_GRk)));
5670 frvbf_check_recovering_store (current_cpu, tmp_address, FLD (f_GRk), 2, 0);
5677 /* rst: rst$pack $GRk,@($GRi,$GRj) */
5680 SEM_FN_NAME (frvbf,rst) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5682 #define FLD(f) abuf->fields.sfmt_cswap.f
5683 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5684 int UNUSED written = 0;
5685 IADDR UNUSED pc = abuf->addr;
5686 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5690 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5691 frvbf_write_mem_SI (current_cpu, pc, tmp_address, GET_H_GR (FLD (f_GRk)));
5692 frvbf_check_recovering_store (current_cpu, tmp_address, FLD (f_GRk), 4, 0);
5699 /* rstbf: rstbf$pack $FRintk,@($GRi,$GRj) */
5702 SEM_FN_NAME (frvbf,rstbf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5704 #define FLD(f) abuf->fields.sfmt_cstbfu.f
5705 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5706 int UNUSED written = 0;
5707 IADDR UNUSED pc = abuf->addr;
5708 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5712 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5713 frvbf_write_mem_QI (current_cpu, pc, tmp_address, GET_H_FR_INT (FLD (f_FRk)));
5714 frvbf_check_recovering_store (current_cpu, tmp_address, FLD (f_FRk), 1, 1);
5721 /* rsthf: rsthf$pack $FRintk,@($GRi,$GRj) */
5724 SEM_FN_NAME (frvbf,rsthf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5726 #define FLD(f) abuf->fields.sfmt_cstbfu.f
5727 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5728 int UNUSED written = 0;
5729 IADDR UNUSED pc = abuf->addr;
5730 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5734 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5735 frvbf_write_mem_HI (current_cpu, pc, tmp_address, GET_H_FR_INT (FLD (f_FRk)));
5736 frvbf_check_recovering_store (current_cpu, tmp_address, FLD (f_FRk), 2, 1);
5743 /* rstf: rstf$pack $FRintk,@($GRi,$GRj) */
5746 SEM_FN_NAME (frvbf,rstf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5748 #define FLD(f) abuf->fields.sfmt_cstbfu.f
5749 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5750 int UNUSED written = 0;
5751 IADDR UNUSED pc = abuf->addr;
5752 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5756 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5757 frvbf_write_mem_SI (current_cpu, pc, tmp_address, GET_H_FR_INT (FLD (f_FRk)));
5758 frvbf_check_recovering_store (current_cpu, tmp_address, FLD (f_FRk), 4, 1);
5765 /* std: std$pack $GRdoublek,@($GRi,$GRj) */
5768 SEM_FN_NAME (frvbf,std) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5770 #define FLD(f) abuf->fields.sfmt_cstdu.f
5771 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5772 int UNUSED written = 0;
5773 IADDR UNUSED pc = abuf->addr;
5774 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5779 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5780 frvbf_write_mem_DI (current_cpu, pc, tmp_address, GET_H_GR_DOUBLE (FLD (f_GRk)));
5788 /* stdf: stdf$pack $FRdoublek,@($GRi,$GRj) */
5791 SEM_FN_NAME (frvbf,stdf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5793 #define FLD(f) abuf->fields.sfmt_cstdfu.f
5794 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5795 int UNUSED written = 0;
5796 IADDR UNUSED pc = abuf->addr;
5797 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5802 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5803 frvbf_write_mem_DF (current_cpu, pc, tmp_address, GET_H_FR_DOUBLE (FLD (f_FRk)));
5811 /* stdc: stdc$pack $CPRdoublek,@($GRi,$GRj) */
5814 SEM_FN_NAME (frvbf,stdc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5816 #define FLD(f) abuf->fields.sfmt_stdcu.f
5817 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5818 int UNUSED written = 0;
5819 IADDR UNUSED pc = abuf->addr;
5820 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5825 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5826 frvbf_write_mem_DI (current_cpu, pc, tmp_address, GET_H_CPR_DOUBLE (FLD (f_CPRk)));
5834 /* rstd: rstd$pack $GRdoublek,@($GRi,$GRj) */
5837 SEM_FN_NAME (frvbf,rstd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5839 #define FLD(f) abuf->fields.sfmt_cstdu.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);
5848 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5849 frvbf_write_mem_DI (current_cpu, pc, tmp_address, GET_H_GR_DOUBLE (FLD (f_GRk)));
5851 frvbf_check_recovering_store (current_cpu, tmp_address, FLD (f_GRk), 8, 0);
5858 /* rstdf: rstdf$pack $FRdoublek,@($GRi,$GRj) */
5861 SEM_FN_NAME (frvbf,rstdf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5863 #define FLD(f) abuf->fields.sfmt_cstdfu.f
5864 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5865 int UNUSED written = 0;
5866 IADDR UNUSED pc = abuf->addr;
5867 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5872 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5873 frvbf_write_mem_DF (current_cpu, pc, tmp_address, GET_H_FR_DOUBLE (FLD (f_FRk)));
5875 frvbf_check_recovering_store (current_cpu, tmp_address, FLD (f_FRk), 8, 1);
5882 /* stq: stq$pack $GRk,@($GRi,$GRj) */
5885 SEM_FN_NAME (frvbf,stq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5887 #define FLD(f) abuf->fields.sfmt_smulcc.f
5888 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5889 int UNUSED written = 0;
5890 IADDR UNUSED pc = abuf->addr;
5891 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5896 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5897 frvbf_store_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
5905 /* stqf: stqf$pack $FRintk,@($GRi,$GRj) */
5908 SEM_FN_NAME (frvbf,stqf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5910 #define FLD(f) abuf->fields.sfmt_cstdfu.f
5911 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5912 int UNUSED written = 0;
5913 IADDR UNUSED pc = abuf->addr;
5914 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5919 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5920 frvbf_store_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
5928 /* stqc: stqc$pack $CPRk,@($GRi,$GRj) */
5931 SEM_FN_NAME (frvbf,stqc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5933 #define FLD(f) abuf->fields.sfmt_stdcu.f
5934 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5935 int UNUSED written = 0;
5936 IADDR UNUSED pc = abuf->addr;
5937 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5942 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5943 frvbf_store_quad_CPR (current_cpu, pc, tmp_address, FLD (f_CPRk));
5951 /* rstq: rstq$pack $GRk,@($GRi,$GRj) */
5954 SEM_FN_NAME (frvbf,rstq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5956 #define FLD(f) abuf->fields.sfmt_smulcc.f
5957 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5958 int UNUSED written = 0;
5959 IADDR UNUSED pc = abuf->addr;
5960 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5965 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5966 frvbf_store_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
5968 frvbf_check_recovering_store (current_cpu, tmp_address, FLD (f_GRk), 16, 0);
5975 /* rstqf: rstqf$pack $FRintk,@($GRi,$GRj) */
5978 SEM_FN_NAME (frvbf,rstqf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5980 #define FLD(f) abuf->fields.sfmt_cstdfu.f
5981 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5982 int UNUSED written = 0;
5983 IADDR UNUSED pc = abuf->addr;
5984 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5989 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5990 frvbf_store_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
5992 frvbf_check_recovering_store (current_cpu, tmp_address, FLD (f_FRk), 16, 1);
5999 /* stbu: stbu$pack $GRk,@($GRi,$GRj) */
6002 SEM_FN_NAME (frvbf,stbu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6004 #define FLD(f) abuf->fields.sfmt_cstbu.f
6005 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6006 int UNUSED written = 0;
6007 IADDR UNUSED pc = abuf->addr;
6008 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6012 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6013 frvbf_write_mem_QI (current_cpu, pc, tmp_address, GET_H_GR (FLD (f_GRk)));
6015 SI opval = tmp_address;
6016 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6017 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6025 /* sthu: sthu$pack $GRk,@($GRi,$GRj) */
6028 SEM_FN_NAME (frvbf,sthu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6030 #define FLD(f) abuf->fields.sfmt_cstbu.f
6031 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6032 int UNUSED written = 0;
6033 IADDR UNUSED pc = abuf->addr;
6034 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6038 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6039 frvbf_write_mem_HI (current_cpu, pc, tmp_address, GET_H_GR (FLD (f_GRk)));
6041 SI opval = tmp_address;
6042 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6043 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6051 /* stu: stu$pack $GRk,@($GRi,$GRj) */
6054 SEM_FN_NAME (frvbf,stu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6056 #define FLD(f) abuf->fields.sfmt_cstbu.f
6057 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6058 int UNUSED written = 0;
6059 IADDR UNUSED pc = abuf->addr;
6060 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6064 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6065 frvbf_write_mem_WI (current_cpu, pc, tmp_address, GET_H_GR (FLD (f_GRk)));
6067 SI opval = tmp_address;
6068 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6069 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6077 /* stbfu: stbfu$pack $FRintk,@($GRi,$GRj) */
6080 SEM_FN_NAME (frvbf,stbfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6082 #define FLD(f) abuf->fields.sfmt_cstbfu.f
6083 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6084 int UNUSED written = 0;
6085 IADDR UNUSED pc = abuf->addr;
6086 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6090 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6091 frvbf_write_mem_QI (current_cpu, pc, tmp_address, GET_H_FR_INT (FLD (f_FRk)));
6093 SI opval = tmp_address;
6094 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6095 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6103 /* sthfu: sthfu$pack $FRintk,@($GRi,$GRj) */
6106 SEM_FN_NAME (frvbf,sthfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6108 #define FLD(f) abuf->fields.sfmt_cstbfu.f
6109 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6110 int UNUSED written = 0;
6111 IADDR UNUSED pc = abuf->addr;
6112 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6116 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6117 frvbf_write_mem_HI (current_cpu, pc, tmp_address, GET_H_FR_INT (FLD (f_FRk)));
6119 SI opval = tmp_address;
6120 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6121 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6129 /* stfu: stfu$pack $FRintk,@($GRi,$GRj) */
6132 SEM_FN_NAME (frvbf,stfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6134 #define FLD(f) abuf->fields.sfmt_cstbfu.f
6135 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6136 int UNUSED written = 0;
6137 IADDR UNUSED pc = abuf->addr;
6138 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6142 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6143 frvbf_write_mem_SI (current_cpu, pc, tmp_address, GET_H_FR_INT (FLD (f_FRk)));
6145 SI opval = tmp_address;
6146 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6147 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6155 /* stcu: stcu$pack $CPRk,@($GRi,$GRj) */
6158 SEM_FN_NAME (frvbf,stcu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6160 #define FLD(f) abuf->fields.sfmt_stcu.f
6161 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6162 int UNUSED written = 0;
6163 IADDR UNUSED pc = abuf->addr;
6164 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6168 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6169 frvbf_write_mem_SI (current_cpu, pc, tmp_address, CPU (h_cpr[FLD (f_CPRk)]));
6171 SI opval = tmp_address;
6172 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6173 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6181 /* stdu: stdu$pack $GRdoublek,@($GRi,$GRj) */
6184 SEM_FN_NAME (frvbf,stdu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6186 #define FLD(f) abuf->fields.sfmt_cstdu.f
6187 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6188 int UNUSED written = 0;
6189 IADDR UNUSED pc = abuf->addr;
6190 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6195 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6196 frvbf_write_mem_DI (current_cpu, pc, tmp_address, GET_H_GR_DOUBLE (FLD (f_GRk)));
6199 SI opval = tmp_address;
6200 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6201 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6209 /* stdfu: stdfu$pack $FRdoublek,@($GRi,$GRj) */
6212 SEM_FN_NAME (frvbf,stdfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6214 #define FLD(f) abuf->fields.sfmt_cstdfu.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);
6223 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6224 frvbf_write_mem_DF (current_cpu, pc, tmp_address, GET_H_FR_DOUBLE (FLD (f_FRk)));
6227 SI opval = tmp_address;
6228 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6229 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6237 /* stdcu: stdcu$pack $CPRdoublek,@($GRi,$GRj) */
6240 SEM_FN_NAME (frvbf,stdcu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6242 #define FLD(f) abuf->fields.sfmt_stdcu.f
6243 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6244 int UNUSED written = 0;
6245 IADDR UNUSED pc = abuf->addr;
6246 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6251 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6252 frvbf_write_mem_DI (current_cpu, pc, tmp_address, GET_H_CPR_DOUBLE (FLD (f_CPRk)));
6255 SI opval = tmp_address;
6256 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6257 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6265 /* stqu: stqu$pack $GRk,@($GRi,$GRj) */
6268 SEM_FN_NAME (frvbf,stqu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6270 #define FLD(f) abuf->fields.sfmt_cstdu.f
6271 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6272 int UNUSED written = 0;
6273 IADDR UNUSED pc = abuf->addr;
6274 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6279 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6280 frvbf_store_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
6283 SI opval = tmp_address;
6284 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6285 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6293 /* stqfu: stqfu$pack $FRintk,@($GRi,$GRj) */
6296 SEM_FN_NAME (frvbf,stqfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6298 #define FLD(f) abuf->fields.sfmt_cstdfu.f
6299 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6300 int UNUSED written = 0;
6301 IADDR UNUSED pc = abuf->addr;
6302 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6307 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6308 frvbf_store_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
6311 SI opval = tmp_address;
6312 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6313 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6321 /* stqcu: stqcu$pack $CPRk,@($GRi,$GRj) */
6324 SEM_FN_NAME (frvbf,stqcu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6326 #define FLD(f) abuf->fields.sfmt_stdcu.f
6327 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6328 int UNUSED written = 0;
6329 IADDR UNUSED pc = abuf->addr;
6330 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6335 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6336 frvbf_store_quad_CPR (current_cpu, pc, tmp_address, FLD (f_CPRk));
6339 SI opval = tmp_address;
6340 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6341 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6349 /* cldsb: cldsb$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6352 SEM_FN_NAME (frvbf,cldsb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6354 #define FLD(f) abuf->fields.sfmt_cswap.f
6355 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6356 int UNUSED written = 0;
6357 IADDR UNUSED pc = abuf->addr;
6358 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6360 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6362 SI opval = frvbf_read_mem_QI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
6363 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6364 written |= (1 << 5);
6365 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6369 abuf->written = written;
6374 /* cldub: cldub$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6377 SEM_FN_NAME (frvbf,cldub) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6379 #define FLD(f) abuf->fields.sfmt_cswap.f
6380 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6381 int UNUSED written = 0;
6382 IADDR UNUSED pc = abuf->addr;
6383 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6385 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6387 SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
6388 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6389 written |= (1 << 5);
6390 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6394 abuf->written = written;
6399 /* cldsh: cldsh$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6402 SEM_FN_NAME (frvbf,cldsh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6404 #define FLD(f) abuf->fields.sfmt_cswap.f
6405 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6406 int UNUSED written = 0;
6407 IADDR UNUSED pc = abuf->addr;
6408 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6410 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6412 SI opval = frvbf_read_mem_HI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
6413 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6414 written |= (1 << 5);
6415 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6419 abuf->written = written;
6424 /* clduh: clduh$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6427 SEM_FN_NAME (frvbf,clduh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6429 #define FLD(f) abuf->fields.sfmt_cswap.f
6430 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6431 int UNUSED written = 0;
6432 IADDR UNUSED pc = abuf->addr;
6433 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6435 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6437 SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
6438 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6439 written |= (1 << 5);
6440 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6444 abuf->written = written;
6449 /* cld: cld$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6452 SEM_FN_NAME (frvbf,cld) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6454 #define FLD(f) abuf->fields.sfmt_cswap.f
6455 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6456 int UNUSED written = 0;
6457 IADDR UNUSED pc = abuf->addr;
6458 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6460 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6462 SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
6463 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6464 written |= (1 << 5);
6465 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6469 abuf->written = written;
6474 /* cldbf: cldbf$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6477 SEM_FN_NAME (frvbf,cldbf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6479 #define FLD(f) abuf->fields.sfmt_cldbfu.f
6480 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6481 int UNUSED written = 0;
6482 IADDR UNUSED pc = abuf->addr;
6483 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6485 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6487 SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
6488 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
6489 written |= (1 << 5);
6490 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
6494 abuf->written = written;
6499 /* cldhf: cldhf$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6502 SEM_FN_NAME (frvbf,cldhf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6504 #define FLD(f) abuf->fields.sfmt_cldbfu.f
6505 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6506 int UNUSED written = 0;
6507 IADDR UNUSED pc = abuf->addr;
6508 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6510 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6512 SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
6513 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
6514 written |= (1 << 5);
6515 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
6519 abuf->written = written;
6524 /* cldf: cldf$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6527 SEM_FN_NAME (frvbf,cldf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6529 #define FLD(f) abuf->fields.sfmt_cldbfu.f
6530 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6531 int UNUSED written = 0;
6532 IADDR UNUSED pc = abuf->addr;
6533 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6535 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6537 SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
6538 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
6539 written |= (1 << 5);
6540 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
6544 abuf->written = written;
6549 /* cldd: cldd$pack @($GRi,$GRj),$GRdoublek,$CCi,$cond */
6552 SEM_FN_NAME (frvbf,cldd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6554 #define FLD(f) abuf->fields.sfmt_clddu.f
6555 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6556 int UNUSED written = 0;
6557 IADDR UNUSED pc = abuf->addr;
6558 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6560 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6563 if (NESI (FLD (f_GRk), 0)) {
6565 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6567 DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
6568 sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
6569 written |= (1 << 6);
6570 TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
6577 abuf->written = written;
6582 /* clddf: clddf$pack @($GRi,$GRj),$FRdoublek,$CCi,$cond */
6585 SEM_FN_NAME (frvbf,clddf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6587 #define FLD(f) abuf->fields.sfmt_clddfu.f
6588 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6589 int UNUSED written = 0;
6590 IADDR UNUSED pc = abuf->addr;
6591 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6593 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6597 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6599 DF opval = frvbf_read_mem_DF (current_cpu, pc, tmp_address);
6600 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
6601 written |= (1 << 5);
6602 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
6608 abuf->written = written;
6613 /* cldq: cldq$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6616 SEM_FN_NAME (frvbf,cldq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6618 #define FLD(f) abuf->fields.sfmt_cswap.f
6619 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6620 int UNUSED written = 0;
6621 IADDR UNUSED pc = abuf->addr;
6622 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6624 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6628 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6629 frvbf_load_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
6638 /* cldsbu: cldsbu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6641 SEM_FN_NAME (frvbf,cldsbu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6643 #define FLD(f) abuf->fields.sfmt_cldsbu.f
6644 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6645 int UNUSED written = 0;
6646 IADDR UNUSED pc = abuf->addr;
6647 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6649 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6652 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6654 SI opval = frvbf_read_mem_QI (current_cpu, pc, tmp_address);
6655 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6656 written |= (1 << 8);
6657 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6659 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
6661 SI opval = tmp_address;
6662 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6663 written |= (1 << 7);
6664 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6670 abuf->written = written;
6675 /* cldubu: cldubu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6678 SEM_FN_NAME (frvbf,cldubu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6680 #define FLD(f) abuf->fields.sfmt_cldsbu.f
6681 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6682 int UNUSED written = 0;
6683 IADDR UNUSED pc = abuf->addr;
6684 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6686 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6689 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6691 SI opval = frvbf_read_mem_UQI (current_cpu, pc, tmp_address);
6692 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6693 written |= (1 << 8);
6694 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6696 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
6698 SI opval = tmp_address;
6699 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6700 written |= (1 << 7);
6701 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6707 abuf->written = written;
6712 /* cldshu: cldshu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6715 SEM_FN_NAME (frvbf,cldshu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6717 #define FLD(f) abuf->fields.sfmt_cldsbu.f
6718 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6719 int UNUSED written = 0;
6720 IADDR UNUSED pc = abuf->addr;
6721 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6723 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6726 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6728 SI opval = frvbf_read_mem_HI (current_cpu, pc, tmp_address);
6729 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6730 written |= (1 << 8);
6731 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6733 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
6735 SI opval = tmp_address;
6736 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6737 written |= (1 << 7);
6738 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6744 abuf->written = written;
6749 /* clduhu: clduhu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6752 SEM_FN_NAME (frvbf,clduhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6754 #define FLD(f) abuf->fields.sfmt_cldsbu.f
6755 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6756 int UNUSED written = 0;
6757 IADDR UNUSED pc = abuf->addr;
6758 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6760 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6763 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6765 SI opval = frvbf_read_mem_UHI (current_cpu, pc, tmp_address);
6766 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6767 written |= (1 << 8);
6768 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6770 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
6772 SI opval = tmp_address;
6773 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6774 written |= (1 << 7);
6775 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6781 abuf->written = written;
6786 /* cldu: cldu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6789 SEM_FN_NAME (frvbf,cldu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6791 #define FLD(f) abuf->fields.sfmt_cldsbu.f
6792 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6793 int UNUSED written = 0;
6794 IADDR UNUSED pc = abuf->addr;
6795 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6797 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6800 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6802 SI opval = frvbf_read_mem_SI (current_cpu, pc, tmp_address);
6803 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6804 written |= (1 << 8);
6805 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6807 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
6809 SI opval = tmp_address;
6810 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6811 written |= (1 << 7);
6812 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6818 abuf->written = written;
6823 /* cldbfu: cldbfu$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6826 SEM_FN_NAME (frvbf,cldbfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6828 #define FLD(f) abuf->fields.sfmt_cldbfu.f
6829 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6830 int UNUSED written = 0;
6831 IADDR UNUSED pc = abuf->addr;
6832 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6834 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6837 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6839 SI opval = frvbf_read_mem_UQI (current_cpu, pc, tmp_address);
6840 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
6841 written |= (1 << 5);
6842 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
6845 SI opval = tmp_address;
6846 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6847 written |= (1 << 6);
6848 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6853 abuf->written = written;
6858 /* cldhfu: cldhfu$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6861 SEM_FN_NAME (frvbf,cldhfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6863 #define FLD(f) abuf->fields.sfmt_cldbfu.f
6864 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6865 int UNUSED written = 0;
6866 IADDR UNUSED pc = abuf->addr;
6867 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6869 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6872 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6874 SI opval = frvbf_read_mem_UHI (current_cpu, pc, tmp_address);
6875 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
6876 written |= (1 << 5);
6877 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
6880 SI opval = tmp_address;
6881 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6882 written |= (1 << 6);
6883 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6888 abuf->written = written;
6893 /* cldfu: cldfu$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6896 SEM_FN_NAME (frvbf,cldfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6898 #define FLD(f) abuf->fields.sfmt_cldbfu.f
6899 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6900 int UNUSED written = 0;
6901 IADDR UNUSED pc = abuf->addr;
6902 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6904 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6907 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6909 SI opval = frvbf_read_mem_SI (current_cpu, pc, tmp_address);
6910 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
6911 written |= (1 << 5);
6912 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
6915 SI opval = tmp_address;
6916 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6917 written |= (1 << 6);
6918 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6923 abuf->written = written;
6928 /* clddu: clddu$pack @($GRi,$GRj),$GRdoublek,$CCi,$cond */
6931 SEM_FN_NAME (frvbf,clddu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6933 #define FLD(f) abuf->fields.sfmt_clddu.f
6934 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6935 int UNUSED written = 0;
6936 IADDR UNUSED pc = abuf->addr;
6937 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6939 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6942 if (NESI (FLD (f_GRk), 0)) {
6944 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6946 DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
6947 sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
6948 written |= (1 << 7);
6949 TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
6953 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
6955 SI opval = tmp_address;
6956 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6957 written |= (1 << 8);
6958 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6964 abuf->written = written;
6969 /* clddfu: clddfu$pack @($GRi,$GRj),$FRdoublek,$CCi,$cond */
6972 SEM_FN_NAME (frvbf,clddfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6974 #define FLD(f) abuf->fields.sfmt_clddfu.f
6975 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6976 int UNUSED written = 0;
6977 IADDR UNUSED pc = abuf->addr;
6978 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6980 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6984 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6986 DF opval = frvbf_read_mem_DF (current_cpu, pc, tmp_address);
6987 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
6988 written |= (1 << 5);
6989 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
6993 SI opval = tmp_address;
6994 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6995 written |= (1 << 6);
6996 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7001 abuf->written = written;
7006 /* cldqu: cldqu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
7009 SEM_FN_NAME (frvbf,cldqu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7011 #define FLD(f) abuf->fields.sfmt_cstdu.f
7012 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7013 int UNUSED written = 0;
7014 IADDR UNUSED pc = abuf->addr;
7015 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7017 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7021 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7022 frvbf_load_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
7024 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
7026 SI opval = tmp_address;
7027 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
7028 written |= (1 << 7);
7029 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7035 abuf->written = written;
7040 /* cstb: cstb$pack $GRk,@($GRi,$GRj),$CCi,$cond */
7043 SEM_FN_NAME (frvbf,cstb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7045 #define FLD(f) abuf->fields.sfmt_cswap.f
7046 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7047 int UNUSED written = 0;
7048 IADDR UNUSED pc = abuf->addr;
7049 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7051 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7052 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)));
7059 /* csth: csth$pack $GRk,@($GRi,$GRj),$CCi,$cond */
7062 SEM_FN_NAME (frvbf,csth) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7064 #define FLD(f) abuf->fields.sfmt_cswap.f
7065 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7066 int UNUSED written = 0;
7067 IADDR UNUSED pc = abuf->addr;
7068 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7070 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7071 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)));
7078 /* cst: cst$pack $GRk,@($GRi,$GRj),$CCi,$cond */
7081 SEM_FN_NAME (frvbf,cst) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7083 #define FLD(f) abuf->fields.sfmt_cswap.f
7084 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7085 int UNUSED written = 0;
7086 IADDR UNUSED pc = abuf->addr;
7087 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7089 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7090 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)));
7097 /* cstbf: cstbf$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
7100 SEM_FN_NAME (frvbf,cstbf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7102 #define FLD(f) abuf->fields.sfmt_cstbfu.f
7103 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7104 int UNUSED written = 0;
7105 IADDR UNUSED pc = abuf->addr;
7106 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7108 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7109 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)));
7116 /* csthf: csthf$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
7119 SEM_FN_NAME (frvbf,csthf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7121 #define FLD(f) abuf->fields.sfmt_cstbfu.f
7122 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7123 int UNUSED written = 0;
7124 IADDR UNUSED pc = abuf->addr;
7125 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7127 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7128 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)));
7135 /* cstf: cstf$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
7138 SEM_FN_NAME (frvbf,cstf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7140 #define FLD(f) abuf->fields.sfmt_cstbfu.f
7141 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7142 int UNUSED written = 0;
7143 IADDR UNUSED pc = abuf->addr;
7144 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7146 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7147 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)));
7154 /* cstd: cstd$pack $GRdoublek,@($GRi,$GRj),$CCi,$cond */
7157 SEM_FN_NAME (frvbf,cstd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7159 #define FLD(f) abuf->fields.sfmt_cstdu.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))) {
7169 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7170 frvbf_write_mem_DI (current_cpu, pc, tmp_address, GET_H_GR_DOUBLE (FLD (f_GRk)));
7179 /* cstdf: cstdf$pack $FRdoublek,@($GRi,$GRj),$CCi,$cond */
7182 SEM_FN_NAME (frvbf,cstdf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7184 #define FLD(f) abuf->fields.sfmt_cstdfu.f
7185 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7186 int UNUSED written = 0;
7187 IADDR UNUSED pc = abuf->addr;
7188 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7190 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7194 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7195 frvbf_write_mem_DF (current_cpu, pc, tmp_address, GET_H_FR_DOUBLE (FLD (f_FRk)));
7204 /* cstq: cstq$pack $GRk,@($GRi,$GRj),$CCi,$cond */
7207 SEM_FN_NAME (frvbf,cstq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7209 #define FLD(f) abuf->fields.sfmt_cswap.f
7210 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7211 int UNUSED written = 0;
7212 IADDR UNUSED pc = abuf->addr;
7213 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7215 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7219 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7220 frvbf_store_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
7229 /* cstbu: cstbu$pack $GRk,@($GRi,$GRj),$CCi,$cond */
7232 SEM_FN_NAME (frvbf,cstbu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7234 #define FLD(f) abuf->fields.sfmt_cstbu.f
7235 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7236 int UNUSED written = 0;
7237 IADDR UNUSED pc = abuf->addr;
7238 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7240 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7243 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7244 frvbf_write_mem_QI (current_cpu, pc, tmp_address, GET_H_GR (FLD (f_GRk)));
7246 SI opval = tmp_address;
7247 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
7248 written |= (1 << 6);
7249 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7254 abuf->written = written;
7259 /* csthu: csthu$pack $GRk,@($GRi,$GRj),$CCi,$cond */
7262 SEM_FN_NAME (frvbf,csthu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7264 #define FLD(f) abuf->fields.sfmt_cstbu.f
7265 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7266 int UNUSED written = 0;
7267 IADDR UNUSED pc = abuf->addr;
7268 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7270 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7273 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7274 frvbf_write_mem_HI (current_cpu, pc, tmp_address, GET_H_GR (FLD (f_GRk)));
7276 SI opval = tmp_address;
7277 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
7278 written |= (1 << 6);
7279 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7284 abuf->written = written;
7289 /* cstu: cstu$pack $GRk,@($GRi,$GRj),$CCi,$cond */
7292 SEM_FN_NAME (frvbf,cstu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7294 #define FLD(f) abuf->fields.sfmt_cstbu.f
7295 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7296 int UNUSED written = 0;
7297 IADDR UNUSED pc = abuf->addr;
7298 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7300 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7303 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7304 frvbf_write_mem_SI (current_cpu, pc, tmp_address, GET_H_GR (FLD (f_GRk)));
7306 SI opval = tmp_address;
7307 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
7308 written |= (1 << 6);
7309 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7314 abuf->written = written;
7319 /* cstbfu: cstbfu$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
7322 SEM_FN_NAME (frvbf,cstbfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7324 #define FLD(f) abuf->fields.sfmt_cstbfu.f
7325 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7326 int UNUSED written = 0;
7327 IADDR UNUSED pc = abuf->addr;
7328 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7330 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7333 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7334 frvbf_write_mem_QI (current_cpu, pc, tmp_address, GET_H_FR_INT (FLD (f_FRk)));
7336 SI opval = tmp_address;
7337 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
7338 written |= (1 << 6);
7339 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7344 abuf->written = written;
7349 /* csthfu: csthfu$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
7352 SEM_FN_NAME (frvbf,csthfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7354 #define FLD(f) abuf->fields.sfmt_cstbfu.f
7355 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7356 int UNUSED written = 0;
7357 IADDR UNUSED pc = abuf->addr;
7358 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7360 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7363 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7364 frvbf_write_mem_HI (current_cpu, pc, tmp_address, GET_H_FR_INT (FLD (f_FRk)));
7366 SI opval = tmp_address;
7367 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
7368 written |= (1 << 6);
7369 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7374 abuf->written = written;
7379 /* cstfu: cstfu$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
7382 SEM_FN_NAME (frvbf,cstfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7384 #define FLD(f) abuf->fields.sfmt_cstbfu.f
7385 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7386 int UNUSED written = 0;
7387 IADDR UNUSED pc = abuf->addr;
7388 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7390 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7393 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7394 frvbf_write_mem_SI (current_cpu, pc, tmp_address, GET_H_FR_INT (FLD (f_FRk)));
7396 SI opval = tmp_address;
7397 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
7398 written |= (1 << 6);
7399 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7404 abuf->written = written;
7409 /* cstdu: cstdu$pack $GRdoublek,@($GRi,$GRj),$CCi,$cond */
7412 SEM_FN_NAME (frvbf,cstdu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7414 #define FLD(f) abuf->fields.sfmt_cstdu.f
7415 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7416 int UNUSED written = 0;
7417 IADDR UNUSED pc = abuf->addr;
7418 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7420 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7424 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7425 frvbf_write_mem_DI (current_cpu, pc, tmp_address, GET_H_GR_DOUBLE (FLD (f_GRk)));
7428 SI opval = tmp_address;
7429 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
7430 written |= (1 << 6);
7431 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7436 abuf->written = written;
7441 /* cstdfu: cstdfu$pack $FRdoublek,@($GRi,$GRj),$CCi,$cond */
7444 SEM_FN_NAME (frvbf,cstdfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7446 #define FLD(f) abuf->fields.sfmt_cstdfu.f
7447 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7448 int UNUSED written = 0;
7449 IADDR UNUSED pc = abuf->addr;
7450 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7452 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7456 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7457 frvbf_write_mem_DF (current_cpu, pc, tmp_address, GET_H_FR_DOUBLE (FLD (f_FRk)));
7460 SI opval = tmp_address;
7461 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
7462 written |= (1 << 6);
7463 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7468 abuf->written = written;
7473 /* stbi: stbi$pack $GRk,@($GRi,$d12) */
7476 SEM_FN_NAME (frvbf,stbi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7478 #define FLD(f) abuf->fields.sfmt_swapi.f
7479 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7480 int UNUSED written = 0;
7481 IADDR UNUSED pc = abuf->addr;
7482 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7484 frvbf_write_mem_QI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), GET_H_GR (FLD (f_GRk)));
7490 /* sthi: sthi$pack $GRk,@($GRi,$d12) */
7493 SEM_FN_NAME (frvbf,sthi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7495 #define FLD(f) abuf->fields.sfmt_swapi.f
7496 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7497 int UNUSED written = 0;
7498 IADDR UNUSED pc = abuf->addr;
7499 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7501 frvbf_write_mem_HI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), GET_H_GR (FLD (f_GRk)));
7507 /* sti: sti$pack $GRk,@($GRi,$d12) */
7510 SEM_FN_NAME (frvbf,sti) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7512 #define FLD(f) abuf->fields.sfmt_swapi.f
7513 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7514 int UNUSED written = 0;
7515 IADDR UNUSED pc = abuf->addr;
7516 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7518 frvbf_write_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), GET_H_GR (FLD (f_GRk)));
7524 /* stbfi: stbfi$pack $FRintk,@($GRi,$d12) */
7527 SEM_FN_NAME (frvbf,stbfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7529 #define FLD(f) abuf->fields.sfmt_stbfi.f
7530 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7531 int UNUSED written = 0;
7532 IADDR UNUSED pc = abuf->addr;
7533 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7535 frvbf_write_mem_QI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), GET_H_FR_INT (FLD (f_FRk)));
7541 /* sthfi: sthfi$pack $FRintk,@($GRi,$d12) */
7544 SEM_FN_NAME (frvbf,sthfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7546 #define FLD(f) abuf->fields.sfmt_stbfi.f
7547 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7548 int UNUSED written = 0;
7549 IADDR UNUSED pc = abuf->addr;
7550 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7552 frvbf_write_mem_HI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), GET_H_FR_INT (FLD (f_FRk)));
7558 /* stfi: stfi$pack $FRintk,@($GRi,$d12) */
7561 SEM_FN_NAME (frvbf,stfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7563 #define FLD(f) abuf->fields.sfmt_stbfi.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 frvbf_write_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), GET_H_FR_INT (FLD (f_FRk)));
7575 /* stdi: stdi$pack $GRdoublek,@($GRi,$d12) */
7578 SEM_FN_NAME (frvbf,stdi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7580 #define FLD(f) abuf->fields.sfmt_stdi.f
7581 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7582 int UNUSED written = 0;
7583 IADDR UNUSED pc = abuf->addr;
7584 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7589 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
7590 frvbf_write_mem_DI (current_cpu, pc, tmp_address, GET_H_GR_DOUBLE (FLD (f_GRk)));
7598 /* stdfi: stdfi$pack $FRdoublek,@($GRi,$d12) */
7601 SEM_FN_NAME (frvbf,stdfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7603 #define FLD(f) abuf->fields.sfmt_stdfi.f
7604 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7605 int UNUSED written = 0;
7606 IADDR UNUSED pc = abuf->addr;
7607 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7612 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
7613 frvbf_write_mem_DF (current_cpu, pc, tmp_address, GET_H_FR_DOUBLE (FLD (f_FRk)));
7621 /* stqi: stqi$pack $GRk,@($GRi,$d12) */
7624 SEM_FN_NAME (frvbf,stqi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7626 #define FLD(f) abuf->fields.sfmt_stdi.f
7627 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7628 int UNUSED written = 0;
7629 IADDR UNUSED pc = abuf->addr;
7630 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7635 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
7636 frvbf_store_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
7644 /* stqfi: stqfi$pack $FRintk,@($GRi,$d12) */
7647 SEM_FN_NAME (frvbf,stqfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7649 #define FLD(f) abuf->fields.sfmt_stdfi.f
7650 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7651 int UNUSED written = 0;
7652 IADDR UNUSED pc = abuf->addr;
7653 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7658 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
7659 frvbf_store_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
7667 /* swap: swap$pack @($GRi,$GRj),$GRk */
7670 SEM_FN_NAME (frvbf,swap) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7672 #define FLD(f) abuf->fields.sfmt_cswap.f
7673 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7674 int UNUSED written = 0;
7675 IADDR UNUSED pc = abuf->addr;
7676 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7681 tmp_tmp = GET_H_GR (FLD (f_GRk));
7682 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7683 frvbf_check_swap_address (current_cpu, tmp_address);
7685 SI opval = frvbf_read_mem_WI (current_cpu, pc, tmp_address);
7686 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
7687 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7689 frvbf_write_mem_WI (current_cpu, pc, tmp_address, tmp_tmp);
7696 /* swapi: swapi$pack @($GRi,$d12),$GRk */
7699 SEM_FN_NAME (frvbf,swapi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7701 #define FLD(f) abuf->fields.sfmt_swapi.f
7702 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7703 int UNUSED written = 0;
7704 IADDR UNUSED pc = abuf->addr;
7705 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7710 tmp_tmp = GET_H_GR (FLD (f_GRk));
7711 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
7712 frvbf_check_swap_address (current_cpu, tmp_address);
7714 SI opval = frvbf_read_mem_WI (current_cpu, pc, tmp_address);
7715 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
7716 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7718 frvbf_write_mem_WI (current_cpu, pc, tmp_address, tmp_tmp);
7725 /* cswap: cswap$pack @($GRi,$GRj),$GRk,$CCi,$cond */
7728 SEM_FN_NAME (frvbf,cswap) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7730 #define FLD(f) abuf->fields.sfmt_cswap.f
7731 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7732 int UNUSED written = 0;
7733 IADDR UNUSED pc = abuf->addr;
7734 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7736 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7740 tmp_tmp = GET_H_GR (FLD (f_GRk));
7741 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7742 frvbf_check_swap_address (current_cpu, tmp_address);
7744 SI opval = frvbf_read_mem_WI (current_cpu, pc, tmp_address);
7745 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
7746 written |= (1 << 6);
7747 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7749 frvbf_write_mem_WI (current_cpu, pc, tmp_address, tmp_tmp);
7753 abuf->written = written;
7758 /* movgf: movgf$pack $GRj,$FRintk */
7761 SEM_FN_NAME (frvbf,movgf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7763 #define FLD(f) abuf->fields.sfmt_cmovgfd.f
7764 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7765 int UNUSED written = 0;
7766 IADDR UNUSED pc = abuf->addr;
7767 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7770 SI opval = GET_H_GR (FLD (f_GRj));
7771 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
7772 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7779 /* movfg: movfg$pack $FRintk,$GRj */
7782 SEM_FN_NAME (frvbf,movfg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7784 #define FLD(f) abuf->fields.sfmt_cmovfgd.f
7785 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7786 int UNUSED written = 0;
7787 IADDR UNUSED pc = abuf->addr;
7788 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7791 SI opval = GET_H_FR_INT (FLD (f_FRk));
7792 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRj), opval);
7793 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7800 /* movgfd: movgfd$pack $GRj,$FRintk */
7803 SEM_FN_NAME (frvbf,movgfd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7805 #define FLD(f) abuf->fields.sfmt_cmovgfd.f
7806 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7807 int UNUSED written = 0;
7808 IADDR UNUSED pc = abuf->addr;
7809 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7811 if (EQSI (FLD (f_GRj), 0)) {
7815 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
7816 written |= (1 << 4);
7817 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7821 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
7822 written |= (1 << 5);
7823 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7829 SI opval = GET_H_GR (FLD (f_GRj));
7830 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
7831 written |= (1 << 4);
7832 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7835 USI opval = GET_H_GR (((FLD (f_GRj)) + (1)));
7836 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
7837 written |= (1 << 5);
7838 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7843 abuf->written = written;
7848 /* movfgd: movfgd$pack $FRintk,$GRj */
7851 SEM_FN_NAME (frvbf,movfgd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7853 #define FLD(f) abuf->fields.sfmt_cmovfgd.f
7854 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7855 int UNUSED written = 0;
7856 IADDR UNUSED pc = abuf->addr;
7857 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7859 if (NESI (FLD (f_GRj), 0)) {
7862 SI opval = GET_H_FR_INT (FLD (f_FRk));
7863 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRj), opval);
7864 written |= (1 << 4);
7865 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7868 USI opval = GET_H_FR_INT (((FLD (f_FRk)) + (1)));
7869 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, ((FLD (f_GRj)) + (1)), opval);
7870 written |= (1 << 5);
7871 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7876 abuf->written = written;
7881 /* movgfq: movgfq$pack $GRj,$FRintk */
7884 SEM_FN_NAME (frvbf,movgfq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7886 #define FLD(f) abuf->fields.sfmt_movgfq.f
7887 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7888 int UNUSED written = 0;
7889 IADDR UNUSED pc = abuf->addr;
7890 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
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);
7908 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (2)), opval);
7909 written |= (1 << 8);
7910 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7914 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (3)), opval);
7915 written |= (1 << 9);
7916 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7922 SI opval = GET_H_GR (FLD (f_GRj));
7923 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
7924 written |= (1 << 6);
7925 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7928 USI opval = GET_H_GR (((FLD (f_GRj)) + (1)));
7929 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
7930 written |= (1 << 7);
7931 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7934 USI opval = GET_H_GR (((FLD (f_GRj)) + (2)));
7935 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (2)), opval);
7936 written |= (1 << 8);
7937 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7940 USI opval = GET_H_GR (((FLD (f_GRj)) + (3)));
7941 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (3)), opval);
7942 written |= (1 << 9);
7943 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7948 abuf->written = written;
7953 /* movfgq: movfgq$pack $FRintk,$GRj */
7956 SEM_FN_NAME (frvbf,movfgq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7958 #define FLD(f) abuf->fields.sfmt_movfgq.f
7959 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7960 int UNUSED written = 0;
7961 IADDR UNUSED pc = abuf->addr;
7962 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7964 if (NESI (FLD (f_GRj), 0)) {
7967 SI opval = GET_H_FR_INT (FLD (f_FRk));
7968 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRj), opval);
7969 written |= (1 << 6);
7970 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7973 USI opval = GET_H_FR_INT (((FLD (f_FRk)) + (1)));
7974 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, ((FLD (f_GRj)) + (1)), opval);
7975 written |= (1 << 7);
7976 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7979 USI opval = GET_H_FR_INT (((FLD (f_FRk)) + (2)));
7980 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, ((FLD (f_GRj)) + (2)), opval);
7981 written |= (1 << 8);
7982 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7985 USI opval = GET_H_FR_INT (((FLD (f_FRk)) + (3)));
7986 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, ((FLD (f_GRj)) + (3)), opval);
7987 written |= (1 << 9);
7988 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7993 abuf->written = written;
7998 /* cmovgf: cmovgf$pack $GRj,$FRintk,$CCi,$cond */
8001 SEM_FN_NAME (frvbf,cmovgf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8003 #define FLD(f) abuf->fields.sfmt_cmovgfd.f
8004 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8005 int UNUSED written = 0;
8006 IADDR UNUSED pc = abuf->addr;
8007 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8009 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
8011 SI opval = GET_H_GR (FLD (f_GRj));
8012 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
8013 written |= (1 << 3);
8014 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
8018 abuf->written = written;
8023 /* cmovfg: cmovfg$pack $FRintk,$GRj,$CCi,$cond */
8026 SEM_FN_NAME (frvbf,cmovfg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8028 #define FLD(f) abuf->fields.sfmt_cmovfgd.f
8029 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8030 int UNUSED written = 0;
8031 IADDR UNUSED pc = abuf->addr;
8032 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8034 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
8036 SI opval = GET_H_FR_INT (FLD (f_FRk));
8037 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRj), opval);
8038 written |= (1 << 3);
8039 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
8043 abuf->written = written;
8048 /* cmovgfd: cmovgfd$pack $GRj,$FRintk,$CCi,$cond */
8051 SEM_FN_NAME (frvbf,cmovgfd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8053 #define FLD(f) abuf->fields.sfmt_cmovgfd.f
8054 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8055 int UNUSED written = 0;
8056 IADDR UNUSED pc = abuf->addr;
8057 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8059 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
8060 if (EQSI (FLD (f_GRj), 0)) {
8064 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
8065 written |= (1 << 6);
8066 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
8070 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
8071 written |= (1 << 7);
8072 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
8078 SI opval = GET_H_GR (FLD (f_GRj));
8079 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
8080 written |= (1 << 6);
8081 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
8084 USI opval = GET_H_GR (((FLD (f_GRj)) + (1)));
8085 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
8086 written |= (1 << 7);
8087 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
8093 abuf->written = written;
8098 /* cmovfgd: cmovfgd$pack $FRintk,$GRj,$CCi,$cond */
8101 SEM_FN_NAME (frvbf,cmovfgd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8103 #define FLD(f) abuf->fields.sfmt_cmovfgd.f
8104 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8105 int UNUSED written = 0;
8106 IADDR UNUSED pc = abuf->addr;
8107 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8109 if (ANDIF (NESI (FLD (f_GRj), 0), EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2)))) {
8112 SI opval = GET_H_FR_INT (FLD (f_FRk));
8113 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRj), opval);
8114 written |= (1 << 6);
8115 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
8118 USI opval = GET_H_FR_INT (((FLD (f_FRk)) + (1)));
8119 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, ((FLD (f_GRj)) + (1)), opval);
8120 written |= (1 << 7);
8121 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
8126 abuf->written = written;
8131 /* movgs: movgs$pack $GRj,$spr */
8134 SEM_FN_NAME (frvbf,movgs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8136 #define FLD(f) abuf->fields.sfmt_movgs.f
8137 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8138 int UNUSED written = 0;
8139 IADDR UNUSED pc = abuf->addr;
8140 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8143 USI opval = GET_H_GR (FLD (f_GRj));
8144 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, FLD (f_spr), opval);
8145 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
8152 /* movsg: movsg$pack $spr,$GRj */
8155 SEM_FN_NAME (frvbf,movsg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8157 #define FLD(f) abuf->fields.sfmt_movsg.f
8158 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8159 int UNUSED written = 0;
8160 IADDR UNUSED pc = abuf->addr;
8161 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8164 SI opval = GET_H_SPR (FLD (f_spr));
8165 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRj), opval);
8166 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
8173 /* bra: bra$pack $hint_taken$label16 */
8176 SEM_FN_NAME (frvbf,bra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8178 #define FLD(f) abuf->fields.sfmt_fbne.f
8179 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8180 int UNUSED written = 0;
8181 IADDR UNUSED pc = abuf->addr;
8182 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8185 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8187 USI opval = FLD (i_label16);
8188 sim_queue_pc_write (current_cpu, opval);
8189 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8197 /* bno: bno$pack$hint_not_taken */
8200 SEM_FN_NAME (frvbf,bno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8202 #define FLD(f) abuf->fields.sfmt_fbne.f
8203 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8204 int UNUSED written = 0;
8205 IADDR UNUSED pc = abuf->addr;
8206 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8208 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8214 /* beq: beq$pack $ICCi_2,$hint,$label16 */
8217 SEM_FN_NAME (frvbf,beq) (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 (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 /* bne: bne$pack $ICCi_2,$hint,$label16 */
8245 SEM_FN_NAME (frvbf,bne) (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 (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 /* ble: ble$pack $ICCi_2,$hint,$label16 */
8273 SEM_FN_NAME (frvbf,ble) (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 (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))))) {
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 /* bgt: bgt$pack $ICCi_2,$hint,$label16 */
8301 SEM_FN_NAME (frvbf,bgt) (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 (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)))))) {
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 /* blt: blt$pack $ICCi_2,$hint,$label16 */
8329 SEM_FN_NAME (frvbf,blt) (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 (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)))) {
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 /* bge: bge$pack $ICCi_2,$hint,$label16 */
8357 SEM_FN_NAME (frvbf,bge) (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 (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))))) {
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 /* bls: bls$pack $ICCi_2,$hint,$label16 */
8385 SEM_FN_NAME (frvbf,bls) (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 (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
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 /* bhi: bhi$pack $ICCi_2,$hint,$label16 */
8413 SEM_FN_NAME (frvbf,bhi) (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 (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2))))) {
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 /* bc: bc$pack $ICCi_2,$hint,$label16 */
8441 SEM_FN_NAME (frvbf,bc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8443 #define FLD(f) abuf->fields.sfmt_beq.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));
8451 if (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1))) {
8453 USI opval = FLD (i_label16);
8454 sim_queue_pc_write (current_cpu, opval);
8455 written |= (1 << 3);
8456 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8461 abuf->written = written;
8466 /* bnc: bnc$pack $ICCi_2,$hint,$label16 */
8469 SEM_FN_NAME (frvbf,bnc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8471 #define FLD(f) abuf->fields.sfmt_beq.f
8472 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8473 int UNUSED written = 0;
8474 IADDR UNUSED pc = abuf->addr;
8475 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8478 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8479 if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)))) {
8481 USI opval = FLD (i_label16);
8482 sim_queue_pc_write (current_cpu, opval);
8483 written |= (1 << 3);
8484 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8489 abuf->written = written;
8494 /* bn: bn$pack $ICCi_2,$hint,$label16 */
8497 SEM_FN_NAME (frvbf,bn) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8499 #define FLD(f) abuf->fields.sfmt_beq.f
8500 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8501 int UNUSED written = 0;
8502 IADDR UNUSED pc = abuf->addr;
8503 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8506 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8507 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3))) {
8509 USI opval = FLD (i_label16);
8510 sim_queue_pc_write (current_cpu, opval);
8511 written |= (1 << 3);
8512 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8517 abuf->written = written;
8522 /* bp: bp$pack $ICCi_2,$hint,$label16 */
8525 SEM_FN_NAME (frvbf,bp) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8527 #define FLD(f) abuf->fields.sfmt_beq.f
8528 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8529 int UNUSED written = 0;
8530 IADDR UNUSED pc = abuf->addr;
8531 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8534 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8535 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3)))) {
8537 USI opval = FLD (i_label16);
8538 sim_queue_pc_write (current_cpu, opval);
8539 written |= (1 << 3);
8540 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8545 abuf->written = written;
8550 /* bv: bv$pack $ICCi_2,$hint,$label16 */
8553 SEM_FN_NAME (frvbf,bv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8555 #define FLD(f) abuf->fields.sfmt_beq.f
8556 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8557 int UNUSED written = 0;
8558 IADDR UNUSED pc = abuf->addr;
8559 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8562 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8563 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1))) {
8565 USI opval = FLD (i_label16);
8566 sim_queue_pc_write (current_cpu, opval);
8567 written |= (1 << 3);
8568 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8573 abuf->written = written;
8578 /* bnv: bnv$pack $ICCi_2,$hint,$label16 */
8581 SEM_FN_NAME (frvbf,bnv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8583 #define FLD(f) abuf->fields.sfmt_beq.f
8584 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8585 int UNUSED written = 0;
8586 IADDR UNUSED pc = abuf->addr;
8587 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8590 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8591 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1)))) {
8593 USI opval = FLD (i_label16);
8594 sim_queue_pc_write (current_cpu, opval);
8595 written |= (1 << 3);
8596 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8601 abuf->written = written;
8606 /* fbra: fbra$pack $hint_taken$label16 */
8609 SEM_FN_NAME (frvbf,fbra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8611 #define FLD(f) abuf->fields.sfmt_fbne.f
8612 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8613 int UNUSED written = 0;
8614 IADDR UNUSED pc = abuf->addr;
8615 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8618 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8620 USI opval = FLD (i_label16);
8621 sim_queue_pc_write (current_cpu, opval);
8622 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8630 /* fbno: fbno$pack$hint_not_taken */
8633 SEM_FN_NAME (frvbf,fbno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8635 #define FLD(f) abuf->fields.sfmt_fbne.f
8636 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8637 int UNUSED written = 0;
8638 IADDR UNUSED pc = abuf->addr;
8639 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8641 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8647 /* fbne: fbne$pack $FCCi_2,$hint,$label16 */
8650 SEM_FN_NAME (frvbf,fbne) (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 (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))))) {
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 /* fbeq: fbeq$pack $FCCi_2,$hint,$label16 */
8678 SEM_FN_NAME (frvbf,fbeq) (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 (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3))) {
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 /* fblg: fblg$pack $FCCi_2,$hint,$label16 */
8706 SEM_FN_NAME (frvbf,fblg) (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)]), 4), 2)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 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 /* fbue: fbue$pack $FCCi_2,$hint,$label16 */
8734 SEM_FN_NAME (frvbf,fbue) (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 (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
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 /* fbul: fbul$pack $FCCi_2,$hint,$label16 */
8762 SEM_FN_NAME (frvbf,fbul) (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 (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_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 /* fbge: fbge$pack $FCCi_2,$hint,$label16 */
8790 SEM_FN_NAME (frvbf,fbge) (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)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 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 /* fblt: fblt$pack $FCCi_2,$hint,$label16 */
8818 SEM_FN_NAME (frvbf,fblt) (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 (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2))) {
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 /* fbuge: fbuge$pack $FCCi_2,$hint,$label16 */
8846 SEM_FN_NAME (frvbf,fbuge) (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)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_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 /* fbug: fbug$pack $FCCi_2,$hint,$label16 */
8874 SEM_FN_NAME (frvbf,fbug) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8876 #define FLD(f) abuf->fields.sfmt_fbne.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, FLD (i_label16), FLD (f_hint));
8884 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
8886 USI opval = FLD (i_label16);
8887 sim_queue_pc_write (current_cpu, opval);
8888 written |= (1 << 3);
8889 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8894 abuf->written = written;
8899 /* fble: fble$pack $FCCi_2,$hint,$label16 */
8902 SEM_FN_NAME (frvbf,fble) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8904 #define FLD(f) abuf->fields.sfmt_fbne.f
8905 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8906 int UNUSED written = 0;
8907 IADDR UNUSED pc = abuf->addr;
8908 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8911 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8912 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)))) {
8914 USI opval = FLD (i_label16);
8915 sim_queue_pc_write (current_cpu, opval);
8916 written |= (1 << 3);
8917 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8922 abuf->written = written;
8927 /* fbgt: fbgt$pack $FCCi_2,$hint,$label16 */
8930 SEM_FN_NAME (frvbf,fbgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8932 #define FLD(f) abuf->fields.sfmt_fbne.f
8933 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8934 int UNUSED written = 0;
8935 IADDR UNUSED pc = abuf->addr;
8936 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8939 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8940 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1))) {
8942 USI opval = FLD (i_label16);
8943 sim_queue_pc_write (current_cpu, opval);
8944 written |= (1 << 3);
8945 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8950 abuf->written = written;
8955 /* fbule: fbule$pack $FCCi_2,$hint,$label16 */
8958 SEM_FN_NAME (frvbf,fbule) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8960 #define FLD(f) abuf->fields.sfmt_fbne.f
8961 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8962 int UNUSED written = 0;
8963 IADDR UNUSED pc = abuf->addr;
8964 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8967 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8968 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))))) {
8970 USI opval = FLD (i_label16);
8971 sim_queue_pc_write (current_cpu, opval);
8972 written |= (1 << 3);
8973 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8978 abuf->written = written;
8983 /* fbu: fbu$pack $FCCi_2,$hint,$label16 */
8986 SEM_FN_NAME (frvbf,fbu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8988 #define FLD(f) abuf->fields.sfmt_fbne.f
8989 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8990 int UNUSED written = 0;
8991 IADDR UNUSED pc = abuf->addr;
8992 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8995 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8996 if (TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1))) {
8998 USI opval = FLD (i_label16);
8999 sim_queue_pc_write (current_cpu, opval);
9000 written |= (1 << 3);
9001 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9006 abuf->written = written;
9011 /* fbo: fbo$pack $FCCi_2,$hint,$label16 */
9014 SEM_FN_NAME (frvbf,fbo) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9016 #define FLD(f) abuf->fields.sfmt_fbne.f
9017 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9018 int UNUSED written = 0;
9019 IADDR UNUSED pc = abuf->addr;
9020 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9023 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
9024 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))))) {
9026 USI opval = FLD (i_label16);
9027 sim_queue_pc_write (current_cpu, opval);
9028 written |= (1 << 3);
9029 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9034 abuf->written = written;
9039 /* bctrlr: bctrlr$pack $ccond,$hint */
9042 SEM_FN_NAME (frvbf,bctrlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9044 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9045 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9046 int UNUSED written = 0;
9047 IADDR UNUSED pc = abuf->addr;
9048 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9051 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9054 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
9056 USI opval = tmp_tmp;
9057 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
9058 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
9060 if (EQSI (FLD (f_ccond), 0)) {
9061 if (NESI (tmp_tmp, 0)) {
9063 USI opval = GET_H_SPR (((UINT) 272));
9064 sim_queue_pc_write (current_cpu, opval);
9065 written |= (1 << 5);
9066 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9070 if (EQSI (tmp_tmp, 0)) {
9072 USI opval = GET_H_SPR (((UINT) 272));
9073 sim_queue_pc_write (current_cpu, opval);
9074 written |= (1 << 5);
9075 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9082 abuf->written = written;
9087 /* bralr: bralr$pack$hint_taken */
9090 SEM_FN_NAME (frvbf,bralr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9092 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9093 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9094 int UNUSED written = 0;
9095 IADDR UNUSED pc = abuf->addr;
9096 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9099 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9101 USI opval = GET_H_SPR (((UINT) 272));
9102 sim_queue_pc_write (current_cpu, opval);
9103 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9111 /* bnolr: bnolr$pack$hint_not_taken */
9114 SEM_FN_NAME (frvbf,bnolr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9116 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9117 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9118 int UNUSED written = 0;
9119 IADDR UNUSED pc = abuf->addr;
9120 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9122 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9128 /* beqlr: beqlr$pack $ICCi_2,$hint */
9131 SEM_FN_NAME (frvbf,beqlr) (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 (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 /* bnelr: bnelr$pack $ICCi_2,$hint */
9159 SEM_FN_NAME (frvbf,bnelr) (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 (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 /* blelr: blelr$pack $ICCi_2,$hint */
9187 SEM_FN_NAME (frvbf,blelr) (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 (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))))) {
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 /* bgtlr: bgtlr$pack $ICCi_2,$hint */
9215 SEM_FN_NAME (frvbf,bgtlr) (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 (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)))))) {
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 /* bltlr: bltlr$pack $ICCi_2,$hint */
9243 SEM_FN_NAME (frvbf,bltlr) (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 (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)))) {
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 /* bgelr: bgelr$pack $ICCi_2,$hint */
9271 SEM_FN_NAME (frvbf,bgelr) (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 (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))))) {
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 /* blslr: blslr$pack $ICCi_2,$hint */
9299 SEM_FN_NAME (frvbf,blslr) (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 (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
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 /* bhilr: bhilr$pack $ICCi_2,$hint */
9327 SEM_FN_NAME (frvbf,bhilr) (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 (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2))))) {
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 /* bclr: bclr$pack $ICCi_2,$hint */
9355 SEM_FN_NAME (frvbf,bclr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9357 #define FLD(f) abuf->fields.sfmt_bceqlr.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));
9365 if (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1))) {
9367 USI opval = GET_H_SPR (((UINT) 272));
9368 sim_queue_pc_write (current_cpu, opval);
9369 written |= (1 << 3);
9370 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9375 abuf->written = written;
9380 /* bnclr: bnclr$pack $ICCi_2,$hint */
9383 SEM_FN_NAME (frvbf,bnclr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9385 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9386 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9387 int UNUSED written = 0;
9388 IADDR UNUSED pc = abuf->addr;
9389 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9392 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9393 if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)))) {
9395 USI opval = GET_H_SPR (((UINT) 272));
9396 sim_queue_pc_write (current_cpu, opval);
9397 written |= (1 << 3);
9398 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9403 abuf->written = written;
9408 /* bnlr: bnlr$pack $ICCi_2,$hint */
9411 SEM_FN_NAME (frvbf,bnlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9413 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9414 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9415 int UNUSED written = 0;
9416 IADDR UNUSED pc = abuf->addr;
9417 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9420 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9421 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3))) {
9423 USI opval = GET_H_SPR (((UINT) 272));
9424 sim_queue_pc_write (current_cpu, opval);
9425 written |= (1 << 3);
9426 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9431 abuf->written = written;
9436 /* bplr: bplr$pack $ICCi_2,$hint */
9439 SEM_FN_NAME (frvbf,bplr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9441 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9442 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9443 int UNUSED written = 0;
9444 IADDR UNUSED pc = abuf->addr;
9445 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9448 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9449 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3)))) {
9451 USI opval = GET_H_SPR (((UINT) 272));
9452 sim_queue_pc_write (current_cpu, opval);
9453 written |= (1 << 3);
9454 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9459 abuf->written = written;
9464 /* bvlr: bvlr$pack $ICCi_2,$hint */
9467 SEM_FN_NAME (frvbf,bvlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9469 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9470 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9471 int UNUSED written = 0;
9472 IADDR UNUSED pc = abuf->addr;
9473 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9476 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9477 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1))) {
9479 USI opval = GET_H_SPR (((UINT) 272));
9480 sim_queue_pc_write (current_cpu, opval);
9481 written |= (1 << 3);
9482 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9487 abuf->written = written;
9492 /* bnvlr: bnvlr$pack $ICCi_2,$hint */
9495 SEM_FN_NAME (frvbf,bnvlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9497 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9498 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9499 int UNUSED written = 0;
9500 IADDR UNUSED pc = abuf->addr;
9501 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9504 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9505 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1)))) {
9507 USI opval = GET_H_SPR (((UINT) 272));
9508 sim_queue_pc_write (current_cpu, opval);
9509 written |= (1 << 3);
9510 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9515 abuf->written = written;
9520 /* fbralr: fbralr$pack$hint_taken */
9523 SEM_FN_NAME (frvbf,fbralr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9525 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9526 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9527 int UNUSED written = 0;
9528 IADDR UNUSED pc = abuf->addr;
9529 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9532 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9534 USI opval = GET_H_SPR (((UINT) 272));
9535 sim_queue_pc_write (current_cpu, opval);
9536 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9544 /* fbnolr: fbnolr$pack$hint_not_taken */
9547 SEM_FN_NAME (frvbf,fbnolr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9549 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9550 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9551 int UNUSED written = 0;
9552 IADDR UNUSED pc = abuf->addr;
9553 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9555 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9561 /* fbeqlr: fbeqlr$pack $FCCi_2,$hint */
9564 SEM_FN_NAME (frvbf,fbeqlr) (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)]), 8), 3))) {
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 /* fbnelr: fbnelr$pack $FCCi_2,$hint */
9592 SEM_FN_NAME (frvbf,fbnelr) (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)]), 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))))) {
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 /* fblglr: fblglr$pack $FCCi_2,$hint */
9620 SEM_FN_NAME (frvbf,fblglr) (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)]), 4), 2)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 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 /* fbuelr: fbuelr$pack $FCCi_2,$hint */
9648 SEM_FN_NAME (frvbf,fbuelr) (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 (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
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 /* fbullr: fbullr$pack $FCCi_2,$hint */
9676 SEM_FN_NAME (frvbf,fbullr) (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 (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_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 /* fbgelr: fbgelr$pack $FCCi_2,$hint */
9704 SEM_FN_NAME (frvbf,fbgelr) (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)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 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 /* fbltlr: fbltlr$pack $FCCi_2,$hint */
9732 SEM_FN_NAME (frvbf,fbltlr) (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 (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2))) {
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 /* fbugelr: fbugelr$pack $FCCi_2,$hint */
9760 SEM_FN_NAME (frvbf,fbugelr) (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)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_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 /* fbuglr: fbuglr$pack $FCCi_2,$hint */
9788 SEM_FN_NAME (frvbf,fbuglr) (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));
9798 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
9800 USI opval = GET_H_SPR (((UINT) 272));
9801 sim_queue_pc_write (current_cpu, opval);
9802 written |= (1 << 3);
9803 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9808 abuf->written = written;
9813 /* fblelr: fblelr$pack $FCCi_2,$hint */
9816 SEM_FN_NAME (frvbf,fblelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9818 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9819 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9820 int UNUSED written = 0;
9821 IADDR UNUSED pc = abuf->addr;
9822 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9825 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9826 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)))) {
9828 USI opval = GET_H_SPR (((UINT) 272));
9829 sim_queue_pc_write (current_cpu, opval);
9830 written |= (1 << 3);
9831 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9836 abuf->written = written;
9841 /* fbgtlr: fbgtlr$pack $FCCi_2,$hint */
9844 SEM_FN_NAME (frvbf,fbgtlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9846 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9847 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9848 int UNUSED written = 0;
9849 IADDR UNUSED pc = abuf->addr;
9850 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9853 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9854 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1))) {
9856 USI opval = GET_H_SPR (((UINT) 272));
9857 sim_queue_pc_write (current_cpu, opval);
9858 written |= (1 << 3);
9859 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9864 abuf->written = written;
9869 /* fbulelr: fbulelr$pack $FCCi_2,$hint */
9872 SEM_FN_NAME (frvbf,fbulelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9874 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9875 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9876 int UNUSED written = 0;
9877 IADDR UNUSED pc = abuf->addr;
9878 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9881 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9882 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))))) {
9884 USI opval = GET_H_SPR (((UINT) 272));
9885 sim_queue_pc_write (current_cpu, opval);
9886 written |= (1 << 3);
9887 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9892 abuf->written = written;
9897 /* fbulr: fbulr$pack $FCCi_2,$hint */
9900 SEM_FN_NAME (frvbf,fbulr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9902 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9903 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9904 int UNUSED written = 0;
9905 IADDR UNUSED pc = abuf->addr;
9906 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9909 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9910 if (TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1))) {
9912 USI opval = GET_H_SPR (((UINT) 272));
9913 sim_queue_pc_write (current_cpu, opval);
9914 written |= (1 << 3);
9915 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9920 abuf->written = written;
9925 /* fbolr: fbolr$pack $FCCi_2,$hint */
9928 SEM_FN_NAME (frvbf,fbolr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9930 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9931 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9932 int UNUSED written = 0;
9933 IADDR UNUSED pc = abuf->addr;
9934 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9937 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9938 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))))) {
9940 USI opval = GET_H_SPR (((UINT) 272));
9941 sim_queue_pc_write (current_cpu, opval);
9942 written |= (1 << 3);
9943 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9948 abuf->written = written;
9953 /* bcralr: bcralr$pack $ccond$hint_taken */
9956 SEM_FN_NAME (frvbf,bcralr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9958 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9959 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9960 int UNUSED written = 0;
9961 IADDR UNUSED pc = abuf->addr;
9962 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9965 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9968 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
9970 USI opval = tmp_tmp;
9971 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
9972 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
9974 if (EQSI (FLD (f_ccond), 0)) {
9975 if (NESI (tmp_tmp, 0)) {
9977 USI opval = GET_H_SPR (((UINT) 272));
9978 sim_queue_pc_write (current_cpu, opval);
9979 written |= (1 << 5);
9980 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9984 if (EQSI (tmp_tmp, 0)) {
9986 USI opval = GET_H_SPR (((UINT) 272));
9987 sim_queue_pc_write (current_cpu, opval);
9988 written |= (1 << 5);
9989 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9996 abuf->written = written;
10001 /* bcnolr: bcnolr$pack$hint_not_taken */
10004 SEM_FN_NAME (frvbf,bcnolr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10006 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10007 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10008 int UNUSED written = 0;
10009 IADDR UNUSED pc = abuf->addr;
10010 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10013 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10016 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10018 USI opval = tmp_tmp;
10019 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10020 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10022 ((void) 0); /*nop*/
10030 /* bceqlr: bceqlr$pack $ICCi_2,$ccond,$hint */
10033 SEM_FN_NAME (frvbf,bceqlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10035 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10036 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10037 int UNUSED written = 0;
10038 IADDR UNUSED pc = abuf->addr;
10039 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10042 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10045 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10047 USI opval = tmp_tmp;
10048 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10049 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10051 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2))) {
10052 if (EQSI (FLD (f_ccond), 0)) {
10053 if (NESI (tmp_tmp, 0)) {
10055 USI opval = GET_H_SPR (((UINT) 272));
10056 sim_queue_pc_write (current_cpu, opval);
10057 written |= (1 << 6);
10058 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10062 if (EQSI (tmp_tmp, 0)) {
10064 USI opval = GET_H_SPR (((UINT) 272));
10065 sim_queue_pc_write (current_cpu, opval);
10066 written |= (1 << 6);
10067 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10075 abuf->written = written;
10080 /* bcnelr: bcnelr$pack $ICCi_2,$ccond,$hint */
10083 SEM_FN_NAME (frvbf,bcnelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10085 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10086 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10087 int UNUSED written = 0;
10088 IADDR UNUSED pc = abuf->addr;
10089 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10092 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10095 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10097 USI opval = tmp_tmp;
10098 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10099 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10101 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
10102 if (EQSI (FLD (f_ccond), 0)) {
10103 if (NESI (tmp_tmp, 0)) {
10105 USI opval = GET_H_SPR (((UINT) 272));
10106 sim_queue_pc_write (current_cpu, opval);
10107 written |= (1 << 6);
10108 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10112 if (EQSI (tmp_tmp, 0)) {
10114 USI opval = GET_H_SPR (((UINT) 272));
10115 sim_queue_pc_write (current_cpu, opval);
10116 written |= (1 << 6);
10117 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10125 abuf->written = written;
10130 /* bclelr: bclelr$pack $ICCi_2,$ccond,$hint */
10133 SEM_FN_NAME (frvbf,bclelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10135 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10136 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10137 int UNUSED written = 0;
10138 IADDR UNUSED pc = abuf->addr;
10139 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10142 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10145 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10147 USI opval = tmp_tmp;
10148 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10149 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10151 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))))) {
10152 if (EQSI (FLD (f_ccond), 0)) {
10153 if (NESI (tmp_tmp, 0)) {
10155 USI opval = GET_H_SPR (((UINT) 272));
10156 sim_queue_pc_write (current_cpu, opval);
10157 written |= (1 << 6);
10158 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10162 if (EQSI (tmp_tmp, 0)) {
10164 USI opval = GET_H_SPR (((UINT) 272));
10165 sim_queue_pc_write (current_cpu, opval);
10166 written |= (1 << 6);
10167 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10175 abuf->written = written;
10180 /* bcgtlr: bcgtlr$pack $ICCi_2,$ccond,$hint */
10183 SEM_FN_NAME (frvbf,bcgtlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10185 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10186 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10187 int UNUSED written = 0;
10188 IADDR UNUSED pc = abuf->addr;
10189 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10192 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10195 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10197 USI opval = tmp_tmp;
10198 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10199 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10201 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)))))) {
10202 if (EQSI (FLD (f_ccond), 0)) {
10203 if (NESI (tmp_tmp, 0)) {
10205 USI opval = GET_H_SPR (((UINT) 272));
10206 sim_queue_pc_write (current_cpu, opval);
10207 written |= (1 << 6);
10208 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10212 if (EQSI (tmp_tmp, 0)) {
10214 USI opval = GET_H_SPR (((UINT) 272));
10215 sim_queue_pc_write (current_cpu, opval);
10216 written |= (1 << 6);
10217 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10225 abuf->written = written;
10230 /* bcltlr: bcltlr$pack $ICCi_2,$ccond,$hint */
10233 SEM_FN_NAME (frvbf,bcltlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10235 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10236 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10237 int UNUSED written = 0;
10238 IADDR UNUSED pc = abuf->addr;
10239 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10242 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10245 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10247 USI opval = tmp_tmp;
10248 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10249 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10251 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)))) {
10252 if (EQSI (FLD (f_ccond), 0)) {
10253 if (NESI (tmp_tmp, 0)) {
10255 USI opval = GET_H_SPR (((UINT) 272));
10256 sim_queue_pc_write (current_cpu, opval);
10257 written |= (1 << 6);
10258 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10262 if (EQSI (tmp_tmp, 0)) {
10264 USI opval = GET_H_SPR (((UINT) 272));
10265 sim_queue_pc_write (current_cpu, opval);
10266 written |= (1 << 6);
10267 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10275 abuf->written = written;
10280 /* bcgelr: bcgelr$pack $ICCi_2,$ccond,$hint */
10283 SEM_FN_NAME (frvbf,bcgelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10285 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10286 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10287 int UNUSED written = 0;
10288 IADDR UNUSED pc = abuf->addr;
10289 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10292 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10295 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10297 USI opval = tmp_tmp;
10298 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10299 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10301 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))))) {
10302 if (EQSI (FLD (f_ccond), 0)) {
10303 if (NESI (tmp_tmp, 0)) {
10305 USI opval = GET_H_SPR (((UINT) 272));
10306 sim_queue_pc_write (current_cpu, opval);
10307 written |= (1 << 6);
10308 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10312 if (EQSI (tmp_tmp, 0)) {
10314 USI opval = GET_H_SPR (((UINT) 272));
10315 sim_queue_pc_write (current_cpu, opval);
10316 written |= (1 << 6);
10317 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10325 abuf->written = written;
10330 /* bclslr: bclslr$pack $ICCi_2,$ccond,$hint */
10333 SEM_FN_NAME (frvbf,bclslr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10335 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10336 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10337 int UNUSED written = 0;
10338 IADDR UNUSED pc = abuf->addr;
10339 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10342 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10345 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10347 USI opval = tmp_tmp;
10348 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10349 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10351 if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
10352 if (EQSI (FLD (f_ccond), 0)) {
10353 if (NESI (tmp_tmp, 0)) {
10355 USI opval = GET_H_SPR (((UINT) 272));
10356 sim_queue_pc_write (current_cpu, opval);
10357 written |= (1 << 6);
10358 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10362 if (EQSI (tmp_tmp, 0)) {
10364 USI opval = GET_H_SPR (((UINT) 272));
10365 sim_queue_pc_write (current_cpu, opval);
10366 written |= (1 << 6);
10367 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10375 abuf->written = written;
10380 /* bchilr: bchilr$pack $ICCi_2,$ccond,$hint */
10383 SEM_FN_NAME (frvbf,bchilr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10385 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10386 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10387 int UNUSED written = 0;
10388 IADDR UNUSED pc = abuf->addr;
10389 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10392 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10395 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10397 USI opval = tmp_tmp;
10398 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10399 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10401 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))))) {
10402 if (EQSI (FLD (f_ccond), 0)) {
10403 if (NESI (tmp_tmp, 0)) {
10405 USI opval = GET_H_SPR (((UINT) 272));
10406 sim_queue_pc_write (current_cpu, opval);
10407 written |= (1 << 6);
10408 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10412 if (EQSI (tmp_tmp, 0)) {
10414 USI opval = GET_H_SPR (((UINT) 272));
10415 sim_queue_pc_write (current_cpu, opval);
10416 written |= (1 << 6);
10417 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10425 abuf->written = written;
10430 /* bcclr: bcclr$pack $ICCi_2,$ccond,$hint */
10433 SEM_FN_NAME (frvbf,bcclr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10435 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10436 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10437 int UNUSED written = 0;
10438 IADDR UNUSED pc = abuf->addr;
10439 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10442 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10445 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10447 USI opval = tmp_tmp;
10448 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10449 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10451 if (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1))) {
10452 if (EQSI (FLD (f_ccond), 0)) {
10453 if (NESI (tmp_tmp, 0)) {
10455 USI opval = GET_H_SPR (((UINT) 272));
10456 sim_queue_pc_write (current_cpu, opval);
10457 written |= (1 << 6);
10458 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10462 if (EQSI (tmp_tmp, 0)) {
10464 USI opval = GET_H_SPR (((UINT) 272));
10465 sim_queue_pc_write (current_cpu, opval);
10466 written |= (1 << 6);
10467 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10475 abuf->written = written;
10480 /* bcnclr: bcnclr$pack $ICCi_2,$ccond,$hint */
10483 SEM_FN_NAME (frvbf,bcnclr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10485 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10486 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10487 int UNUSED written = 0;
10488 IADDR UNUSED pc = abuf->addr;
10489 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10492 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10495 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10497 USI opval = tmp_tmp;
10498 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10499 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10501 if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)))) {
10502 if (EQSI (FLD (f_ccond), 0)) {
10503 if (NESI (tmp_tmp, 0)) {
10505 USI opval = GET_H_SPR (((UINT) 272));
10506 sim_queue_pc_write (current_cpu, opval);
10507 written |= (1 << 6);
10508 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10512 if (EQSI (tmp_tmp, 0)) {
10514 USI opval = GET_H_SPR (((UINT) 272));
10515 sim_queue_pc_write (current_cpu, opval);
10516 written |= (1 << 6);
10517 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10525 abuf->written = written;
10530 /* bcnlr: bcnlr$pack $ICCi_2,$ccond,$hint */
10533 SEM_FN_NAME (frvbf,bcnlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10535 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10536 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10537 int UNUSED written = 0;
10538 IADDR UNUSED pc = abuf->addr;
10539 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10542 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10545 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10547 USI opval = tmp_tmp;
10548 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10549 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10551 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3))) {
10552 if (EQSI (FLD (f_ccond), 0)) {
10553 if (NESI (tmp_tmp, 0)) {
10555 USI opval = GET_H_SPR (((UINT) 272));
10556 sim_queue_pc_write (current_cpu, opval);
10557 written |= (1 << 6);
10558 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10562 if (EQSI (tmp_tmp, 0)) {
10564 USI opval = GET_H_SPR (((UINT) 272));
10565 sim_queue_pc_write (current_cpu, opval);
10566 written |= (1 << 6);
10567 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10575 abuf->written = written;
10580 /* bcplr: bcplr$pack $ICCi_2,$ccond,$hint */
10583 SEM_FN_NAME (frvbf,bcplr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10585 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10586 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10587 int UNUSED written = 0;
10588 IADDR UNUSED pc = abuf->addr;
10589 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10592 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10595 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10597 USI opval = tmp_tmp;
10598 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10599 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10601 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3)))) {
10602 if (EQSI (FLD (f_ccond), 0)) {
10603 if (NESI (tmp_tmp, 0)) {
10605 USI opval = GET_H_SPR (((UINT) 272));
10606 sim_queue_pc_write (current_cpu, opval);
10607 written |= (1 << 6);
10608 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10612 if (EQSI (tmp_tmp, 0)) {
10614 USI opval = GET_H_SPR (((UINT) 272));
10615 sim_queue_pc_write (current_cpu, opval);
10616 written |= (1 << 6);
10617 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10625 abuf->written = written;
10630 /* bcvlr: bcvlr$pack $ICCi_2,$ccond,$hint */
10633 SEM_FN_NAME (frvbf,bcvlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10635 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10636 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10637 int UNUSED written = 0;
10638 IADDR UNUSED pc = abuf->addr;
10639 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10642 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10645 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10647 USI opval = tmp_tmp;
10648 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10649 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10651 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1))) {
10652 if (EQSI (FLD (f_ccond), 0)) {
10653 if (NESI (tmp_tmp, 0)) {
10655 USI opval = GET_H_SPR (((UINT) 272));
10656 sim_queue_pc_write (current_cpu, opval);
10657 written |= (1 << 6);
10658 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10662 if (EQSI (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);
10675 abuf->written = written;
10680 /* bcnvlr: bcnvlr$pack $ICCi_2,$ccond,$hint */
10683 SEM_FN_NAME (frvbf,bcnvlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10685 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10686 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10687 int UNUSED written = 0;
10688 IADDR UNUSED pc = abuf->addr;
10689 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10692 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10695 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10697 USI opval = tmp_tmp;
10698 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10699 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10701 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1)))) {
10702 if (EQSI (FLD (f_ccond), 0)) {
10703 if (NESI (tmp_tmp, 0)) {
10705 USI opval = GET_H_SPR (((UINT) 272));
10706 sim_queue_pc_write (current_cpu, opval);
10707 written |= (1 << 6);
10708 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10712 if (EQSI (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);
10725 abuf->written = written;
10730 /* fcbralr: fcbralr$pack $ccond$hint_taken */
10733 SEM_FN_NAME (frvbf,fcbralr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10735 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10736 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10737 int UNUSED written = 0;
10738 IADDR UNUSED pc = abuf->addr;
10739 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10742 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10745 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10747 USI opval = tmp_tmp;
10748 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10749 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10751 if (EQSI (FLD (f_ccond), 0)) {
10752 if (NESI (tmp_tmp, 0)) {
10754 USI opval = GET_H_SPR (((UINT) 272));
10755 sim_queue_pc_write (current_cpu, opval);
10756 written |= (1 << 5);
10757 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10761 if (EQSI (tmp_tmp, 0)) {
10763 USI opval = GET_H_SPR (((UINT) 272));
10764 sim_queue_pc_write (current_cpu, opval);
10765 written |= (1 << 5);
10766 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10773 abuf->written = written;
10778 /* fcbnolr: fcbnolr$pack$hint_not_taken */
10781 SEM_FN_NAME (frvbf,fcbnolr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10783 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10784 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10785 int UNUSED written = 0;
10786 IADDR UNUSED pc = abuf->addr;
10787 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10790 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10793 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10795 USI opval = tmp_tmp;
10796 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10797 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10799 ((void) 0); /*nop*/
10807 /* fcbeqlr: fcbeqlr$pack $FCCi_2,$ccond,$hint */
10810 SEM_FN_NAME (frvbf,fcbeqlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10812 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10813 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10814 int UNUSED written = 0;
10815 IADDR UNUSED pc = abuf->addr;
10816 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10819 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10822 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10824 USI opval = tmp_tmp;
10825 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10826 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10828 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3))) {
10829 if (EQSI (FLD (f_ccond), 0)) {
10830 if (NESI (tmp_tmp, 0)) {
10832 USI opval = GET_H_SPR (((UINT) 272));
10833 sim_queue_pc_write (current_cpu, opval);
10834 written |= (1 << 6);
10835 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10839 if (EQSI (tmp_tmp, 0)) {
10841 USI opval = GET_H_SPR (((UINT) 272));
10842 sim_queue_pc_write (current_cpu, opval);
10843 written |= (1 << 6);
10844 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10852 abuf->written = written;
10857 /* fcbnelr: fcbnelr$pack $FCCi_2,$ccond,$hint */
10860 SEM_FN_NAME (frvbf,fcbnelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10862 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10863 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10864 int UNUSED written = 0;
10865 IADDR UNUSED pc = abuf->addr;
10866 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10869 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10872 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10874 USI opval = tmp_tmp;
10875 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10876 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10878 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))))) {
10879 if (EQSI (FLD (f_ccond), 0)) {
10880 if (NESI (tmp_tmp, 0)) {
10882 USI opval = GET_H_SPR (((UINT) 272));
10883 sim_queue_pc_write (current_cpu, opval);
10884 written |= (1 << 6);
10885 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10889 if (EQSI (tmp_tmp, 0)) {
10891 USI opval = GET_H_SPR (((UINT) 272));
10892 sim_queue_pc_write (current_cpu, opval);
10893 written |= (1 << 6);
10894 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10902 abuf->written = written;
10907 /* fcblglr: fcblglr$pack $FCCi_2,$ccond,$hint */
10910 SEM_FN_NAME (frvbf,fcblglr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10912 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10913 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10914 int UNUSED written = 0;
10915 IADDR UNUSED pc = abuf->addr;
10916 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10919 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10922 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10924 USI opval = tmp_tmp;
10925 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10926 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10928 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)))) {
10929 if (EQSI (FLD (f_ccond), 0)) {
10930 if (NESI (tmp_tmp, 0)) {
10932 USI opval = GET_H_SPR (((UINT) 272));
10933 sim_queue_pc_write (current_cpu, opval);
10934 written |= (1 << 6);
10935 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10939 if (EQSI (tmp_tmp, 0)) {
10941 USI opval = GET_H_SPR (((UINT) 272));
10942 sim_queue_pc_write (current_cpu, opval);
10943 written |= (1 << 6);
10944 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10952 abuf->written = written;
10957 /* fcbuelr: fcbuelr$pack $FCCi_2,$ccond,$hint */
10960 SEM_FN_NAME (frvbf,fcbuelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10962 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10963 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10964 int UNUSED written = 0;
10965 IADDR UNUSED pc = abuf->addr;
10966 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10969 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10972 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10974 USI opval = tmp_tmp;
10975 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10976 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10978 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
10979 if (EQSI (FLD (f_ccond), 0)) {
10980 if (NESI (tmp_tmp, 0)) {
10982 USI opval = GET_H_SPR (((UINT) 272));
10983 sim_queue_pc_write (current_cpu, opval);
10984 written |= (1 << 6);
10985 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10989 if (EQSI (tmp_tmp, 0)) {
10991 USI opval = GET_H_SPR (((UINT) 272));
10992 sim_queue_pc_write (current_cpu, opval);
10993 written |= (1 << 6);
10994 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11002 abuf->written = written;
11007 /* fcbullr: fcbullr$pack $FCCi_2,$ccond,$hint */
11010 SEM_FN_NAME (frvbf,fcbullr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11012 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11013 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11014 int UNUSED written = 0;
11015 IADDR UNUSED pc = abuf->addr;
11016 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11019 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
11022 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
11024 USI opval = tmp_tmp;
11025 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
11026 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
11028 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
11029 if (EQSI (FLD (f_ccond), 0)) {
11030 if (NESI (tmp_tmp, 0)) {
11032 USI opval = GET_H_SPR (((UINT) 272));
11033 sim_queue_pc_write (current_cpu, opval);
11034 written |= (1 << 6);
11035 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11039 if (EQSI (tmp_tmp, 0)) {
11041 USI opval = GET_H_SPR (((UINT) 272));
11042 sim_queue_pc_write (current_cpu, opval);
11043 written |= (1 << 6);
11044 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11052 abuf->written = written;
11057 /* fcbgelr: fcbgelr$pack $FCCi_2,$ccond,$hint */
11060 SEM_FN_NAME (frvbf,fcbgelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11062 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11063 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11064 int UNUSED written = 0;
11065 IADDR UNUSED pc = abuf->addr;
11066 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11069 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
11072 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
11074 USI opval = tmp_tmp;
11075 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
11076 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
11078 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)))) {
11079 if (EQSI (FLD (f_ccond), 0)) {
11080 if (NESI (tmp_tmp, 0)) {
11082 USI opval = GET_H_SPR (((UINT) 272));
11083 sim_queue_pc_write (current_cpu, opval);
11084 written |= (1 << 6);
11085 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11089 if (EQSI (tmp_tmp, 0)) {
11091 USI opval = GET_H_SPR (((UINT) 272));
11092 sim_queue_pc_write (current_cpu, opval);
11093 written |= (1 << 6);
11094 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11102 abuf->written = written;
11107 /* fcbltlr: fcbltlr$pack $FCCi_2,$ccond,$hint */
11110 SEM_FN_NAME (frvbf,fcbltlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11112 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11113 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11114 int UNUSED written = 0;
11115 IADDR UNUSED pc = abuf->addr;
11116 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11119 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
11122 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
11124 USI opval = tmp_tmp;
11125 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
11126 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
11128 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2))) {
11129 if (EQSI (FLD (f_ccond), 0)) {
11130 if (NESI (tmp_tmp, 0)) {
11132 USI opval = GET_H_SPR (((UINT) 272));
11133 sim_queue_pc_write (current_cpu, opval);
11134 written |= (1 << 6);
11135 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11139 if (EQSI (tmp_tmp, 0)) {
11141 USI opval = GET_H_SPR (((UINT) 272));
11142 sim_queue_pc_write (current_cpu, opval);
11143 written |= (1 << 6);
11144 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11152 abuf->written = written;
11157 /* fcbugelr: fcbugelr$pack $FCCi_2,$ccond,$hint */
11160 SEM_FN_NAME (frvbf,fcbugelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11162 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11163 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11164 int UNUSED written = 0;
11165 IADDR UNUSED pc = abuf->addr;
11166 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11169 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
11172 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
11174 USI opval = tmp_tmp;
11175 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
11176 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
11178 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))))) {
11179 if (EQSI (FLD (f_ccond), 0)) {
11180 if (NESI (tmp_tmp, 0)) {
11182 USI opval = GET_H_SPR (((UINT) 272));
11183 sim_queue_pc_write (current_cpu, opval);
11184 written |= (1 << 6);
11185 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11189 if (EQSI (tmp_tmp, 0)) {
11191 USI opval = GET_H_SPR (((UINT) 272));
11192 sim_queue_pc_write (current_cpu, opval);
11193 written |= (1 << 6);
11194 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11202 abuf->written = written;
11207 /* fcbuglr: fcbuglr$pack $FCCi_2,$ccond,$hint */
11210 SEM_FN_NAME (frvbf,fcbuglr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11212 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11213 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11214 int UNUSED written = 0;
11215 IADDR UNUSED pc = abuf->addr;
11216 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11219 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
11222 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
11224 USI opval = tmp_tmp;
11225 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
11226 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
11228 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
11229 if (EQSI (FLD (f_ccond), 0)) {
11230 if (NESI (tmp_tmp, 0)) {
11232 USI opval = GET_H_SPR (((UINT) 272));
11233 sim_queue_pc_write (current_cpu, opval);
11234 written |= (1 << 6);
11235 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11239 if (EQSI (tmp_tmp, 0)) {
11241 USI opval = GET_H_SPR (((UINT) 272));
11242 sim_queue_pc_write (current_cpu, opval);
11243 written |= (1 << 6);
11244 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11252 abuf->written = written;
11257 /* fcblelr: fcblelr$pack $FCCi_2,$ccond,$hint */
11260 SEM_FN_NAME (frvbf,fcblelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11262 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11263 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11264 int UNUSED written = 0;
11265 IADDR UNUSED pc = abuf->addr;
11266 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11269 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
11272 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
11274 USI opval = tmp_tmp;
11275 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
11276 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
11278 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)))) {
11279 if (EQSI (FLD (f_ccond), 0)) {
11280 if (NESI (tmp_tmp, 0)) {
11282 USI opval = GET_H_SPR (((UINT) 272));
11283 sim_queue_pc_write (current_cpu, opval);
11284 written |= (1 << 6);
11285 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11289 if (EQSI (tmp_tmp, 0)) {
11291 USI opval = GET_H_SPR (((UINT) 272));
11292 sim_queue_pc_write (current_cpu, opval);
11293 written |= (1 << 6);
11294 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11302 abuf->written = written;
11307 /* fcbgtlr: fcbgtlr$pack $FCCi_2,$ccond,$hint */
11310 SEM_FN_NAME (frvbf,fcbgtlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11312 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11313 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11314 int UNUSED written = 0;
11315 IADDR UNUSED pc = abuf->addr;
11316 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11319 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
11322 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
11324 USI opval = tmp_tmp;
11325 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
11326 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
11328 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1))) {
11329 if (EQSI (FLD (f_ccond), 0)) {
11330 if (NESI (tmp_tmp, 0)) {
11332 USI opval = GET_H_SPR (((UINT) 272));
11333 sim_queue_pc_write (current_cpu, opval);
11334 written |= (1 << 6);
11335 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11339 if (EQSI (tmp_tmp, 0)) {
11341 USI opval = GET_H_SPR (((UINT) 272));
11342 sim_queue_pc_write (current_cpu, opval);
11343 written |= (1 << 6);
11344 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11352 abuf->written = written;
11357 /* fcbulelr: fcbulelr$pack $FCCi_2,$ccond,$hint */
11360 SEM_FN_NAME (frvbf,fcbulelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11362 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11363 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11364 int UNUSED written = 0;
11365 IADDR UNUSED pc = abuf->addr;
11366 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11369 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
11372 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
11374 USI opval = tmp_tmp;
11375 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
11376 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
11378 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))))) {
11379 if (EQSI (FLD (f_ccond), 0)) {
11380 if (NESI (tmp_tmp, 0)) {
11382 USI opval = GET_H_SPR (((UINT) 272));
11383 sim_queue_pc_write (current_cpu, opval);
11384 written |= (1 << 6);
11385 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11389 if (EQSI (tmp_tmp, 0)) {
11391 USI opval = GET_H_SPR (((UINT) 272));
11392 sim_queue_pc_write (current_cpu, opval);
11393 written |= (1 << 6);
11394 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11402 abuf->written = written;
11407 /* fcbulr: fcbulr$pack $FCCi_2,$ccond,$hint */
11410 SEM_FN_NAME (frvbf,fcbulr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11412 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11413 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11414 int UNUSED written = 0;
11415 IADDR UNUSED pc = abuf->addr;
11416 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11419 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
11422 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
11424 USI opval = tmp_tmp;
11425 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
11426 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
11428 if (TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1))) {
11429 if (EQSI (FLD (f_ccond), 0)) {
11430 if (NESI (tmp_tmp, 0)) {
11432 USI opval = GET_H_SPR (((UINT) 272));
11433 sim_queue_pc_write (current_cpu, opval);
11434 written |= (1 << 6);
11435 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11439 if (EQSI (tmp_tmp, 0)) {
11441 USI opval = GET_H_SPR (((UINT) 272));
11442 sim_queue_pc_write (current_cpu, opval);
11443 written |= (1 << 6);
11444 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11452 abuf->written = written;
11457 /* fcbolr: fcbolr$pack $FCCi_2,$ccond,$hint */
11460 SEM_FN_NAME (frvbf,fcbolr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11462 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11463 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11464 int UNUSED written = 0;
11465 IADDR UNUSED pc = abuf->addr;
11466 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11469 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
11472 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
11474 USI opval = tmp_tmp;
11475 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
11476 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
11478 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))))) {
11479 if (EQSI (FLD (f_ccond), 0)) {
11480 if (NESI (tmp_tmp, 0)) {
11482 USI opval = GET_H_SPR (((UINT) 272));
11483 sim_queue_pc_write (current_cpu, opval);
11484 written |= (1 << 6);
11485 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11489 if (EQSI (tmp_tmp, 0)) {
11491 USI opval = GET_H_SPR (((UINT) 272));
11492 sim_queue_pc_write (current_cpu, opval);
11493 written |= (1 << 6);
11494 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11502 abuf->written = written;
11507 /* jmpl: jmpl$pack @($GRi,$GRj) */
11510 SEM_FN_NAME (frvbf,jmpl) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11512 #define FLD(f) abuf->fields.sfmt_cjmpl.f
11513 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11514 int UNUSED written = 0;
11515 IADDR UNUSED pc = abuf->addr;
11516 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11519 if (EQSI (FLD (f_LI), 1)) {
11520 frvbf_set_write_next_vliw_addr_to_LR (current_cpu, 1);
11523 USI opval = ANDSI (ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), 0xfffffffc);
11524 sim_queue_pc_write (current_cpu, opval);
11525 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11527 frvbf_model_branch (current_cpu, pc, 2);
11534 /* calll: calll$pack @($GRi,$GRj) */
11537 SEM_FN_NAME (frvbf,calll) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11539 #define FLD(f) abuf->fields.sfmt_cjmpl.f
11540 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11541 int UNUSED written = 0;
11542 IADDR UNUSED pc = abuf->addr;
11543 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11546 if (EQSI (FLD (f_LI), 1)) {
11547 frvbf_set_write_next_vliw_addr_to_LR (current_cpu, 1);
11550 USI opval = ANDSI (ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), 0xfffffffc);
11551 sim_queue_pc_write (current_cpu, opval);
11552 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11554 frvbf_model_branch (current_cpu, pc, 2);
11561 /* jmpil: jmpil$pack @($GRi,$s12) */
11564 SEM_FN_NAME (frvbf,jmpil) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11566 #define FLD(f) abuf->fields.sfmt_jmpil.f
11567 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11568 int UNUSED written = 0;
11569 IADDR UNUSED pc = abuf->addr;
11570 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11573 if (EQSI (FLD (f_LI), 1)) {
11574 frvbf_set_write_next_vliw_addr_to_LR (current_cpu, 1);
11577 USI opval = ANDSI (ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), 0xfffffffc);
11578 sim_queue_pc_write (current_cpu, opval);
11579 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11581 frvbf_model_branch (current_cpu, pc, 2);
11588 /* callil: callil$pack @($GRi,$s12) */
11591 SEM_FN_NAME (frvbf,callil) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11593 #define FLD(f) abuf->fields.sfmt_jmpil.f
11594 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11595 int UNUSED written = 0;
11596 IADDR UNUSED pc = abuf->addr;
11597 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11600 if (EQSI (FLD (f_LI), 1)) {
11601 frvbf_set_write_next_vliw_addr_to_LR (current_cpu, 1);
11604 USI opval = ANDSI (ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), 0xfffffffc);
11605 sim_queue_pc_write (current_cpu, opval);
11606 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11608 frvbf_model_branch (current_cpu, pc, 2);
11615 /* call: call$pack $label24 */
11618 SEM_FN_NAME (frvbf,call) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11620 #define FLD(f) abuf->fields.sfmt_call.f
11621 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11622 int UNUSED written = 0;
11623 IADDR UNUSED pc = abuf->addr;
11624 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11627 frvbf_set_write_next_vliw_addr_to_LR (current_cpu, 1);
11629 USI opval = FLD (i_label24);
11630 sim_queue_pc_write (current_cpu, opval);
11631 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11633 frvbf_model_branch (current_cpu, pc, 2);
11640 /* rett: rett$pack $debug */
11643 SEM_FN_NAME (frvbf,rett) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11645 #define FLD(f) abuf->fields.sfmt_rett.f
11646 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11647 int UNUSED written = 0;
11648 IADDR UNUSED pc = abuf->addr;
11649 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11653 USI opval = frv_rett (current_cpu, pc, FLD (f_debug));
11654 sim_queue_pc_write (current_cpu, opval);
11655 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11657 frvbf_model_branch (current_cpu, pc, 2);
11664 /* rei: rei$pack $eir */
11667 SEM_FN_NAME (frvbf,rei) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11669 #define FLD(f) abuf->fields.fmt_empty.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 ((void) 0); /*nop*/
11681 /* tra: tra$pack $GRi,$GRj */
11684 SEM_FN_NAME (frvbf,tra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11686 #define FLD(f) abuf->fields.sfmt_ftne.f
11687 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11688 int UNUSED written = 0;
11689 IADDR UNUSED pc = abuf->addr;
11690 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11697 if (NEBI (CPU (h_psr_esr), 0)) {
11705 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11708 abuf->written = written;
11713 /* tno: tno$pack */
11716 SEM_FN_NAME (frvbf,tno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11718 #define FLD(f) abuf->fields.fmt_empty.f
11719 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11720 int UNUSED written = 0;
11721 IADDR UNUSED pc = abuf->addr;
11722 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11724 ((void) 0); /*nop*/
11730 /* teq: teq$pack $ICCi_2,$GRi,$GRj */
11733 SEM_FN_NAME (frvbf,teq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11735 #define FLD(f) abuf->fields.sfmt_teq.f
11736 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11737 int UNUSED written = 0;
11738 IADDR UNUSED pc = abuf->addr;
11739 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11741 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2))) {
11747 if (NEBI (CPU (h_psr_esr), 0)) {
11755 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11759 abuf->written = written;
11764 /* tne: tne$pack $ICCi_2,$GRi,$GRj */
11767 SEM_FN_NAME (frvbf,tne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11769 #define FLD(f) abuf->fields.sfmt_teq.f
11770 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11771 int UNUSED written = 0;
11772 IADDR UNUSED pc = abuf->addr;
11773 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11775 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
11781 if (NEBI (CPU (h_psr_esr), 0)) {
11789 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11793 abuf->written = written;
11798 /* tle: tle$pack $ICCi_2,$GRi,$GRj */
11801 SEM_FN_NAME (frvbf,tle) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11803 #define FLD(f) abuf->fields.sfmt_teq.f
11804 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11805 int UNUSED written = 0;
11806 IADDR UNUSED pc = abuf->addr;
11807 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11809 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))))) {
11815 if (NEBI (CPU (h_psr_esr), 0)) {
11823 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11827 abuf->written = written;
11832 /* tgt: tgt$pack $ICCi_2,$GRi,$GRj */
11835 SEM_FN_NAME (frvbf,tgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11837 #define FLD(f) abuf->fields.sfmt_teq.f
11838 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11839 int UNUSED written = 0;
11840 IADDR UNUSED pc = abuf->addr;
11841 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11843 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)))))) {
11849 if (NEBI (CPU (h_psr_esr), 0)) {
11857 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11861 abuf->written = written;
11866 /* tlt: tlt$pack $ICCi_2,$GRi,$GRj */
11869 SEM_FN_NAME (frvbf,tlt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11871 #define FLD(f) abuf->fields.sfmt_teq.f
11872 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11873 int UNUSED written = 0;
11874 IADDR UNUSED pc = abuf->addr;
11875 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11877 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)))) {
11883 if (NEBI (CPU (h_psr_esr), 0)) {
11891 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11895 abuf->written = written;
11900 /* tge: tge$pack $ICCi_2,$GRi,$GRj */
11903 SEM_FN_NAME (frvbf,tge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11905 #define FLD(f) abuf->fields.sfmt_teq.f
11906 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11907 int UNUSED written = 0;
11908 IADDR UNUSED pc = abuf->addr;
11909 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11911 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))))) {
11917 if (NEBI (CPU (h_psr_esr), 0)) {
11925 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11929 abuf->written = written;
11934 /* tls: tls$pack $ICCi_2,$GRi,$GRj */
11937 SEM_FN_NAME (frvbf,tls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11939 #define FLD(f) abuf->fields.sfmt_teq.f
11940 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11941 int UNUSED written = 0;
11942 IADDR UNUSED pc = abuf->addr;
11943 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11945 if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
11951 if (NEBI (CPU (h_psr_esr), 0)) {
11959 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11963 abuf->written = written;
11968 /* thi: thi$pack $ICCi_2,$GRi,$GRj */
11971 SEM_FN_NAME (frvbf,thi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11973 #define FLD(f) abuf->fields.sfmt_teq.f
11974 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11975 int UNUSED written = 0;
11976 IADDR UNUSED pc = abuf->addr;
11977 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11979 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))))) {
11985 if (NEBI (CPU (h_psr_esr), 0)) {
11993 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11997 abuf->written = written;
12002 /* tc: tc$pack $ICCi_2,$GRi,$GRj */
12005 SEM_FN_NAME (frvbf,tc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12007 #define FLD(f) abuf->fields.sfmt_teq.f
12008 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12009 int UNUSED written = 0;
12010 IADDR UNUSED pc = abuf->addr;
12011 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12013 if (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1))) {
12019 if (NEBI (CPU (h_psr_esr), 0)) {
12027 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12031 abuf->written = written;
12036 /* tnc: tnc$pack $ICCi_2,$GRi,$GRj */
12039 SEM_FN_NAME (frvbf,tnc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12041 #define FLD(f) abuf->fields.sfmt_teq.f
12042 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12043 int UNUSED written = 0;
12044 IADDR UNUSED pc = abuf->addr;
12045 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12047 if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)))) {
12053 if (NEBI (CPU (h_psr_esr), 0)) {
12061 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12065 abuf->written = written;
12070 /* tn: tn$pack $ICCi_2,$GRi,$GRj */
12073 SEM_FN_NAME (frvbf,tn) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12075 #define FLD(f) abuf->fields.sfmt_teq.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 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3))) {
12087 if (NEBI (CPU (h_psr_esr), 0)) {
12095 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12099 abuf->written = written;
12104 /* tp: tp$pack $ICCi_2,$GRi,$GRj */
12107 SEM_FN_NAME (frvbf,tp) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12109 #define FLD(f) abuf->fields.sfmt_teq.f
12110 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12111 int UNUSED written = 0;
12112 IADDR UNUSED pc = abuf->addr;
12113 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12115 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3)))) {
12121 if (NEBI (CPU (h_psr_esr), 0)) {
12129 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12133 abuf->written = written;
12138 /* tv: tv$pack $ICCi_2,$GRi,$GRj */
12141 SEM_FN_NAME (frvbf,tv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12143 #define FLD(f) abuf->fields.sfmt_teq.f
12144 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12145 int UNUSED written = 0;
12146 IADDR UNUSED pc = abuf->addr;
12147 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12149 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1))) {
12155 if (NEBI (CPU (h_psr_esr), 0)) {
12163 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12167 abuf->written = written;
12172 /* tnv: tnv$pack $ICCi_2,$GRi,$GRj */
12175 SEM_FN_NAME (frvbf,tnv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12177 #define FLD(f) abuf->fields.sfmt_teq.f
12178 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12179 int UNUSED written = 0;
12180 IADDR UNUSED pc = abuf->addr;
12181 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12183 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1)))) {
12189 if (NEBI (CPU (h_psr_esr), 0)) {
12197 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12201 abuf->written = written;
12206 /* ftra: ftra$pack $GRi,$GRj */
12209 SEM_FN_NAME (frvbf,ftra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12211 #define FLD(f) abuf->fields.sfmt_ftne.f
12212 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12213 int UNUSED written = 0;
12214 IADDR UNUSED pc = abuf->addr;
12215 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12222 if (NEBI (CPU (h_psr_esr), 0)) {
12230 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12233 abuf->written = written;
12238 /* ftno: ftno$pack */
12241 SEM_FN_NAME (frvbf,ftno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12243 #define FLD(f) abuf->fields.fmt_empty.f
12244 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12245 int UNUSED written = 0;
12246 IADDR UNUSED pc = abuf->addr;
12247 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12249 ((void) 0); /*nop*/
12255 /* ftne: ftne$pack $FCCi_2,$GRi,$GRj */
12258 SEM_FN_NAME (frvbf,ftne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12260 #define FLD(f) abuf->fields.sfmt_ftne.f
12261 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12262 int UNUSED written = 0;
12263 IADDR UNUSED pc = abuf->addr;
12264 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12266 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))))) {
12272 if (NEBI (CPU (h_psr_esr), 0)) {
12280 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12284 abuf->written = written;
12289 /* fteq: fteq$pack $FCCi_2,$GRi,$GRj */
12292 SEM_FN_NAME (frvbf,fteq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12294 #define FLD(f) abuf->fields.sfmt_ftne.f
12295 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12296 int UNUSED written = 0;
12297 IADDR UNUSED pc = abuf->addr;
12298 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12300 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3))) {
12306 if (NEBI (CPU (h_psr_esr), 0)) {
12314 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12318 abuf->written = written;
12323 /* ftlg: ftlg$pack $FCCi_2,$GRi,$GRj */
12326 SEM_FN_NAME (frvbf,ftlg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12328 #define FLD(f) abuf->fields.sfmt_ftne.f
12329 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12330 int UNUSED written = 0;
12331 IADDR UNUSED pc = abuf->addr;
12332 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12334 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)))) {
12340 if (NEBI (CPU (h_psr_esr), 0)) {
12348 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12352 abuf->written = written;
12357 /* ftue: ftue$pack $FCCi_2,$GRi,$GRj */
12360 SEM_FN_NAME (frvbf,ftue) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12362 #define FLD(f) abuf->fields.sfmt_ftne.f
12363 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12364 int UNUSED written = 0;
12365 IADDR UNUSED pc = abuf->addr;
12366 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12368 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
12374 if (NEBI (CPU (h_psr_esr), 0)) {
12382 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12386 abuf->written = written;
12391 /* ftul: ftul$pack $FCCi_2,$GRi,$GRj */
12394 SEM_FN_NAME (frvbf,ftul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12396 #define FLD(f) abuf->fields.sfmt_ftne.f
12397 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12398 int UNUSED written = 0;
12399 IADDR UNUSED pc = abuf->addr;
12400 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12402 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
12408 if (NEBI (CPU (h_psr_esr), 0)) {
12416 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12420 abuf->written = written;
12425 /* ftge: ftge$pack $FCCi_2,$GRi,$GRj */
12428 SEM_FN_NAME (frvbf,ftge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12430 #define FLD(f) abuf->fields.sfmt_ftne.f
12431 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12432 int UNUSED written = 0;
12433 IADDR UNUSED pc = abuf->addr;
12434 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12436 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)))) {
12442 if (NEBI (CPU (h_psr_esr), 0)) {
12450 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12454 abuf->written = written;
12459 /* ftlt: ftlt$pack $FCCi_2,$GRi,$GRj */
12462 SEM_FN_NAME (frvbf,ftlt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12464 #define FLD(f) abuf->fields.sfmt_ftne.f
12465 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12466 int UNUSED written = 0;
12467 IADDR UNUSED pc = abuf->addr;
12468 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12470 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2))) {
12476 if (NEBI (CPU (h_psr_esr), 0)) {
12484 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12488 abuf->written = written;
12493 /* ftuge: ftuge$pack $FCCi_2,$GRi,$GRj */
12496 SEM_FN_NAME (frvbf,ftuge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12498 #define FLD(f) abuf->fields.sfmt_ftne.f
12499 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12500 int UNUSED written = 0;
12501 IADDR UNUSED pc = abuf->addr;
12502 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12504 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))))) {
12510 if (NEBI (CPU (h_psr_esr), 0)) {
12518 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12522 abuf->written = written;
12527 /* ftug: ftug$pack $FCCi_2,$GRi,$GRj */
12530 SEM_FN_NAME (frvbf,ftug) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12532 #define FLD(f) abuf->fields.sfmt_ftne.f
12533 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12534 int UNUSED written = 0;
12535 IADDR UNUSED pc = abuf->addr;
12536 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12538 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
12544 if (NEBI (CPU (h_psr_esr), 0)) {
12552 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12556 abuf->written = written;
12561 /* ftle: ftle$pack $FCCi_2,$GRi,$GRj */
12564 SEM_FN_NAME (frvbf,ftle) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12566 #define FLD(f) abuf->fields.sfmt_ftne.f
12567 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12568 int UNUSED written = 0;
12569 IADDR UNUSED pc = abuf->addr;
12570 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12572 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)))) {
12578 if (NEBI (CPU (h_psr_esr), 0)) {
12586 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12590 abuf->written = written;
12595 /* ftgt: ftgt$pack $FCCi_2,$GRi,$GRj */
12598 SEM_FN_NAME (frvbf,ftgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12600 #define FLD(f) abuf->fields.sfmt_ftne.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 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1))) {
12612 if (NEBI (CPU (h_psr_esr), 0)) {
12620 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12624 abuf->written = written;
12629 /* ftule: ftule$pack $FCCi_2,$GRi,$GRj */
12632 SEM_FN_NAME (frvbf,ftule) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12634 #define FLD(f) abuf->fields.sfmt_ftne.f
12635 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12636 int UNUSED written = 0;
12637 IADDR UNUSED pc = abuf->addr;
12638 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12640 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))))) {
12646 if (NEBI (CPU (h_psr_esr), 0)) {
12654 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12658 abuf->written = written;
12663 /* ftu: ftu$pack $FCCi_2,$GRi,$GRj */
12666 SEM_FN_NAME (frvbf,ftu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12668 #define FLD(f) abuf->fields.sfmt_ftne.f
12669 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12670 int UNUSED written = 0;
12671 IADDR UNUSED pc = abuf->addr;
12672 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12674 if (TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1))) {
12680 if (NEBI (CPU (h_psr_esr), 0)) {
12688 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12692 abuf->written = written;
12697 /* fto: fto$pack $FCCi_2,$GRi,$GRj */
12700 SEM_FN_NAME (frvbf,fto) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12702 #define FLD(f) abuf->fields.sfmt_ftne.f
12703 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12704 int UNUSED written = 0;
12705 IADDR UNUSED pc = abuf->addr;
12706 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12708 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))))) {
12714 if (NEBI (CPU (h_psr_esr), 0)) {
12722 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12726 abuf->written = written;
12731 /* tira: tira$pack $GRi,$s12 */
12734 SEM_FN_NAME (frvbf,tira) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12736 #define FLD(f) abuf->fields.sfmt_ftine.f
12737 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12738 int UNUSED written = 0;
12739 IADDR UNUSED pc = abuf->addr;
12740 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12747 if (NEBI (CPU (h_psr_esr), 0)) {
12755 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12758 abuf->written = written;
12763 /* tino: tino$pack */
12766 SEM_FN_NAME (frvbf,tino) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12768 #define FLD(f) abuf->fields.fmt_empty.f
12769 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12770 int UNUSED written = 0;
12771 IADDR UNUSED pc = abuf->addr;
12772 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12774 ((void) 0); /*nop*/
12780 /* tieq: tieq$pack $ICCi_2,$GRi,$s12 */
12783 SEM_FN_NAME (frvbf,tieq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12785 #define FLD(f) abuf->fields.sfmt_tieq.f
12786 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12787 int UNUSED written = 0;
12788 IADDR UNUSED pc = abuf->addr;
12789 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12791 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2))) {
12797 if (NEBI (CPU (h_psr_esr), 0)) {
12805 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12809 abuf->written = written;
12814 /* tine: tine$pack $ICCi_2,$GRi,$s12 */
12817 SEM_FN_NAME (frvbf,tine) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12819 #define FLD(f) abuf->fields.sfmt_tieq.f
12820 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12821 int UNUSED written = 0;
12822 IADDR UNUSED pc = abuf->addr;
12823 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12825 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
12831 if (NEBI (CPU (h_psr_esr), 0)) {
12839 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12843 abuf->written = written;
12848 /* tile: tile$pack $ICCi_2,$GRi,$s12 */
12851 SEM_FN_NAME (frvbf,tile) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12853 #define FLD(f) abuf->fields.sfmt_tieq.f
12854 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12855 int UNUSED written = 0;
12856 IADDR UNUSED pc = abuf->addr;
12857 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12859 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))))) {
12865 if (NEBI (CPU (h_psr_esr), 0)) {
12873 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12877 abuf->written = written;
12882 /* tigt: tigt$pack $ICCi_2,$GRi,$s12 */
12885 SEM_FN_NAME (frvbf,tigt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12887 #define FLD(f) abuf->fields.sfmt_tieq.f
12888 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12889 int UNUSED written = 0;
12890 IADDR UNUSED pc = abuf->addr;
12891 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12893 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)))))) {
12899 if (NEBI (CPU (h_psr_esr), 0)) {
12907 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12911 abuf->written = written;
12916 /* tilt: tilt$pack $ICCi_2,$GRi,$s12 */
12919 SEM_FN_NAME (frvbf,tilt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12921 #define FLD(f) abuf->fields.sfmt_tieq.f
12922 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12923 int UNUSED written = 0;
12924 IADDR UNUSED pc = abuf->addr;
12925 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12927 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)))) {
12933 if (NEBI (CPU (h_psr_esr), 0)) {
12941 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12945 abuf->written = written;
12950 /* tige: tige$pack $ICCi_2,$GRi,$s12 */
12953 SEM_FN_NAME (frvbf,tige) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12955 #define FLD(f) abuf->fields.sfmt_tieq.f
12956 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12957 int UNUSED written = 0;
12958 IADDR UNUSED pc = abuf->addr;
12959 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12961 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))))) {
12967 if (NEBI (CPU (h_psr_esr), 0)) {
12975 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12979 abuf->written = written;
12984 /* tils: tils$pack $ICCi_2,$GRi,$s12 */
12987 SEM_FN_NAME (frvbf,tils) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12989 #define FLD(f) abuf->fields.sfmt_tieq.f
12990 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12991 int UNUSED written = 0;
12992 IADDR UNUSED pc = abuf->addr;
12993 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12995 if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
13001 if (NEBI (CPU (h_psr_esr), 0)) {
13009 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13013 abuf->written = written;
13018 /* tihi: tihi$pack $ICCi_2,$GRi,$s12 */
13021 SEM_FN_NAME (frvbf,tihi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13023 #define FLD(f) abuf->fields.sfmt_tieq.f
13024 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13025 int UNUSED written = 0;
13026 IADDR UNUSED pc = abuf->addr;
13027 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13029 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))))) {
13035 if (NEBI (CPU (h_psr_esr), 0)) {
13043 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13047 abuf->written = written;
13052 /* tic: tic$pack $ICCi_2,$GRi,$s12 */
13055 SEM_FN_NAME (frvbf,tic) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13057 #define FLD(f) abuf->fields.sfmt_tieq.f
13058 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13059 int UNUSED written = 0;
13060 IADDR UNUSED pc = abuf->addr;
13061 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13063 if (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1))) {
13069 if (NEBI (CPU (h_psr_esr), 0)) {
13077 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13081 abuf->written = written;
13086 /* tinc: tinc$pack $ICCi_2,$GRi,$s12 */
13089 SEM_FN_NAME (frvbf,tinc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13091 #define FLD(f) abuf->fields.sfmt_tieq.f
13092 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13093 int UNUSED written = 0;
13094 IADDR UNUSED pc = abuf->addr;
13095 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13097 if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)))) {
13103 if (NEBI (CPU (h_psr_esr), 0)) {
13111 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13115 abuf->written = written;
13120 /* tin: tin$pack $ICCi_2,$GRi,$s12 */
13123 SEM_FN_NAME (frvbf,tin) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13125 #define FLD(f) abuf->fields.sfmt_tieq.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 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3))) {
13137 if (NEBI (CPU (h_psr_esr), 0)) {
13145 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13149 abuf->written = written;
13154 /* tip: tip$pack $ICCi_2,$GRi,$s12 */
13157 SEM_FN_NAME (frvbf,tip) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13159 #define FLD(f) abuf->fields.sfmt_tieq.f
13160 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13161 int UNUSED written = 0;
13162 IADDR UNUSED pc = abuf->addr;
13163 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13165 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3)))) {
13171 if (NEBI (CPU (h_psr_esr), 0)) {
13179 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13183 abuf->written = written;
13188 /* tiv: tiv$pack $ICCi_2,$GRi,$s12 */
13191 SEM_FN_NAME (frvbf,tiv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13193 #define FLD(f) abuf->fields.sfmt_tieq.f
13194 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13195 int UNUSED written = 0;
13196 IADDR UNUSED pc = abuf->addr;
13197 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13199 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1))) {
13205 if (NEBI (CPU (h_psr_esr), 0)) {
13213 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13217 abuf->written = written;
13222 /* tinv: tinv$pack $ICCi_2,$GRi,$s12 */
13225 SEM_FN_NAME (frvbf,tinv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13227 #define FLD(f) abuf->fields.sfmt_tieq.f
13228 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13229 int UNUSED written = 0;
13230 IADDR UNUSED pc = abuf->addr;
13231 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13233 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1)))) {
13239 if (NEBI (CPU (h_psr_esr), 0)) {
13247 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13251 abuf->written = written;
13256 /* ftira: ftira$pack $GRi,$s12 */
13259 SEM_FN_NAME (frvbf,ftira) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13261 #define FLD(f) abuf->fields.sfmt_ftine.f
13262 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13263 int UNUSED written = 0;
13264 IADDR UNUSED pc = abuf->addr;
13265 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13272 if (NEBI (CPU (h_psr_esr), 0)) {
13280 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13283 abuf->written = written;
13288 /* ftino: ftino$pack */
13291 SEM_FN_NAME (frvbf,ftino) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13293 #define FLD(f) abuf->fields.fmt_empty.f
13294 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13295 int UNUSED written = 0;
13296 IADDR UNUSED pc = abuf->addr;
13297 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13299 ((void) 0); /*nop*/
13305 /* ftine: ftine$pack $FCCi_2,$GRi,$s12 */
13308 SEM_FN_NAME (frvbf,ftine) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13310 #define FLD(f) abuf->fields.sfmt_ftine.f
13311 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13312 int UNUSED written = 0;
13313 IADDR UNUSED pc = abuf->addr;
13314 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13316 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))))) {
13322 if (NEBI (CPU (h_psr_esr), 0)) {
13330 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13334 abuf->written = written;
13339 /* ftieq: ftieq$pack $FCCi_2,$GRi,$s12 */
13342 SEM_FN_NAME (frvbf,ftieq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13344 #define FLD(f) abuf->fields.sfmt_ftine.f
13345 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13346 int UNUSED written = 0;
13347 IADDR UNUSED pc = abuf->addr;
13348 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13350 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3))) {
13356 if (NEBI (CPU (h_psr_esr), 0)) {
13364 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13368 abuf->written = written;
13373 /* ftilg: ftilg$pack $FCCi_2,$GRi,$s12 */
13376 SEM_FN_NAME (frvbf,ftilg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13378 #define FLD(f) abuf->fields.sfmt_ftine.f
13379 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13380 int UNUSED written = 0;
13381 IADDR UNUSED pc = abuf->addr;
13382 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13384 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)))) {
13390 if (NEBI (CPU (h_psr_esr), 0)) {
13398 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13402 abuf->written = written;
13407 /* ftiue: ftiue$pack $FCCi_2,$GRi,$s12 */
13410 SEM_FN_NAME (frvbf,ftiue) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13412 #define FLD(f) abuf->fields.sfmt_ftine.f
13413 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13414 int UNUSED written = 0;
13415 IADDR UNUSED pc = abuf->addr;
13416 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13418 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
13424 if (NEBI (CPU (h_psr_esr), 0)) {
13432 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13436 abuf->written = written;
13441 /* ftiul: ftiul$pack $FCCi_2,$GRi,$s12 */
13444 SEM_FN_NAME (frvbf,ftiul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13446 #define FLD(f) abuf->fields.sfmt_ftine.f
13447 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13448 int UNUSED written = 0;
13449 IADDR UNUSED pc = abuf->addr;
13450 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13452 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
13458 if (NEBI (CPU (h_psr_esr), 0)) {
13466 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13470 abuf->written = written;
13475 /* ftige: ftige$pack $FCCi_2,$GRi,$s12 */
13478 SEM_FN_NAME (frvbf,ftige) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13480 #define FLD(f) abuf->fields.sfmt_ftine.f
13481 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13482 int UNUSED written = 0;
13483 IADDR UNUSED pc = abuf->addr;
13484 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13486 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)))) {
13492 if (NEBI (CPU (h_psr_esr), 0)) {
13500 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13504 abuf->written = written;
13509 /* ftilt: ftilt$pack $FCCi_2,$GRi,$s12 */
13512 SEM_FN_NAME (frvbf,ftilt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13514 #define FLD(f) abuf->fields.sfmt_ftine.f
13515 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13516 int UNUSED written = 0;
13517 IADDR UNUSED pc = abuf->addr;
13518 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13520 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2))) {
13526 if (NEBI (CPU (h_psr_esr), 0)) {
13534 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13538 abuf->written = written;
13543 /* ftiuge: ftiuge$pack $FCCi_2,$GRi,$s12 */
13546 SEM_FN_NAME (frvbf,ftiuge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13548 #define FLD(f) abuf->fields.sfmt_ftine.f
13549 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13550 int UNUSED written = 0;
13551 IADDR UNUSED pc = abuf->addr;
13552 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13554 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))))) {
13560 if (NEBI (CPU (h_psr_esr), 0)) {
13568 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13572 abuf->written = written;
13577 /* ftiug: ftiug$pack $FCCi_2,$GRi,$s12 */
13580 SEM_FN_NAME (frvbf,ftiug) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13582 #define FLD(f) abuf->fields.sfmt_ftine.f
13583 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13584 int UNUSED written = 0;
13585 IADDR UNUSED pc = abuf->addr;
13586 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13588 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
13594 if (NEBI (CPU (h_psr_esr), 0)) {
13602 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13606 abuf->written = written;
13611 /* ftile: ftile$pack $FCCi_2,$GRi,$s12 */
13614 SEM_FN_NAME (frvbf,ftile) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13616 #define FLD(f) abuf->fields.sfmt_ftine.f
13617 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13618 int UNUSED written = 0;
13619 IADDR UNUSED pc = abuf->addr;
13620 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13622 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)))) {
13628 if (NEBI (CPU (h_psr_esr), 0)) {
13636 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13640 abuf->written = written;
13645 /* ftigt: ftigt$pack $FCCi_2,$GRi,$s12 */
13648 SEM_FN_NAME (frvbf,ftigt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13650 #define FLD(f) abuf->fields.sfmt_ftine.f
13651 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13652 int UNUSED written = 0;
13653 IADDR UNUSED pc = abuf->addr;
13654 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13656 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1))) {
13662 if (NEBI (CPU (h_psr_esr), 0)) {
13670 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13674 abuf->written = written;
13679 /* ftiule: ftiule$pack $FCCi_2,$GRi,$s12 */
13682 SEM_FN_NAME (frvbf,ftiule) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13684 #define FLD(f) abuf->fields.sfmt_ftine.f
13685 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13686 int UNUSED written = 0;
13687 IADDR UNUSED pc = abuf->addr;
13688 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13690 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))))) {
13696 if (NEBI (CPU (h_psr_esr), 0)) {
13704 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13708 abuf->written = written;
13713 /* ftiu: ftiu$pack $FCCi_2,$GRi,$s12 */
13716 SEM_FN_NAME (frvbf,ftiu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13718 #define FLD(f) abuf->fields.sfmt_ftine.f
13719 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13720 int UNUSED written = 0;
13721 IADDR UNUSED pc = abuf->addr;
13722 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13724 if (TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1))) {
13730 if (NEBI (CPU (h_psr_esr), 0)) {
13738 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13742 abuf->written = written;
13747 /* ftio: ftio$pack $FCCi_2,$GRi,$s12 */
13750 SEM_FN_NAME (frvbf,ftio) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13752 #define FLD(f) abuf->fields.sfmt_ftine.f
13753 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13754 int UNUSED written = 0;
13755 IADDR UNUSED pc = abuf->addr;
13756 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13758 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))))) {
13764 if (NEBI (CPU (h_psr_esr), 0)) {
13772 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13776 abuf->written = written;
13781 /* break: break$pack */
13784 SEM_FN_NAME (frvbf,break) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13786 #define FLD(f) abuf->fields.sfmt_break.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);
13799 frv_break (current_cpu);
13806 /* mtrap: mtrap$pack */
13809 SEM_FN_NAME (frvbf,mtrap) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13811 #define FLD(f) abuf->fields.fmt_empty.f
13812 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13813 int UNUSED written = 0;
13814 IADDR UNUSED pc = abuf->addr;
13815 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13817 frv_mtrap (current_cpu);
13823 /* andcr: andcr$pack $CRi,$CRj,$CRk */
13826 SEM_FN_NAME (frvbf,andcr) (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, 0, 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 /* orcr: orcr$pack $CRi,$CRj,$CRk */
13847 SEM_FN_NAME (frvbf,orcr) (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 = frvbf_cr_logic (current_cpu, 1, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13857 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13858 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13865 /* xorcr: xorcr$pack $CRi,$CRj,$CRk */
13868 SEM_FN_NAME (frvbf,xorcr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13870 #define FLD(f) abuf->fields.sfmt_andcr.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);
13877 UQI opval = frvbf_cr_logic (current_cpu, 2, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13878 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13879 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13886 /* nandcr: nandcr$pack $CRi,$CRj,$CRk */
13889 SEM_FN_NAME (frvbf,nandcr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13891 #define FLD(f) abuf->fields.sfmt_andcr.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);
13898 UQI opval = frvbf_cr_logic (current_cpu, 3, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13899 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13900 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13907 /* norcr: norcr$pack $CRi,$CRj,$CRk */
13910 SEM_FN_NAME (frvbf,norcr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13912 #define FLD(f) abuf->fields.sfmt_andcr.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);
13919 UQI opval = frvbf_cr_logic (current_cpu, 4, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13920 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13921 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13928 /* andncr: andncr$pack $CRi,$CRj,$CRk */
13931 SEM_FN_NAME (frvbf,andncr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13933 #define FLD(f) abuf->fields.sfmt_andcr.f
13934 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13935 int UNUSED written = 0;
13936 IADDR UNUSED pc = abuf->addr;
13937 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13940 UQI opval = frvbf_cr_logic (current_cpu, 5, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13941 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13942 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13949 /* orncr: orncr$pack $CRi,$CRj,$CRk */
13952 SEM_FN_NAME (frvbf,orncr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13954 #define FLD(f) abuf->fields.sfmt_andcr.f
13955 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13956 int UNUSED written = 0;
13957 IADDR UNUSED pc = abuf->addr;
13958 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13961 UQI opval = frvbf_cr_logic (current_cpu, 6, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13962 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13963 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13970 /* nandncr: nandncr$pack $CRi,$CRj,$CRk */
13973 SEM_FN_NAME (frvbf,nandncr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13975 #define FLD(f) abuf->fields.sfmt_andcr.f
13976 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13977 int UNUSED written = 0;
13978 IADDR UNUSED pc = abuf->addr;
13979 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13982 UQI opval = frvbf_cr_logic (current_cpu, 7, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13983 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13984 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13991 /* norncr: norncr$pack $CRi,$CRj,$CRk */
13994 SEM_FN_NAME (frvbf,norncr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13996 #define FLD(f) abuf->fields.sfmt_andcr.f
13997 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13998 int UNUSED written = 0;
13999 IADDR UNUSED pc = abuf->addr;
14000 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14003 UQI opval = frvbf_cr_logic (current_cpu, 8, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
14004 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
14005 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14012 /* notcr: notcr$pack $CRj,$CRk */
14015 SEM_FN_NAME (frvbf,notcr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14017 #define FLD(f) abuf->fields.sfmt_andcr.f
14018 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14019 int UNUSED written = 0;
14020 IADDR UNUSED pc = abuf->addr;
14021 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14024 UQI opval = XORQI (CPU (h_cccr[FLD (f_CRj)]), 1);
14025 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
14026 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14033 /* ckra: ckra$pack $CRj_int */
14036 SEM_FN_NAME (frvbf,ckra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14038 #define FLD(f) abuf->fields.sfmt_cckeq.f
14039 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14040 int UNUSED written = 0;
14041 IADDR UNUSED pc = abuf->addr;
14042 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14046 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14047 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14054 /* ckno: ckno$pack $CRj_int */
14057 SEM_FN_NAME (frvbf,ckno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14059 #define FLD(f) abuf->fields.sfmt_cckeq.f
14060 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14061 int UNUSED written = 0;
14062 IADDR UNUSED pc = abuf->addr;
14063 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14067 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14068 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14075 /* ckeq: ckeq$pack $ICCi_3,$CRj_int */
14078 SEM_FN_NAME (frvbf,ckeq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14080 #define FLD(f) abuf->fields.sfmt_cckeq.f
14081 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14082 int UNUSED written = 0;
14083 IADDR UNUSED pc = abuf->addr;
14084 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14086 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 4), 2))) {
14089 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14090 written |= (1 << 1);
14091 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14096 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14097 written |= (1 << 1);
14098 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14102 abuf->written = written;
14107 /* ckne: ckne$pack $ICCi_3,$CRj_int */
14110 SEM_FN_NAME (frvbf,ckne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14112 #define FLD(f) abuf->fields.sfmt_cckeq.f
14113 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14114 int UNUSED written = 0;
14115 IADDR UNUSED pc = abuf->addr;
14116 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14118 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 4), 2)))) {
14121 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14122 written |= (1 << 1);
14123 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14128 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14129 written |= (1 << 1);
14130 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14134 abuf->written = written;
14139 /* ckle: ckle$pack $ICCi_3,$CRj_int */
14142 SEM_FN_NAME (frvbf,ckle) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14144 #define FLD(f) abuf->fields.sfmt_cckeq.f
14145 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14146 int UNUSED written = 0;
14147 IADDR UNUSED pc = abuf->addr;
14148 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14150 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))))) {
14153 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14154 written |= (1 << 1);
14155 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14160 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14161 written |= (1 << 1);
14162 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14166 abuf->written = written;
14171 /* ckgt: ckgt$pack $ICCi_3,$CRj_int */
14174 SEM_FN_NAME (frvbf,ckgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14176 #define FLD(f) abuf->fields.sfmt_cckeq.f
14177 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14178 int UNUSED written = 0;
14179 IADDR UNUSED pc = abuf->addr;
14180 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14182 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)))))) {
14185 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14186 written |= (1 << 1);
14187 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14192 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14193 written |= (1 << 1);
14194 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14198 abuf->written = written;
14203 /* cklt: cklt$pack $ICCi_3,$CRj_int */
14206 SEM_FN_NAME (frvbf,cklt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14208 #define FLD(f) abuf->fields.sfmt_cckeq.f
14209 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14210 int UNUSED written = 0;
14211 IADDR UNUSED pc = abuf->addr;
14212 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14214 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)))) {
14217 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14218 written |= (1 << 1);
14219 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14224 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14225 written |= (1 << 1);
14226 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14230 abuf->written = written;
14235 /* ckge: ckge$pack $ICCi_3,$CRj_int */
14238 SEM_FN_NAME (frvbf,ckge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14240 #define FLD(f) abuf->fields.sfmt_cckeq.f
14241 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14242 int UNUSED written = 0;
14243 IADDR UNUSED pc = abuf->addr;
14244 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14246 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))))) {
14249 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14250 written |= (1 << 1);
14251 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14256 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14257 written |= (1 << 1);
14258 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14262 abuf->written = written;
14267 /* ckls: ckls$pack $ICCi_3,$CRj_int */
14270 SEM_FN_NAME (frvbf,ckls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14272 #define FLD(f) abuf->fields.sfmt_cckeq.f
14273 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14274 int UNUSED written = 0;
14275 IADDR UNUSED pc = abuf->addr;
14276 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14278 if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 4), 2)))) {
14281 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14282 written |= (1 << 1);
14283 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14288 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14289 written |= (1 << 1);
14290 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14294 abuf->written = written;
14299 /* ckhi: ckhi$pack $ICCi_3,$CRj_int */
14302 SEM_FN_NAME (frvbf,ckhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14304 #define FLD(f) abuf->fields.sfmt_cckeq.f
14305 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14306 int UNUSED written = 0;
14307 IADDR UNUSED pc = abuf->addr;
14308 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14310 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))))) {
14313 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14314 written |= (1 << 1);
14315 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14320 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14321 written |= (1 << 1);
14322 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14326 abuf->written = written;
14331 /* ckc: ckc$pack $ICCi_3,$CRj_int */
14334 SEM_FN_NAME (frvbf,ckc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14336 #define FLD(f) abuf->fields.sfmt_cckeq.f
14337 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14338 int UNUSED written = 0;
14339 IADDR UNUSED pc = abuf->addr;
14340 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14342 if (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 1))) {
14345 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14346 written |= (1 << 1);
14347 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14352 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14353 written |= (1 << 1);
14354 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14358 abuf->written = written;
14363 /* cknc: cknc$pack $ICCi_3,$CRj_int */
14366 SEM_FN_NAME (frvbf,cknc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14368 #define FLD(f) abuf->fields.sfmt_cckeq.f
14369 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14370 int UNUSED written = 0;
14371 IADDR UNUSED pc = abuf->addr;
14372 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14374 if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 1)))) {
14377 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14378 written |= (1 << 1);
14379 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14384 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14385 written |= (1 << 1);
14386 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14390 abuf->written = written;
14395 /* ckn: ckn$pack $ICCi_3,$CRj_int */
14398 SEM_FN_NAME (frvbf,ckn) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14400 #define FLD(f) abuf->fields.sfmt_cckeq.f
14401 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14402 int UNUSED written = 0;
14403 IADDR UNUSED pc = abuf->addr;
14404 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14406 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 8), 3))) {
14409 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14410 written |= (1 << 1);
14411 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14416 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14417 written |= (1 << 1);
14418 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14422 abuf->written = written;
14427 /* ckp: ckp$pack $ICCi_3,$CRj_int */
14430 SEM_FN_NAME (frvbf,ckp) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14432 #define FLD(f) abuf->fields.sfmt_cckeq.f
14433 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14434 int UNUSED written = 0;
14435 IADDR UNUSED pc = abuf->addr;
14436 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14438 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 8), 3)))) {
14441 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14442 written |= (1 << 1);
14443 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14448 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14449 written |= (1 << 1);
14450 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14454 abuf->written = written;
14459 /* ckv: ckv$pack $ICCi_3,$CRj_int */
14462 SEM_FN_NAME (frvbf,ckv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14464 #define FLD(f) abuf->fields.sfmt_cckeq.f
14465 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14466 int UNUSED written = 0;
14467 IADDR UNUSED pc = abuf->addr;
14468 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14470 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 2), 1))) {
14473 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14474 written |= (1 << 1);
14475 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14480 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14481 written |= (1 << 1);
14482 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14486 abuf->written = written;
14491 /* cknv: cknv$pack $ICCi_3,$CRj_int */
14494 SEM_FN_NAME (frvbf,cknv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14496 #define FLD(f) abuf->fields.sfmt_cckeq.f
14497 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14498 int UNUSED written = 0;
14499 IADDR UNUSED pc = abuf->addr;
14500 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14502 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 2), 1)))) {
14505 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14506 written |= (1 << 1);
14507 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14512 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14513 written |= (1 << 1);
14514 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14518 abuf->written = written;
14523 /* fckra: fckra$pack $CRj_float */
14526 SEM_FN_NAME (frvbf,fckra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14528 #define FLD(f) abuf->fields.sfmt_cfckne.f
14529 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14530 int UNUSED written = 0;
14531 IADDR UNUSED pc = abuf->addr;
14532 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14536 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14537 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14544 /* fckno: fckno$pack $CRj_float */
14547 SEM_FN_NAME (frvbf,fckno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14549 #define FLD(f) abuf->fields.sfmt_cfckne.f
14550 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14551 int UNUSED written = 0;
14552 IADDR UNUSED pc = abuf->addr;
14553 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14557 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14558 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14565 /* fckne: fckne$pack $FCCi_3,$CRj_float */
14568 SEM_FN_NAME (frvbf,fckne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14570 #define FLD(f) abuf->fields.sfmt_cfckne.f
14571 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14572 int UNUSED written = 0;
14573 IADDR UNUSED pc = abuf->addr;
14574 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14576 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))))) {
14579 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14580 written |= (1 << 1);
14581 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14586 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14587 written |= (1 << 1);
14588 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14592 abuf->written = written;
14597 /* fckeq: fckeq$pack $FCCi_3,$CRj_float */
14600 SEM_FN_NAME (frvbf,fckeq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14602 #define FLD(f) abuf->fields.sfmt_cfckne.f
14603 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14604 int UNUSED written = 0;
14605 IADDR UNUSED pc = abuf->addr;
14606 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14608 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 8), 3))) {
14611 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14612 written |= (1 << 1);
14613 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14618 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14619 written |= (1 << 1);
14620 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14624 abuf->written = written;
14629 /* fcklg: fcklg$pack $FCCi_3,$CRj_float */
14632 SEM_FN_NAME (frvbf,fcklg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14634 #define FLD(f) abuf->fields.sfmt_cfckne.f
14635 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14636 int UNUSED written = 0;
14637 IADDR UNUSED pc = abuf->addr;
14638 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14640 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)))) {
14643 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14644 written |= (1 << 1);
14645 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14650 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14651 written |= (1 << 1);
14652 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14656 abuf->written = written;
14661 /* fckue: fckue$pack $FCCi_3,$CRj_float */
14664 SEM_FN_NAME (frvbf,fckue) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14666 #define FLD(f) abuf->fields.sfmt_cfckne.f
14667 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14668 int UNUSED written = 0;
14669 IADDR UNUSED pc = abuf->addr;
14670 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14672 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1)))) {
14675 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14676 written |= (1 << 1);
14677 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14682 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14683 written |= (1 << 1);
14684 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14688 abuf->written = written;
14693 /* fckul: fckul$pack $FCCi_3,$CRj_float */
14696 SEM_FN_NAME (frvbf,fckul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14698 #define FLD(f) abuf->fields.sfmt_cfckne.f
14699 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14700 int UNUSED written = 0;
14701 IADDR UNUSED pc = abuf->addr;
14702 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14704 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1)))) {
14707 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14708 written |= (1 << 1);
14709 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14714 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14715 written |= (1 << 1);
14716 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14720 abuf->written = written;
14725 /* fckge: fckge$pack $FCCi_3,$CRj_float */
14728 SEM_FN_NAME (frvbf,fckge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14730 #define FLD(f) abuf->fields.sfmt_cfckne.f
14731 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14732 int UNUSED written = 0;
14733 IADDR UNUSED pc = abuf->addr;
14734 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14736 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)))) {
14739 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14740 written |= (1 << 1);
14741 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14746 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14747 written |= (1 << 1);
14748 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14752 abuf->written = written;
14757 /* fcklt: fcklt$pack $FCCi_3,$CRj_float */
14760 SEM_FN_NAME (frvbf,fcklt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14762 #define FLD(f) abuf->fields.sfmt_cfckne.f
14763 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14764 int UNUSED written = 0;
14765 IADDR UNUSED pc = abuf->addr;
14766 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14768 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 4), 2))) {
14771 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14772 written |= (1 << 1);
14773 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14778 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14779 written |= (1 << 1);
14780 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14784 abuf->written = written;
14789 /* fckuge: fckuge$pack $FCCi_3,$CRj_float */
14792 SEM_FN_NAME (frvbf,fckuge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14794 #define FLD(f) abuf->fields.sfmt_cfckne.f
14795 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14796 int UNUSED written = 0;
14797 IADDR UNUSED pc = abuf->addr;
14798 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14800 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))))) {
14803 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14804 written |= (1 << 1);
14805 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14810 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14811 written |= (1 << 1);
14812 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14816 abuf->written = written;
14821 /* fckug: fckug$pack $FCCi_3,$CRj_float */
14824 SEM_FN_NAME (frvbf,fckug) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14826 #define FLD(f) abuf->fields.sfmt_cfckne.f
14827 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14828 int UNUSED written = 0;
14829 IADDR UNUSED pc = abuf->addr;
14830 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14832 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1)))) {
14835 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14836 written |= (1 << 1);
14837 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14842 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14843 written |= (1 << 1);
14844 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14848 abuf->written = written;
14853 /* fckle: fckle$pack $FCCi_3,$CRj_float */
14856 SEM_FN_NAME (frvbf,fckle) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14858 #define FLD(f) abuf->fields.sfmt_cfckne.f
14859 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14860 int UNUSED written = 0;
14861 IADDR UNUSED pc = abuf->addr;
14862 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14864 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)))) {
14867 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14868 written |= (1 << 1);
14869 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14874 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14875 written |= (1 << 1);
14876 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14880 abuf->written = written;
14885 /* fckgt: fckgt$pack $FCCi_3,$CRj_float */
14888 SEM_FN_NAME (frvbf,fckgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14890 #define FLD(f) abuf->fields.sfmt_cfckne.f
14891 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14892 int UNUSED written = 0;
14893 IADDR UNUSED pc = abuf->addr;
14894 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14896 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 2), 1))) {
14899 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14900 written |= (1 << 1);
14901 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14906 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14907 written |= (1 << 1);
14908 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14912 abuf->written = written;
14917 /* fckule: fckule$pack $FCCi_3,$CRj_float */
14920 SEM_FN_NAME (frvbf,fckule) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14922 #define FLD(f) abuf->fields.sfmt_cfckne.f
14923 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14924 int UNUSED written = 0;
14925 IADDR UNUSED pc = abuf->addr;
14926 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14928 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))))) {
14931 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14932 written |= (1 << 1);
14933 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14938 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14939 written |= (1 << 1);
14940 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14944 abuf->written = written;
14949 /* fcku: fcku$pack $FCCi_3,$CRj_float */
14952 SEM_FN_NAME (frvbf,fcku) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14954 #define FLD(f) abuf->fields.sfmt_cfckne.f
14955 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14956 int UNUSED written = 0;
14957 IADDR UNUSED pc = abuf->addr;
14958 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14960 if (TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1))) {
14963 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14964 written |= (1 << 1);
14965 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14970 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14971 written |= (1 << 1);
14972 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14976 abuf->written = written;
14981 /* fcko: fcko$pack $FCCi_3,$CRj_float */
14984 SEM_FN_NAME (frvbf,fcko) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14986 #define FLD(f) abuf->fields.sfmt_cfckne.f
14987 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14988 int UNUSED written = 0;
14989 IADDR UNUSED pc = abuf->addr;
14990 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14992 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))))) {
14995 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14996 written |= (1 << 1);
14997 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15002 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15003 written |= (1 << 1);
15004 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15008 abuf->written = written;
15013 /* cckra: cckra$pack $CRj_int,$CCi,$cond */
15016 SEM_FN_NAME (frvbf,cckra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15018 #define FLD(f) abuf->fields.sfmt_cckeq.f
15019 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15020 int UNUSED written = 0;
15021 IADDR UNUSED pc = abuf->addr;
15022 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15024 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15027 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15028 written |= (1 << 2);
15029 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15034 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15035 written |= (1 << 2);
15036 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15040 abuf->written = written;
15045 /* cckno: cckno$pack $CRj_int,$CCi,$cond */
15048 SEM_FN_NAME (frvbf,cckno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15050 #define FLD(f) abuf->fields.sfmt_cckeq.f
15051 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15052 int UNUSED written = 0;
15053 IADDR UNUSED pc = abuf->addr;
15054 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15056 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15059 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15060 written |= (1 << 2);
15061 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15066 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15067 written |= (1 << 2);
15068 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15072 abuf->written = written;
15077 /* cckeq: cckeq$pack $ICCi_3,$CRj_int,$CCi,$cond */
15080 SEM_FN_NAME (frvbf,cckeq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15082 #define FLD(f) abuf->fields.sfmt_cckeq.f
15083 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15084 int UNUSED written = 0;
15085 IADDR UNUSED pc = abuf->addr;
15086 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15088 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15089 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 4), 2))) {
15092 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15093 written |= (1 << 3);
15094 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15099 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15100 written |= (1 << 3);
15101 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15107 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15108 written |= (1 << 3);
15109 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15113 abuf->written = written;
15118 /* cckne: cckne$pack $ICCi_3,$CRj_int,$CCi,$cond */
15121 SEM_FN_NAME (frvbf,cckne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15123 #define FLD(f) abuf->fields.sfmt_cckeq.f
15124 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15125 int UNUSED written = 0;
15126 IADDR UNUSED pc = abuf->addr;
15127 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15129 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15130 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 4), 2)))) {
15133 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15134 written |= (1 << 3);
15135 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15140 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15141 written |= (1 << 3);
15142 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15148 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15149 written |= (1 << 3);
15150 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15154 abuf->written = written;
15159 /* cckle: cckle$pack $ICCi_3,$CRj_int,$CCi,$cond */
15162 SEM_FN_NAME (frvbf,cckle) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15164 #define FLD(f) abuf->fields.sfmt_cckeq.f
15165 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15166 int UNUSED written = 0;
15167 IADDR UNUSED pc = abuf->addr;
15168 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15170 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15171 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))))) {
15174 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15175 written |= (1 << 3);
15176 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15181 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15182 written |= (1 << 3);
15183 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15189 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15190 written |= (1 << 3);
15191 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15195 abuf->written = written;
15200 /* cckgt: cckgt$pack $ICCi_3,$CRj_int,$CCi,$cond */
15203 SEM_FN_NAME (frvbf,cckgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15205 #define FLD(f) abuf->fields.sfmt_cckeq.f
15206 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15207 int UNUSED written = 0;
15208 IADDR UNUSED pc = abuf->addr;
15209 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15211 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15212 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)))))) {
15215 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15216 written |= (1 << 3);
15217 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15222 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15223 written |= (1 << 3);
15224 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15230 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15231 written |= (1 << 3);
15232 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15236 abuf->written = written;
15241 /* ccklt: ccklt$pack $ICCi_3,$CRj_int,$CCi,$cond */
15244 SEM_FN_NAME (frvbf,ccklt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15246 #define FLD(f) abuf->fields.sfmt_cckeq.f
15247 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15248 int UNUSED written = 0;
15249 IADDR UNUSED pc = abuf->addr;
15250 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15252 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15253 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)))) {
15256 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15257 written |= (1 << 3);
15258 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15263 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15264 written |= (1 << 3);
15265 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15271 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15272 written |= (1 << 3);
15273 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15277 abuf->written = written;
15282 /* cckge: cckge$pack $ICCi_3,$CRj_int,$CCi,$cond */
15285 SEM_FN_NAME (frvbf,cckge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15287 #define FLD(f) abuf->fields.sfmt_cckeq.f
15288 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15289 int UNUSED written = 0;
15290 IADDR UNUSED pc = abuf->addr;
15291 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15293 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15294 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))))) {
15297 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15298 written |= (1 << 3);
15299 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15304 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15305 written |= (1 << 3);
15306 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15312 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15313 written |= (1 << 3);
15314 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15318 abuf->written = written;
15323 /* cckls: cckls$pack $ICCi_3,$CRj_int,$CCi,$cond */
15326 SEM_FN_NAME (frvbf,cckls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15328 #define FLD(f) abuf->fields.sfmt_cckeq.f
15329 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15330 int UNUSED written = 0;
15331 IADDR UNUSED pc = abuf->addr;
15332 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15334 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15335 if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 4), 2)))) {
15338 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15339 written |= (1 << 3);
15340 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15345 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15346 written |= (1 << 3);
15347 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15353 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15354 written |= (1 << 3);
15355 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15359 abuf->written = written;
15364 /* cckhi: cckhi$pack $ICCi_3,$CRj_int,$CCi,$cond */
15367 SEM_FN_NAME (frvbf,cckhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15369 #define FLD(f) abuf->fields.sfmt_cckeq.f
15370 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15371 int UNUSED written = 0;
15372 IADDR UNUSED pc = abuf->addr;
15373 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15375 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15376 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))))) {
15379 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15380 written |= (1 << 3);
15381 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15386 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15387 written |= (1 << 3);
15388 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15394 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15395 written |= (1 << 3);
15396 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15400 abuf->written = written;
15405 /* cckc: cckc$pack $ICCi_3,$CRj_int,$CCi,$cond */
15408 SEM_FN_NAME (frvbf,cckc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15410 #define FLD(f) abuf->fields.sfmt_cckeq.f
15411 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15412 int UNUSED written = 0;
15413 IADDR UNUSED pc = abuf->addr;
15414 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15416 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15417 if (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 1))) {
15420 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15421 written |= (1 << 3);
15422 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15427 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15428 written |= (1 << 3);
15429 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15435 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15436 written |= (1 << 3);
15437 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15441 abuf->written = written;
15446 /* ccknc: ccknc$pack $ICCi_3,$CRj_int,$CCi,$cond */
15449 SEM_FN_NAME (frvbf,ccknc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15451 #define FLD(f) abuf->fields.sfmt_cckeq.f
15452 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15453 int UNUSED written = 0;
15454 IADDR UNUSED pc = abuf->addr;
15455 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15457 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15458 if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 1)))) {
15461 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15462 written |= (1 << 3);
15463 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15468 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15469 written |= (1 << 3);
15470 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15476 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15477 written |= (1 << 3);
15478 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15482 abuf->written = written;
15487 /* cckn: cckn$pack $ICCi_3,$CRj_int,$CCi,$cond */
15490 SEM_FN_NAME (frvbf,cckn) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15492 #define FLD(f) abuf->fields.sfmt_cckeq.f
15493 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15494 int UNUSED written = 0;
15495 IADDR UNUSED pc = abuf->addr;
15496 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15498 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15499 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 8), 3))) {
15502 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15503 written |= (1 << 3);
15504 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15509 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15510 written |= (1 << 3);
15511 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15517 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15518 written |= (1 << 3);
15519 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15523 abuf->written = written;
15528 /* cckp: cckp$pack $ICCi_3,$CRj_int,$CCi,$cond */
15531 SEM_FN_NAME (frvbf,cckp) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15533 #define FLD(f) abuf->fields.sfmt_cckeq.f
15534 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15535 int UNUSED written = 0;
15536 IADDR UNUSED pc = abuf->addr;
15537 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15539 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15540 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 8), 3)))) {
15543 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15544 written |= (1 << 3);
15545 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15550 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15551 written |= (1 << 3);
15552 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15558 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15559 written |= (1 << 3);
15560 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15564 abuf->written = written;
15569 /* cckv: cckv$pack $ICCi_3,$CRj_int,$CCi,$cond */
15572 SEM_FN_NAME (frvbf,cckv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15574 #define FLD(f) abuf->fields.sfmt_cckeq.f
15575 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15576 int UNUSED written = 0;
15577 IADDR UNUSED pc = abuf->addr;
15578 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15580 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15581 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 2), 1))) {
15584 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15585 written |= (1 << 3);
15586 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15591 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15592 written |= (1 << 3);
15593 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15599 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15600 written |= (1 << 3);
15601 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15605 abuf->written = written;
15610 /* ccknv: ccknv$pack $ICCi_3,$CRj_int,$CCi,$cond */
15613 SEM_FN_NAME (frvbf,ccknv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15615 #define FLD(f) abuf->fields.sfmt_cckeq.f
15616 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15617 int UNUSED written = 0;
15618 IADDR UNUSED pc = abuf->addr;
15619 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15621 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15622 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 2), 1)))) {
15625 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15626 written |= (1 << 3);
15627 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15632 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15633 written |= (1 << 3);
15634 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15640 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15641 written |= (1 << 3);
15642 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15646 abuf->written = written;
15651 /* cfckra: cfckra$pack $CRj_float,$CCi,$cond */
15654 SEM_FN_NAME (frvbf,cfckra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15656 #define FLD(f) abuf->fields.sfmt_cfckne.f
15657 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15658 int UNUSED written = 0;
15659 IADDR UNUSED pc = abuf->addr;
15660 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15662 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15665 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15666 written |= (1 << 2);
15667 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15672 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15673 written |= (1 << 2);
15674 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15678 abuf->written = written;
15683 /* cfckno: cfckno$pack $CRj_float,$CCi,$cond */
15686 SEM_FN_NAME (frvbf,cfckno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15688 #define FLD(f) abuf->fields.sfmt_cfckne.f
15689 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15690 int UNUSED written = 0;
15691 IADDR UNUSED pc = abuf->addr;
15692 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15694 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15697 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15698 written |= (1 << 2);
15699 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15704 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15705 written |= (1 << 2);
15706 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15710 abuf->written = written;
15715 /* cfckne: cfckne$pack $FCCi_3,$CRj_float,$CCi,$cond */
15718 SEM_FN_NAME (frvbf,cfckne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15720 #define FLD(f) abuf->fields.sfmt_cfckne.f
15721 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15722 int UNUSED written = 0;
15723 IADDR UNUSED pc = abuf->addr;
15724 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15726 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15727 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))))) {
15730 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15731 written |= (1 << 3);
15732 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15737 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15738 written |= (1 << 3);
15739 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15745 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15746 written |= (1 << 3);
15747 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15751 abuf->written = written;
15756 /* cfckeq: cfckeq$pack $FCCi_3,$CRj_float,$CCi,$cond */
15759 SEM_FN_NAME (frvbf,cfckeq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15761 #define FLD(f) abuf->fields.sfmt_cfckne.f
15762 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15763 int UNUSED written = 0;
15764 IADDR UNUSED pc = abuf->addr;
15765 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15767 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15768 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 8), 3))) {
15771 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15772 written |= (1 << 3);
15773 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15778 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15779 written |= (1 << 3);
15780 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15786 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15787 written |= (1 << 3);
15788 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15792 abuf->written = written;
15797 /* cfcklg: cfcklg$pack $FCCi_3,$CRj_float,$CCi,$cond */
15800 SEM_FN_NAME (frvbf,cfcklg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15802 #define FLD(f) abuf->fields.sfmt_cfckne.f
15803 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15804 int UNUSED written = 0;
15805 IADDR UNUSED pc = abuf->addr;
15806 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15808 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15809 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)))) {
15812 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15813 written |= (1 << 3);
15814 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15819 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15820 written |= (1 << 3);
15821 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15827 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15828 written |= (1 << 3);
15829 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15833 abuf->written = written;
15838 /* cfckue: cfckue$pack $FCCi_3,$CRj_float,$CCi,$cond */
15841 SEM_FN_NAME (frvbf,cfckue) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15843 #define FLD(f) abuf->fields.sfmt_cfckne.f
15844 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15845 int UNUSED written = 0;
15846 IADDR UNUSED pc = abuf->addr;
15847 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15849 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15850 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1)))) {
15853 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15854 written |= (1 << 3);
15855 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15860 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15861 written |= (1 << 3);
15862 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15868 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15869 written |= (1 << 3);
15870 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15874 abuf->written = written;
15879 /* cfckul: cfckul$pack $FCCi_3,$CRj_float,$CCi,$cond */
15882 SEM_FN_NAME (frvbf,cfckul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15884 #define FLD(f) abuf->fields.sfmt_cfckne.f
15885 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15886 int UNUSED written = 0;
15887 IADDR UNUSED pc = abuf->addr;
15888 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15890 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15891 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1)))) {
15894 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15895 written |= (1 << 3);
15896 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15901 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15902 written |= (1 << 3);
15903 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15909 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15910 written |= (1 << 3);
15911 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15915 abuf->written = written;
15920 /* cfckge: cfckge$pack $FCCi_3,$CRj_float,$CCi,$cond */
15923 SEM_FN_NAME (frvbf,cfckge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15925 #define FLD(f) abuf->fields.sfmt_cfckne.f
15926 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15927 int UNUSED written = 0;
15928 IADDR UNUSED pc = abuf->addr;
15929 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15931 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15932 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)))) {
15935 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15936 written |= (1 << 3);
15937 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15942 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15943 written |= (1 << 3);
15944 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15950 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15951 written |= (1 << 3);
15952 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15956 abuf->written = written;
15961 /* cfcklt: cfcklt$pack $FCCi_3,$CRj_float,$CCi,$cond */
15964 SEM_FN_NAME (frvbf,cfcklt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15966 #define FLD(f) abuf->fields.sfmt_cfckne.f
15967 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15968 int UNUSED written = 0;
15969 IADDR UNUSED pc = abuf->addr;
15970 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15972 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15973 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 4), 2))) {
15976 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15977 written |= (1 << 3);
15978 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15983 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15984 written |= (1 << 3);
15985 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15991 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15992 written |= (1 << 3);
15993 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15997 abuf->written = written;
16002 /* cfckuge: cfckuge$pack $FCCi_3,$CRj_float,$CCi,$cond */
16005 SEM_FN_NAME (frvbf,cfckuge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16007 #define FLD(f) abuf->fields.sfmt_cfckne.f
16008 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16009 int UNUSED written = 0;
16010 IADDR UNUSED pc = abuf->addr;
16011 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16013 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
16014 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))))) {
16017 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16018 written |= (1 << 3);
16019 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16024 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16025 written |= (1 << 3);
16026 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16032 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16033 written |= (1 << 3);
16034 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16038 abuf->written = written;
16043 /* cfckug: cfckug$pack $FCCi_3,$CRj_float,$CCi,$cond */
16046 SEM_FN_NAME (frvbf,cfckug) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16048 #define FLD(f) abuf->fields.sfmt_cfckne.f
16049 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16050 int UNUSED written = 0;
16051 IADDR UNUSED pc = abuf->addr;
16052 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16054 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
16055 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1)))) {
16058 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16059 written |= (1 << 3);
16060 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16065 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16066 written |= (1 << 3);
16067 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16073 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16074 written |= (1 << 3);
16075 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16079 abuf->written = written;
16084 /* cfckle: cfckle$pack $FCCi_3,$CRj_float,$CCi,$cond */
16087 SEM_FN_NAME (frvbf,cfckle) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16089 #define FLD(f) abuf->fields.sfmt_cfckne.f
16090 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16091 int UNUSED written = 0;
16092 IADDR UNUSED pc = abuf->addr;
16093 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16095 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
16096 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)))) {
16099 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16100 written |= (1 << 3);
16101 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16106 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16107 written |= (1 << 3);
16108 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16114 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16115 written |= (1 << 3);
16116 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16120 abuf->written = written;
16125 /* cfckgt: cfckgt$pack $FCCi_3,$CRj_float,$CCi,$cond */
16128 SEM_FN_NAME (frvbf,cfckgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16130 #define FLD(f) abuf->fields.sfmt_cfckne.f
16131 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16132 int UNUSED written = 0;
16133 IADDR UNUSED pc = abuf->addr;
16134 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16136 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
16137 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 2), 1))) {
16140 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16141 written |= (1 << 3);
16142 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16147 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16148 written |= (1 << 3);
16149 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16155 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16156 written |= (1 << 3);
16157 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16161 abuf->written = written;
16166 /* cfckule: cfckule$pack $FCCi_3,$CRj_float,$CCi,$cond */
16169 SEM_FN_NAME (frvbf,cfckule) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16171 #define FLD(f) abuf->fields.sfmt_cfckne.f
16172 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16173 int UNUSED written = 0;
16174 IADDR UNUSED pc = abuf->addr;
16175 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16177 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
16178 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))))) {
16181 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16182 written |= (1 << 3);
16183 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16188 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16189 written |= (1 << 3);
16190 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16196 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16197 written |= (1 << 3);
16198 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16202 abuf->written = written;
16207 /* cfcku: cfcku$pack $FCCi_3,$CRj_float,$CCi,$cond */
16210 SEM_FN_NAME (frvbf,cfcku) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16212 #define FLD(f) abuf->fields.sfmt_cfckne.f
16213 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16214 int UNUSED written = 0;
16215 IADDR UNUSED pc = abuf->addr;
16216 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16218 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
16219 if (TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1))) {
16222 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16223 written |= (1 << 3);
16224 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16229 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16230 written |= (1 << 3);
16231 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16237 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16238 written |= (1 << 3);
16239 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16243 abuf->written = written;
16248 /* cfcko: cfcko$pack $FCCi_3,$CRj_float,$CCi,$cond */
16251 SEM_FN_NAME (frvbf,cfcko) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16253 #define FLD(f) abuf->fields.sfmt_cfckne.f
16254 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16255 int UNUSED written = 0;
16256 IADDR UNUSED pc = abuf->addr;
16257 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16259 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
16260 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))))) {
16263 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16264 written |= (1 << 3);
16265 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16270 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16271 written |= (1 << 3);
16272 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16278 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16279 written |= (1 << 3);
16280 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16284 abuf->written = written;
16289 /* cjmpl: cjmpl$pack @($GRi,$GRj),$CCi,$cond */
16292 SEM_FN_NAME (frvbf,cjmpl) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16294 #define FLD(f) abuf->fields.sfmt_cjmpl.f
16295 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16296 int UNUSED written = 0;
16297 IADDR UNUSED pc = abuf->addr;
16298 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16300 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
16302 if (EQSI (FLD (f_LI), 1)) {
16303 frvbf_set_write_next_vliw_addr_to_LR (current_cpu, 1);
16306 USI opval = ANDSI (ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), 0xfffffffc);
16307 sim_queue_pc_write (current_cpu, opval);
16308 written |= (1 << 6);
16309 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
16311 frvbf_model_branch (current_cpu, pc, 2);
16315 abuf->written = written;
16320 /* ccalll: ccalll$pack @($GRi,$GRj),$CCi,$cond */
16323 SEM_FN_NAME (frvbf,ccalll) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16325 #define FLD(f) abuf->fields.sfmt_cjmpl.f
16326 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16327 int UNUSED written = 0;
16328 IADDR UNUSED pc = abuf->addr;
16329 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16331 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
16333 if (EQSI (FLD (f_LI), 1)) {
16334 frvbf_set_write_next_vliw_addr_to_LR (current_cpu, 1);
16337 USI opval = ANDSI (ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), 0xfffffffc);
16338 sim_queue_pc_write (current_cpu, opval);
16339 written |= (1 << 6);
16340 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
16342 frvbf_model_branch (current_cpu, pc, 2);
16346 abuf->written = written;
16351 /* ici: ici$pack @($GRi,$GRj) */
16354 SEM_FN_NAME (frvbf,ici) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16356 #define FLD(f) abuf->fields.sfmt_icpl.f
16357 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16358 int UNUSED written = 0;
16359 IADDR UNUSED pc = abuf->addr;
16360 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16362 frvbf_insn_cache_invalidate (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), 0);
16368 /* dci: dci$pack @($GRi,$GRj) */
16371 SEM_FN_NAME (frvbf,dci) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16373 #define FLD(f) abuf->fields.sfmt_icpl.f
16374 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16375 int UNUSED written = 0;
16376 IADDR UNUSED pc = abuf->addr;
16377 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16379 frvbf_data_cache_invalidate (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), 0);
16385 /* icei: icei$pack @($GRi,$GRj),$ae */
16388 SEM_FN_NAME (frvbf,icei) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16390 #define FLD(f) abuf->fields.sfmt_icei.f
16391 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16392 int UNUSED written = 0;
16393 IADDR UNUSED pc = abuf->addr;
16394 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16396 if (EQSI (FLD (f_ae), 0)) {
16397 frvbf_insn_cache_invalidate (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), -1);
16399 frvbf_insn_cache_invalidate (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), FLD (f_ae));
16406 /* dcei: dcei$pack @($GRi,$GRj),$ae */
16409 SEM_FN_NAME (frvbf,dcei) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16411 #define FLD(f) abuf->fields.sfmt_icei.f
16412 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16413 int UNUSED written = 0;
16414 IADDR UNUSED pc = abuf->addr;
16415 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16417 if (EQSI (FLD (f_ae), 0)) {
16418 frvbf_data_cache_invalidate (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), -1);
16420 frvbf_data_cache_invalidate (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), FLD (f_ae));
16427 /* dcf: dcf$pack @($GRi,$GRj) */
16430 SEM_FN_NAME (frvbf,dcf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16432 #define FLD(f) abuf->fields.sfmt_icpl.f
16433 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16434 int UNUSED written = 0;
16435 IADDR UNUSED pc = abuf->addr;
16436 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16438 frvbf_data_cache_flush (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), 0);
16444 /* dcef: dcef$pack @($GRi,$GRj),$ae */
16447 SEM_FN_NAME (frvbf,dcef) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16449 #define FLD(f) abuf->fields.sfmt_icei.f
16450 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16451 int UNUSED written = 0;
16452 IADDR UNUSED pc = abuf->addr;
16453 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16455 if (EQSI (FLD (f_ae), 0)) {
16456 frvbf_data_cache_flush (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), -1);
16458 frvbf_data_cache_flush (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), FLD (f_ae));
16465 /* witlb: witlb$pack $GRk,@($GRi,$GRj) */
16468 SEM_FN_NAME (frvbf,witlb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16470 #define FLD(f) abuf->fields.fmt_empty.f
16471 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16472 int UNUSED written = 0;
16473 IADDR UNUSED pc = abuf->addr;
16474 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16476 ((void) 0); /*nop*/
16482 /* wdtlb: wdtlb$pack $GRk,@($GRi,$GRj) */
16485 SEM_FN_NAME (frvbf,wdtlb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16487 #define FLD(f) abuf->fields.fmt_empty.f
16488 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16489 int UNUSED written = 0;
16490 IADDR UNUSED pc = abuf->addr;
16491 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16493 ((void) 0); /*nop*/
16499 /* itlbi: itlbi$pack @($GRi,$GRj) */
16502 SEM_FN_NAME (frvbf,itlbi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16504 #define FLD(f) abuf->fields.fmt_empty.f
16505 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16506 int UNUSED written = 0;
16507 IADDR UNUSED pc = abuf->addr;
16508 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16510 ((void) 0); /*nop*/
16516 /* dtlbi: dtlbi$pack @($GRi,$GRj) */
16519 SEM_FN_NAME (frvbf,dtlbi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16521 #define FLD(f) abuf->fields.fmt_empty.f
16522 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16523 int UNUSED written = 0;
16524 IADDR UNUSED pc = abuf->addr;
16525 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16527 ((void) 0); /*nop*/
16533 /* icpl: icpl$pack $GRi,$GRj,$lock */
16536 SEM_FN_NAME (frvbf,icpl) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16538 #define FLD(f) abuf->fields.sfmt_icpl.f
16539 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16540 int UNUSED written = 0;
16541 IADDR UNUSED pc = abuf->addr;
16542 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16544 frvbf_insn_cache_preload (current_cpu, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), FLD (f_lock));
16550 /* dcpl: dcpl$pack $GRi,$GRj,$lock */
16553 SEM_FN_NAME (frvbf,dcpl) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16555 #define FLD(f) abuf->fields.sfmt_icpl.f
16556 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16557 int UNUSED written = 0;
16558 IADDR UNUSED pc = abuf->addr;
16559 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16561 frvbf_data_cache_preload (current_cpu, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), FLD (f_lock));
16567 /* icul: icul$pack $GRi */
16570 SEM_FN_NAME (frvbf,icul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16572 #define FLD(f) abuf->fields.sfmt_jmpil.f
16573 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16574 int UNUSED written = 0;
16575 IADDR UNUSED pc = abuf->addr;
16576 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16578 frvbf_insn_cache_unlock (current_cpu, GET_H_GR (FLD (f_GRi)));
16584 /* dcul: dcul$pack $GRi */
16587 SEM_FN_NAME (frvbf,dcul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16589 #define FLD(f) abuf->fields.sfmt_jmpil.f
16590 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16591 int UNUSED written = 0;
16592 IADDR UNUSED pc = abuf->addr;
16593 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16595 frvbf_data_cache_unlock (current_cpu, GET_H_GR (FLD (f_GRi)));
16601 /* bar: bar$pack */
16604 SEM_FN_NAME (frvbf,bar) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16606 #define FLD(f) abuf->fields.fmt_empty.f
16607 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16608 int UNUSED written = 0;
16609 IADDR UNUSED pc = abuf->addr;
16610 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16612 ((void) 0); /*nop*/
16618 /* membar: membar$pack */
16621 SEM_FN_NAME (frvbf,membar) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16623 #define FLD(f) abuf->fields.fmt_empty.f
16624 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16625 int UNUSED written = 0;
16626 IADDR UNUSED pc = abuf->addr;
16627 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16629 ((void) 0); /*nop*/
16635 /* cop1: cop1$pack $s6_1,$CPRi,$CPRj,$CPRk */
16638 SEM_FN_NAME (frvbf,cop1) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16640 #define FLD(f) abuf->fields.fmt_empty.f
16641 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16642 int UNUSED written = 0;
16643 IADDR UNUSED pc = abuf->addr;
16644 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16646 ((void) 0); /*nop*/
16652 /* cop2: cop2$pack $s6_1,$CPRi,$CPRj,$CPRk */
16655 SEM_FN_NAME (frvbf,cop2) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16657 #define FLD(f) abuf->fields.fmt_empty.f
16658 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16659 int UNUSED written = 0;
16660 IADDR UNUSED pc = abuf->addr;
16661 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16663 ((void) 0); /*nop*/
16669 /* clrgr: clrgr$pack $GRk */
16672 SEM_FN_NAME (frvbf,clrgr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16674 #define FLD(f) abuf->fields.sfmt_swapi.f
16675 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16676 int UNUSED written = 0;
16677 IADDR UNUSED pc = abuf->addr;
16678 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16681 frv_ref_SI (GET_H_GR (FLD (f_GRk)));
16682 frvbf_clear_ne_flags (current_cpu, FLD (f_GRk), 0);
16689 /* clrfr: clrfr$pack $FRk */
16692 SEM_FN_NAME (frvbf,clrfr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16694 #define FLD(f) abuf->fields.sfmt_cfmadds.f
16695 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16696 int UNUSED written = 0;
16697 IADDR UNUSED pc = abuf->addr;
16698 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16701 frv_ref_SI (GET_H_FR (FLD (f_FRk)));
16702 frvbf_clear_ne_flags (current_cpu, FLD (f_FRk), 1);
16709 /* clrga: clrga$pack */
16712 SEM_FN_NAME (frvbf,clrga) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16714 #define FLD(f) abuf->fields.fmt_empty.f
16715 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16716 int UNUSED written = 0;
16717 IADDR UNUSED pc = abuf->addr;
16718 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16720 frvbf_clear_ne_flags (current_cpu, -1, 0);
16726 /* clrfa: clrfa$pack */
16729 SEM_FN_NAME (frvbf,clrfa) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16731 #define FLD(f) abuf->fields.fmt_empty.f
16732 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16733 int UNUSED written = 0;
16734 IADDR UNUSED pc = abuf->addr;
16735 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16737 frvbf_clear_ne_flags (current_cpu, -1, 1);
16743 /* commitgr: commitgr$pack $GRk */
16746 SEM_FN_NAME (frvbf,commitgr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16748 #define FLD(f) abuf->fields.sfmt_setlos.f
16749 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16750 int UNUSED written = 0;
16751 IADDR UNUSED pc = abuf->addr;
16752 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16754 frvbf_commit (current_cpu, FLD (f_GRk), 0);
16760 /* commitfr: commitfr$pack $FRk */
16763 SEM_FN_NAME (frvbf,commitfr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16765 #define FLD(f) abuf->fields.sfmt_mhsethis.f
16766 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16767 int UNUSED written = 0;
16768 IADDR UNUSED pc = abuf->addr;
16769 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16771 frvbf_commit (current_cpu, FLD (f_FRk), 1);
16777 /* commitga: commitga$pack */
16780 SEM_FN_NAME (frvbf,commitga) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16782 #define FLD(f) abuf->fields.fmt_empty.f
16783 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16784 int UNUSED written = 0;
16785 IADDR UNUSED pc = abuf->addr;
16786 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16788 frvbf_commit (current_cpu, -1, 0);
16794 /* commitfa: commitfa$pack */
16797 SEM_FN_NAME (frvbf,commitfa) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16799 #define FLD(f) abuf->fields.fmt_empty.f
16800 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16801 int UNUSED written = 0;
16802 IADDR UNUSED pc = abuf->addr;
16803 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16805 frvbf_commit (current_cpu, -1, 1);
16811 /* fitos: fitos$pack $FRintj,$FRk */
16814 SEM_FN_NAME (frvbf,fitos) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16816 #define FLD(f) abuf->fields.sfmt_fditos.f
16817 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16818 int UNUSED written = 0;
16819 IADDR UNUSED pc = abuf->addr;
16820 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16823 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->floatsisf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (FLD (f_FRj)));
16824 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
16825 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16832 /* fstoi: fstoi$pack $FRj,$FRintk */
16835 SEM_FN_NAME (frvbf,fstoi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16837 #define FLD(f) abuf->fields.sfmt_fdstoi.f
16838 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16839 int UNUSED written = 0;
16840 IADDR UNUSED pc = abuf->addr;
16841 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16844 SI opval = (* CGEN_CPU_FPU (current_cpu)->ops->fixsfsi) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
16845 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
16846 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16853 /* fitod: fitod$pack $FRintj,$FRdoublek */
16856 SEM_FN_NAME (frvbf,fitod) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16858 #define FLD(f) abuf->fields.sfmt_fitod.f
16859 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16860 int UNUSED written = 0;
16861 IADDR UNUSED pc = abuf->addr;
16862 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16865 DF opval = (* CGEN_CPU_FPU (current_cpu)->ops->floatsidf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (FLD (f_FRj)));
16866 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
16867 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
16874 /* fdtoi: fdtoi$pack $FRdoublej,$FRintk */
16877 SEM_FN_NAME (frvbf,fdtoi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16879 #define FLD(f) abuf->fields.sfmt_fdtoi.f
16880 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16881 int UNUSED written = 0;
16882 IADDR UNUSED pc = abuf->addr;
16883 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16886 SI opval = (* CGEN_CPU_FPU (current_cpu)->ops->fixdfsi) (CGEN_CPU_FPU (current_cpu), GET_H_FR_DOUBLE (FLD (f_FRj)));
16887 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
16888 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16895 /* fditos: fditos$pack $FRintj,$FRk */
16898 SEM_FN_NAME (frvbf,fditos) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16900 #define FLD(f) abuf->fields.sfmt_fditos.f
16901 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16902 int UNUSED written = 0;
16903 IADDR UNUSED pc = abuf->addr;
16904 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16908 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->floatsisf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (FLD (f_FRj)));
16909 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
16910 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16913 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->floatsisf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (((FLD (f_FRj)) + (1))));
16914 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
16915 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16923 /* fdstoi: fdstoi$pack $FRj,$FRintk */
16926 SEM_FN_NAME (frvbf,fdstoi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16928 #define FLD(f) abuf->fields.sfmt_fdstoi.f
16929 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16930 int UNUSED written = 0;
16931 IADDR UNUSED pc = abuf->addr;
16932 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16936 SI opval = (* CGEN_CPU_FPU (current_cpu)->ops->fixsfsi) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
16937 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
16938 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16941 USI opval = (* CGEN_CPU_FPU (current_cpu)->ops->fixsfsi) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRj)) + (1))));
16942 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
16943 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16951 /* nfditos: nfditos$pack $FRintj,$FRk */
16954 SEM_FN_NAME (frvbf,nfditos) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16956 #define FLD(f) abuf->fields.sfmt_fditos.f
16957 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16958 int UNUSED written = 0;
16959 IADDR UNUSED pc = abuf->addr;
16960 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16963 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
16965 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->floatsisf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (FLD (f_FRj)));
16966 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
16967 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16969 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
16971 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->floatsisf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (((FLD (f_FRj)) + (1))));
16972 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
16973 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16981 /* nfdstoi: nfdstoi$pack $FRj,$FRintk */
16984 SEM_FN_NAME (frvbf,nfdstoi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16986 #define FLD(f) abuf->fields.sfmt_fdstoi.f
16987 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16988 int UNUSED written = 0;
16989 IADDR UNUSED pc = abuf->addr;
16990 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16993 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
16995 SI opval = (* CGEN_CPU_FPU (current_cpu)->ops->fixsfsi) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
16996 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
16997 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16999 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
17001 USI opval = (* CGEN_CPU_FPU (current_cpu)->ops->fixsfsi) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRj)) + (1))));
17002 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
17003 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
17011 /* cfitos: cfitos$pack $FRintj,$FRk,$CCi,$cond */
17014 SEM_FN_NAME (frvbf,cfitos) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17016 #define FLD(f) abuf->fields.sfmt_cfitos.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 = (* CGEN_CPU_FPU (current_cpu)->ops->floatsisf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (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 /* cfstoi: cfstoi$pack $FRj,$FRintk,$CCi,$cond */
17039 SEM_FN_NAME (frvbf,cfstoi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17041 #define FLD(f) abuf->fields.sfmt_cfstoi.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);
17047 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17049 SI opval = (* CGEN_CPU_FPU (current_cpu)->ops->fixsfsi) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17050 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
17051 written |= (1 << 3);
17052 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
17056 abuf->written = written;
17061 /* nfitos: nfitos$pack $FRintj,$FRk */
17064 SEM_FN_NAME (frvbf,nfitos) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17066 #define FLD(f) abuf->fields.sfmt_fditos.f
17067 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17068 int UNUSED written = 0;
17069 IADDR UNUSED pc = abuf->addr;
17070 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17073 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
17075 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->floatsisf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (FLD (f_FRj)));
17076 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17077 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17085 /* nfstoi: nfstoi$pack $FRj,$FRintk */
17088 SEM_FN_NAME (frvbf,nfstoi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17090 #define FLD(f) abuf->fields.sfmt_fdstoi.f
17091 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17092 int UNUSED written = 0;
17093 IADDR UNUSED pc = abuf->addr;
17094 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17097 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
17099 SI opval = (* CGEN_CPU_FPU (current_cpu)->ops->fixsfsi) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17100 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
17101 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
17109 /* fmovs: fmovs$pack $FRj,$FRk */
17112 SEM_FN_NAME (frvbf,fmovs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17114 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17115 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17116 int UNUSED written = 0;
17117 IADDR UNUSED pc = abuf->addr;
17118 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17121 SF opval = GET_H_FR (FLD (f_FRj));
17122 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17123 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17130 /* fmovd: fmovd$pack $FRdoublej,$FRdoublek */
17133 SEM_FN_NAME (frvbf,fmovd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17135 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17136 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17137 int UNUSED written = 0;
17138 IADDR UNUSED pc = abuf->addr;
17139 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17142 DF opval = GET_H_FR_DOUBLE (FLD (f_FRj));
17143 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17144 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17151 /* fdmovs: fdmovs$pack $FRj,$FRk */
17154 SEM_FN_NAME (frvbf,fdmovs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17156 #define FLD(f) abuf->fields.sfmt_fdmadds.f
17157 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17158 int UNUSED written = 0;
17159 IADDR UNUSED pc = abuf->addr;
17160 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17164 SF opval = GET_H_FR (FLD (f_FRj));
17165 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17166 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17169 SF opval = GET_H_FR (((FLD (f_FRj)) + (1)));
17170 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
17171 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17179 /* cfmovs: cfmovs$pack $FRj,$FRk,$CCi,$cond */
17182 SEM_FN_NAME (frvbf,cfmovs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17184 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17185 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17186 int UNUSED written = 0;
17187 IADDR UNUSED pc = abuf->addr;
17188 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17190 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17192 SF opval = GET_H_FR (FLD (f_FRj));
17193 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17194 written |= (1 << 3);
17195 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17199 abuf->written = written;
17204 /* fnegs: fnegs$pack $FRj,$FRk */
17207 SEM_FN_NAME (frvbf,fnegs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17209 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17210 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17211 int UNUSED written = 0;
17212 IADDR UNUSED pc = abuf->addr;
17213 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17216 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->negsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17217 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17218 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17225 /* fnegd: fnegd$pack $FRdoublej,$FRdoublek */
17228 SEM_FN_NAME (frvbf,fnegd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17230 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17231 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17232 int UNUSED written = 0;
17233 IADDR UNUSED pc = abuf->addr;
17234 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17237 DF opval = (* CGEN_CPU_FPU (current_cpu)->ops->negdf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_DOUBLE (FLD (f_FRj)));
17238 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17239 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17246 /* fdnegs: fdnegs$pack $FRj,$FRk */
17249 SEM_FN_NAME (frvbf,fdnegs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17251 #define FLD(f) abuf->fields.sfmt_fdmadds.f
17252 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17253 int UNUSED written = 0;
17254 IADDR UNUSED pc = abuf->addr;
17255 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17259 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->negsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17260 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17261 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17264 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->negsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRj)) + (1))));
17265 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
17266 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17274 /* cfnegs: cfnegs$pack $FRj,$FRk,$CCi,$cond */
17277 SEM_FN_NAME (frvbf,cfnegs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17279 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17280 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17281 int UNUSED written = 0;
17282 IADDR UNUSED pc = abuf->addr;
17283 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17285 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17287 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->negsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17288 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17289 written |= (1 << 3);
17290 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17294 abuf->written = written;
17299 /* fabss: fabss$pack $FRj,$FRk */
17302 SEM_FN_NAME (frvbf,fabss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17304 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17305 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17306 int UNUSED written = 0;
17307 IADDR UNUSED pc = abuf->addr;
17308 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17311 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->abssf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17312 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17313 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17320 /* fabsd: fabsd$pack $FRdoublej,$FRdoublek */
17323 SEM_FN_NAME (frvbf,fabsd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17325 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17326 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17327 int UNUSED written = 0;
17328 IADDR UNUSED pc = abuf->addr;
17329 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17332 DF opval = (* CGEN_CPU_FPU (current_cpu)->ops->absdf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_DOUBLE (FLD (f_FRj)));
17333 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17334 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17341 /* fdabss: fdabss$pack $FRj,$FRk */
17344 SEM_FN_NAME (frvbf,fdabss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17346 #define FLD(f) abuf->fields.sfmt_fdmadds.f
17347 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17348 int UNUSED written = 0;
17349 IADDR UNUSED pc = abuf->addr;
17350 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17354 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->abssf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17355 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17356 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17359 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->abssf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRj)) + (1))));
17360 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
17361 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17369 /* cfabss: cfabss$pack $FRj,$FRk,$CCi,$cond */
17372 SEM_FN_NAME (frvbf,cfabss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17374 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17375 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17376 int UNUSED written = 0;
17377 IADDR UNUSED pc = abuf->addr;
17378 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17380 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17382 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->abssf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17383 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17384 written |= (1 << 3);
17385 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17389 abuf->written = written;
17394 /* fsqrts: fsqrts$pack $FRj,$FRk */
17397 SEM_FN_NAME (frvbf,fsqrts) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17399 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17400 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17401 int UNUSED written = 0;
17402 IADDR UNUSED pc = abuf->addr;
17403 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17406 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->sqrtsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17407 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17408 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17415 /* fdsqrts: fdsqrts$pack $FRj,$FRk */
17418 SEM_FN_NAME (frvbf,fdsqrts) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17420 #define FLD(f) abuf->fields.sfmt_fdmadds.f
17421 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17422 int UNUSED written = 0;
17423 IADDR UNUSED pc = abuf->addr;
17424 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17428 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->sqrtsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17429 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17430 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17433 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->sqrtsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRj)) + (1))));
17434 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
17435 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17443 /* nfdsqrts: nfdsqrts$pack $FRj,$FRk */
17446 SEM_FN_NAME (frvbf,nfdsqrts) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17448 #define FLD(f) abuf->fields.sfmt_fdmadds.f
17449 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17450 int UNUSED written = 0;
17451 IADDR UNUSED pc = abuf->addr;
17452 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17455 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
17457 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->sqrtsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17458 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17459 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17461 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
17463 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->sqrtsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRj)) + (1))));
17464 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
17465 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17473 /* fsqrtd: fsqrtd$pack $FRdoublej,$FRdoublek */
17476 SEM_FN_NAME (frvbf,fsqrtd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17478 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17479 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17480 int UNUSED written = 0;
17481 IADDR UNUSED pc = abuf->addr;
17482 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17485 DF opval = (* CGEN_CPU_FPU (current_cpu)->ops->sqrtdf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_DOUBLE (FLD (f_FRj)));
17486 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17487 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17494 /* cfsqrts: cfsqrts$pack $FRj,$FRk,$CCi,$cond */
17497 SEM_FN_NAME (frvbf,cfsqrts) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17499 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17500 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17501 int UNUSED written = 0;
17502 IADDR UNUSED pc = abuf->addr;
17503 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17505 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17507 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->sqrtsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17508 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17509 written |= (1 << 3);
17510 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17514 abuf->written = written;
17519 /* nfsqrts: nfsqrts$pack $FRj,$FRk */
17522 SEM_FN_NAME (frvbf,nfsqrts) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17524 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17525 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17526 int UNUSED written = 0;
17527 IADDR UNUSED pc = abuf->addr;
17528 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17531 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
17533 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->sqrtsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17534 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17535 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17543 /* fadds: fadds$pack $FRi,$FRj,$FRk */
17546 SEM_FN_NAME (frvbf,fadds) (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);
17555 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)));
17556 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17557 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17564 /* fsubs: fsubs$pack $FRi,$FRj,$FRk */
17567 SEM_FN_NAME (frvbf,fsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17569 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17570 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17571 int UNUSED written = 0;
17572 IADDR UNUSED pc = abuf->addr;
17573 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17576 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)));
17577 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17578 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17585 /* fmuls: fmuls$pack $FRi,$FRj,$FRk */
17588 SEM_FN_NAME (frvbf,fmuls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17590 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17591 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17592 int UNUSED written = 0;
17593 IADDR UNUSED pc = abuf->addr;
17594 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17597 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)));
17598 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17599 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17606 /* fdivs: fdivs$pack $FRi,$FRj,$FRk */
17609 SEM_FN_NAME (frvbf,fdivs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17611 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17612 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17613 int UNUSED written = 0;
17614 IADDR UNUSED pc = abuf->addr;
17615 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17618 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)));
17619 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17620 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17627 /* faddd: faddd$pack $FRdoublei,$FRdoublej,$FRdoublek */
17630 SEM_FN_NAME (frvbf,faddd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17632 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17633 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17634 int UNUSED written = 0;
17635 IADDR UNUSED pc = abuf->addr;
17636 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17639 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)));
17640 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17641 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17648 /* fsubd: fsubd$pack $FRdoublei,$FRdoublej,$FRdoublek */
17651 SEM_FN_NAME (frvbf,fsubd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17653 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17654 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17655 int UNUSED written = 0;
17656 IADDR UNUSED pc = abuf->addr;
17657 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17660 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)));
17661 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17662 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17669 /* fmuld: fmuld$pack $FRdoublei,$FRdoublej,$FRdoublek */
17672 SEM_FN_NAME (frvbf,fmuld) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17674 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17675 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17676 int UNUSED written = 0;
17677 IADDR UNUSED pc = abuf->addr;
17678 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17681 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)));
17682 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17683 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17690 /* fdivd: fdivd$pack $FRdoublei,$FRdoublej,$FRdoublek */
17693 SEM_FN_NAME (frvbf,fdivd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17695 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17696 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17697 int UNUSED written = 0;
17698 IADDR UNUSED pc = abuf->addr;
17699 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17702 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)));
17703 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17704 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17711 /* cfadds: cfadds$pack $FRi,$FRj,$FRk,$CCi,$cond */
17714 SEM_FN_NAME (frvbf,cfadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17716 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17717 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17718 int UNUSED written = 0;
17719 IADDR UNUSED pc = abuf->addr;
17720 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17722 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17724 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)));
17725 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17726 written |= (1 << 4);
17727 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17731 abuf->written = written;
17736 /* cfsubs: cfsubs$pack $FRi,$FRj,$FRk,$CCi,$cond */
17739 SEM_FN_NAME (frvbf,cfsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17741 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17742 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17743 int UNUSED written = 0;
17744 IADDR UNUSED pc = abuf->addr;
17745 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17747 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17749 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)));
17750 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17751 written |= (1 << 4);
17752 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17756 abuf->written = written;
17761 /* cfmuls: cfmuls$pack $FRi,$FRj,$FRk,$CCi,$cond */
17764 SEM_FN_NAME (frvbf,cfmuls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17766 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17767 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17768 int UNUSED written = 0;
17769 IADDR UNUSED pc = abuf->addr;
17770 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17772 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17774 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)));
17775 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17776 written |= (1 << 4);
17777 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17781 abuf->written = written;
17786 /* cfdivs: cfdivs$pack $FRi,$FRj,$FRk,$CCi,$cond */
17789 SEM_FN_NAME (frvbf,cfdivs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17791 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17792 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17793 int UNUSED written = 0;
17794 IADDR UNUSED pc = abuf->addr;
17795 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17797 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17799 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)));
17800 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17801 written |= (1 << 4);
17802 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17806 abuf->written = written;
17811 /* nfadds: nfadds$pack $FRi,$FRj,$FRk */
17814 SEM_FN_NAME (frvbf,nfadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17816 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17817 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17818 int UNUSED written = 0;
17819 IADDR UNUSED pc = abuf->addr;
17820 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17823 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
17825 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)));
17826 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17827 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17835 /* nfsubs: nfsubs$pack $FRi,$FRj,$FRk */
17838 SEM_FN_NAME (frvbf,nfsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17840 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17841 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17842 int UNUSED written = 0;
17843 IADDR UNUSED pc = abuf->addr;
17844 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17847 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
17849 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)));
17850 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17851 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17859 /* nfmuls: nfmuls$pack $FRi,$FRj,$FRk */
17862 SEM_FN_NAME (frvbf,nfmuls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17864 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17865 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17866 int UNUSED written = 0;
17867 IADDR UNUSED pc = abuf->addr;
17868 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17871 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
17873 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)));
17874 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17875 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17883 /* nfdivs: nfdivs$pack $FRi,$FRj,$FRk */
17886 SEM_FN_NAME (frvbf,nfdivs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17888 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17889 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17890 int UNUSED written = 0;
17891 IADDR UNUSED pc = abuf->addr;
17892 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17895 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
17897 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)));
17898 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17899 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17907 /* fcmps: fcmps$pack $FRi,$FRj,$FCCi_2 */
17910 SEM_FN_NAME (frvbf,fcmps) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17912 #define FLD(f) abuf->fields.sfmt_cfcmps.f
17913 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17914 int UNUSED written = 0;
17915 IADDR UNUSED pc = abuf->addr;
17916 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17918 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)))) {
17921 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17922 written |= (1 << 2);
17923 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17926 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)))) {
17929 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17930 written |= (1 << 2);
17931 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17934 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)))) {
17937 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17938 written |= (1 << 2);
17939 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17944 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17945 written |= (1 << 2);
17946 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17952 abuf->written = written;
17957 /* fcmpd: fcmpd$pack $FRdoublei,$FRdoublej,$FCCi_2 */
17960 SEM_FN_NAME (frvbf,fcmpd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17962 #define FLD(f) abuf->fields.sfmt_fcmpd.f
17963 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17964 int UNUSED written = 0;
17965 IADDR UNUSED pc = abuf->addr;
17966 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17968 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)))) {
17971 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17972 written |= (1 << 2);
17973 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17976 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)))) {
17979 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17980 written |= (1 << 2);
17981 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17984 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)))) {
17987 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17988 written |= (1 << 2);
17989 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17994 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17995 written |= (1 << 2);
17996 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
18002 abuf->written = written;
18007 /* cfcmps: cfcmps$pack $FRi,$FRj,$FCCi_2,$CCi,$cond */
18010 SEM_FN_NAME (frvbf,cfcmps) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18012 #define FLD(f) abuf->fields.sfmt_cfcmps.f
18013 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18014 int UNUSED written = 0;
18015 IADDR UNUSED pc = abuf->addr;
18016 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18018 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
18019 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)))) {
18022 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
18023 written |= (1 << 4);
18024 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
18027 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)))) {
18030 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
18031 written |= (1 << 4);
18032 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
18035 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)))) {
18038 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
18039 written |= (1 << 4);
18040 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
18045 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
18046 written |= (1 << 4);
18047 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
18054 abuf->written = written;
18059 /* fdcmps: fdcmps$pack $FRi,$FRj,$FCCi_2 */
18062 SEM_FN_NAME (frvbf,fdcmps) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18064 #define FLD(f) abuf->fields.sfmt_nfdcmps.f
18065 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18066 int UNUSED written = 0;
18067 IADDR UNUSED pc = abuf->addr;
18068 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18071 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)))) {
18074 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
18075 written |= (1 << 7);
18076 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
18079 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)))) {
18082 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
18083 written |= (1 << 7);
18084 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
18087 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)))) {
18090 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
18091 written |= (1 << 7);
18092 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
18097 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
18098 written |= (1 << 7);
18099 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
18104 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))))) {
18107 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCi_2)) + (1))]), opval);
18108 written |= (1 << 8);
18109 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
18112 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))))) {
18115 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCi_2)) + (1))]), opval);
18116 written |= (1 << 8);
18117 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
18120 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))))) {
18123 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCi_2)) + (1))]), opval);
18124 written |= (1 << 8);
18125 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
18130 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCi_2)) + (1))]), opval);
18131 written |= (1 << 8);
18132 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
18139 abuf->written = written;
18144 /* fmadds: fmadds$pack $FRi,$FRj,$FRk */
18147 SEM_FN_NAME (frvbf,fmadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18149 #define FLD(f) abuf->fields.sfmt_cfmadds.f
18150 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18151 int UNUSED written = 0;
18152 IADDR UNUSED pc = abuf->addr;
18153 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18156 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)));
18157 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18158 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18165 /* fmsubs: fmsubs$pack $FRi,$FRj,$FRk */
18168 SEM_FN_NAME (frvbf,fmsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18170 #define FLD(f) abuf->fields.sfmt_cfmadds.f
18171 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18172 int UNUSED written = 0;
18173 IADDR UNUSED pc = abuf->addr;
18174 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18177 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)));
18178 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18179 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18186 /* fmaddd: fmaddd$pack $FRdoublei,$FRdoublej,$FRdoublek */
18189 SEM_FN_NAME (frvbf,fmaddd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18191 #define FLD(f) abuf->fields.sfmt_fmaddd.f
18192 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18193 int UNUSED written = 0;
18194 IADDR UNUSED pc = abuf->addr;
18195 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18198 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)));
18199 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
18200 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
18207 /* fmsubd: fmsubd$pack $FRdoublei,$FRdoublej,$FRdoublek */
18210 SEM_FN_NAME (frvbf,fmsubd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18212 #define FLD(f) abuf->fields.sfmt_fmaddd.f
18213 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18214 int UNUSED written = 0;
18215 IADDR UNUSED pc = abuf->addr;
18216 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18219 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)));
18220 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
18221 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
18228 /* fdmadds: fdmadds$pack $FRi,$FRj,$FRk */
18231 SEM_FN_NAME (frvbf,fdmadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18233 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18234 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18235 int UNUSED written = 0;
18236 IADDR UNUSED pc = abuf->addr;
18237 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18241 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)));
18242 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18243 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18246 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))));
18247 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18248 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18256 /* nfdmadds: nfdmadds$pack $FRi,$FRj,$FRk */
18259 SEM_FN_NAME (frvbf,nfdmadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18261 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18262 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18263 int UNUSED written = 0;
18264 IADDR UNUSED pc = abuf->addr;
18265 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18268 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18270 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)));
18271 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18272 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18274 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18276 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))));
18277 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18278 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18286 /* cfmadds: cfmadds$pack $FRi,$FRj,$FRk,$CCi,$cond */
18289 SEM_FN_NAME (frvbf,cfmadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18291 #define FLD(f) abuf->fields.sfmt_cfmadds.f
18292 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18293 int UNUSED written = 0;
18294 IADDR UNUSED pc = abuf->addr;
18295 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18297 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
18299 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)));
18300 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18301 written |= (1 << 5);
18302 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18306 abuf->written = written;
18311 /* cfmsubs: cfmsubs$pack $FRi,$FRj,$FRk,$CCi,$cond */
18314 SEM_FN_NAME (frvbf,cfmsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18316 #define FLD(f) abuf->fields.sfmt_cfmadds.f
18317 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18318 int UNUSED written = 0;
18319 IADDR UNUSED pc = abuf->addr;
18320 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18322 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
18324 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)));
18325 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18326 written |= (1 << 5);
18327 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18331 abuf->written = written;
18336 /* nfmadds: nfmadds$pack $FRi,$FRj,$FRk */
18339 SEM_FN_NAME (frvbf,nfmadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18341 #define FLD(f) abuf->fields.sfmt_cfmadds.f
18342 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18343 int UNUSED written = 0;
18344 IADDR UNUSED pc = abuf->addr;
18345 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18348 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18350 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)));
18351 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18352 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18360 /* nfmsubs: nfmsubs$pack $FRi,$FRj,$FRk */
18363 SEM_FN_NAME (frvbf,nfmsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18365 #define FLD(f) abuf->fields.sfmt_cfmadds.f
18366 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18367 int UNUSED written = 0;
18368 IADDR UNUSED pc = abuf->addr;
18369 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18372 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18374 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)));
18375 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18376 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18384 /* fmas: fmas$pack $FRi,$FRj,$FRk */
18387 SEM_FN_NAME (frvbf,fmas) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18389 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18390 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18391 int UNUSED written = 0;
18392 IADDR UNUSED pc = abuf->addr;
18393 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18397 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)));
18398 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18399 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18402 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))));
18403 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18404 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18412 /* fmss: fmss$pack $FRi,$FRj,$FRk */
18415 SEM_FN_NAME (frvbf,fmss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18417 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18418 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18419 int UNUSED written = 0;
18420 IADDR UNUSED pc = abuf->addr;
18421 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18425 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)));
18426 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18427 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18430 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))));
18431 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18432 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18440 /* fdmas: fdmas$pack $FRi,$FRj,$FRk */
18443 SEM_FN_NAME (frvbf,fdmas) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18445 #define FLD(f) abuf->fields.sfmt_fdmas.f
18446 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18447 int UNUSED written = 0;
18448 IADDR UNUSED pc = abuf->addr;
18449 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18453 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)));
18454 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18455 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18458 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))));
18459 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18460 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18463 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))));
18464 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (2)), opval);
18465 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18468 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))));
18469 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (3)), opval);
18470 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18478 /* fdmss: fdmss$pack $FRi,$FRj,$FRk */
18481 SEM_FN_NAME (frvbf,fdmss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18483 #define FLD(f) abuf->fields.sfmt_fdmas.f
18484 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18485 int UNUSED written = 0;
18486 IADDR UNUSED pc = abuf->addr;
18487 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18491 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)));
18492 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18493 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18496 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))));
18497 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18498 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18501 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))));
18502 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (2)), opval);
18503 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18506 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))));
18507 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (3)), opval);
18508 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18516 /* nfdmas: nfdmas$pack $FRi,$FRj,$FRk */
18519 SEM_FN_NAME (frvbf,nfdmas) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18521 #define FLD(f) abuf->fields.sfmt_fdmas.f
18522 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18523 int UNUSED written = 0;
18524 IADDR UNUSED pc = abuf->addr;
18525 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18528 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18529 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18530 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 2));
18531 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 3));
18533 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)));
18534 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18535 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18538 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))));
18539 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18540 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18543 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))));
18544 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (2)), opval);
18545 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18548 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))));
18549 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (3)), opval);
18550 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18558 /* nfdmss: nfdmss$pack $FRi,$FRj,$FRk */
18561 SEM_FN_NAME (frvbf,nfdmss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18563 #define FLD(f) abuf->fields.sfmt_fdmas.f
18564 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18565 int UNUSED written = 0;
18566 IADDR UNUSED pc = abuf->addr;
18567 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18570 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18571 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18572 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 2));
18573 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 3));
18575 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)));
18576 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18577 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18580 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))));
18581 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18582 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18585 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))));
18586 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (2)), opval);
18587 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18590 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))));
18591 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (3)), opval);
18592 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18600 /* cfmas: cfmas$pack $FRi,$FRj,$FRk,$CCi,$cond */
18603 SEM_FN_NAME (frvbf,cfmas) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18605 #define FLD(f) abuf->fields.sfmt_cfmas.f
18606 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18607 int UNUSED written = 0;
18608 IADDR UNUSED pc = abuf->addr;
18609 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18611 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
18614 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)));
18615 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18616 written |= (1 << 9);
18617 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18620 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))));
18621 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18622 written |= (1 << 10);
18623 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18628 abuf->written = written;
18633 /* cfmss: cfmss$pack $FRi,$FRj,$FRk,$CCi,$cond */
18636 SEM_FN_NAME (frvbf,cfmss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18638 #define FLD(f) abuf->fields.sfmt_cfmas.f
18639 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18640 int UNUSED written = 0;
18641 IADDR UNUSED pc = abuf->addr;
18642 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18644 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
18647 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)));
18648 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18649 written |= (1 << 9);
18650 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18653 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))));
18654 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18655 written |= (1 << 10);
18656 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18661 abuf->written = written;
18666 /* fmad: fmad$pack $FRi,$FRj,$FRk */
18669 SEM_FN_NAME (frvbf,fmad) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18671 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18672 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18673 int UNUSED written = 0;
18674 IADDR UNUSED pc = abuf->addr;
18675 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18679 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->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)))));
18680 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18681 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18684 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->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))))));
18685 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18686 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18694 /* fmsd: fmsd$pack $FRi,$FRj,$FRk */
18697 SEM_FN_NAME (frvbf,fmsd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18699 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18700 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18701 int UNUSED written = 0;
18702 IADDR UNUSED pc = abuf->addr;
18703 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18707 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->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)))));
18708 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18709 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18712 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->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))))));
18713 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18714 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18722 /* nfmas: nfmas$pack $FRi,$FRj,$FRk */
18725 SEM_FN_NAME (frvbf,nfmas) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18727 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18728 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18729 int UNUSED written = 0;
18730 IADDR UNUSED pc = abuf->addr;
18731 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18734 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18736 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)));
18737 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18738 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18740 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18742 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->addsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1))));
18743 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18744 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18752 /* nfmss: nfmss$pack $FRi,$FRj,$FRk */
18755 SEM_FN_NAME (frvbf,nfmss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18757 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18758 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18759 int UNUSED written = 0;
18760 IADDR UNUSED pc = abuf->addr;
18761 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18764 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18766 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)));
18767 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18768 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18770 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18772 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->subsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1))));
18773 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18774 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18782 /* fdadds: fdadds$pack $FRi,$FRj,$FRk */
18785 SEM_FN_NAME (frvbf,fdadds) (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);
18795 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)));
18796 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18797 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18800 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))));
18801 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18802 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18810 /* fdsubs: fdsubs$pack $FRi,$FRj,$FRk */
18813 SEM_FN_NAME (frvbf,fdsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18815 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18816 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18817 int UNUSED written = 0;
18818 IADDR UNUSED pc = abuf->addr;
18819 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18823 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)));
18824 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18825 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18828 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))));
18829 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18830 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18838 /* fdmuls: fdmuls$pack $FRi,$FRj,$FRk */
18841 SEM_FN_NAME (frvbf,fdmuls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18843 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18844 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18845 int UNUSED written = 0;
18846 IADDR UNUSED pc = abuf->addr;
18847 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18851 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)));
18852 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18853 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18856 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))));
18857 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18858 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18866 /* fddivs: fddivs$pack $FRi,$FRj,$FRk */
18869 SEM_FN_NAME (frvbf,fddivs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18871 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18872 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18873 int UNUSED written = 0;
18874 IADDR UNUSED pc = abuf->addr;
18875 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18879 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)));
18880 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18881 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18884 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))));
18885 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18886 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18894 /* fdsads: fdsads$pack $FRi,$FRj,$FRk */
18897 SEM_FN_NAME (frvbf,fdsads) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18899 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18900 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18901 int UNUSED written = 0;
18902 IADDR UNUSED pc = abuf->addr;
18903 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18907 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)));
18908 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18909 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18912 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))));
18913 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18914 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18922 /* fdmulcs: fdmulcs$pack $FRi,$FRj,$FRk */
18925 SEM_FN_NAME (frvbf,fdmulcs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18927 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18928 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18929 int UNUSED written = 0;
18930 IADDR UNUSED pc = abuf->addr;
18931 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18935 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))));
18936 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18937 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18940 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)));
18941 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18942 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18950 /* nfdmulcs: nfdmulcs$pack $FRi,$FRj,$FRk */
18953 SEM_FN_NAME (frvbf,nfdmulcs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18955 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18956 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18957 int UNUSED written = 0;
18958 IADDR UNUSED pc = abuf->addr;
18959 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18962 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18964 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))));
18965 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18966 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18968 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18970 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)));
18971 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18972 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18980 /* nfdadds: nfdadds$pack $FRi,$FRj,$FRk */
18983 SEM_FN_NAME (frvbf,nfdadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18985 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18986 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18987 int UNUSED written = 0;
18988 IADDR UNUSED pc = abuf->addr;
18989 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18992 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18994 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)));
18995 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18996 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18998 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
19000 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))));
19001 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
19002 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
19010 /* nfdsubs: nfdsubs$pack $FRi,$FRj,$FRk */
19013 SEM_FN_NAME (frvbf,nfdsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19015 #define FLD(f) abuf->fields.sfmt_fdmadds.f
19016 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19017 int UNUSED written = 0;
19018 IADDR UNUSED pc = abuf->addr;
19019 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19022 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
19024 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)));
19025 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
19026 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
19028 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
19030 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))));
19031 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
19032 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
19040 /* nfdmuls: nfdmuls$pack $FRi,$FRj,$FRk */
19043 SEM_FN_NAME (frvbf,nfdmuls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19045 #define FLD(f) abuf->fields.sfmt_fdmadds.f
19046 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19047 int UNUSED written = 0;
19048 IADDR UNUSED pc = abuf->addr;
19049 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19052 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
19054 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)));
19055 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
19056 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
19058 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
19060 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))));
19061 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
19062 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
19070 /* nfddivs: nfddivs$pack $FRi,$FRj,$FRk */
19073 SEM_FN_NAME (frvbf,nfddivs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19075 #define FLD(f) abuf->fields.sfmt_fdmadds.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 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
19084 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)));
19085 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
19086 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
19088 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
19090 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))));
19091 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
19092 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
19100 /* nfdsads: nfdsads$pack $FRi,$FRj,$FRk */
19103 SEM_FN_NAME (frvbf,nfdsads) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19105 #define FLD(f) abuf->fields.sfmt_fdmadds.f
19106 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19107 int UNUSED written = 0;
19108 IADDR UNUSED pc = abuf->addr;
19109 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19112 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
19114 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)));
19115 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
19116 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
19118 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
19120 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))));
19121 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
19122 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
19130 /* nfdcmps: nfdcmps$pack $FRi,$FRj,$FCCi_2 */
19133 SEM_FN_NAME (frvbf,nfdcmps) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19135 #define FLD(f) abuf->fields.sfmt_nfdcmps.f
19136 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19137 int UNUSED written = 0;
19138 IADDR UNUSED pc = abuf->addr;
19139 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19142 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
19143 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)))) {
19146 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
19147 written |= (1 << 8);
19148 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
19151 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)))) {
19154 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
19155 written |= (1 << 8);
19156 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
19159 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)))) {
19162 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
19163 written |= (1 << 8);
19164 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
19169 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
19170 written |= (1 << 8);
19171 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
19176 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
19177 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))))) {
19180 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCi_2)) + (1))]), opval);
19181 written |= (1 << 9);
19182 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
19185 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))))) {
19188 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCi_2)) + (1))]), opval);
19189 written |= (1 << 9);
19190 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
19193 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))))) {
19196 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCi_2)) + (1))]), opval);
19197 written |= (1 << 9);
19198 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
19203 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCi_2)) + (1))]), opval);
19204 written |= (1 << 9);
19205 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
19212 abuf->written = written;
19217 /* mhsetlos: mhsetlos$pack $u12,$FRklo */
19220 SEM_FN_NAME (frvbf,mhsetlos) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19222 #define FLD(f) abuf->fields.sfmt_mhsetlos.f
19223 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19224 int UNUSED written = 0;
19225 IADDR UNUSED pc = abuf->addr;
19226 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19229 UHI opval = FLD (f_u12);
19230 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, FLD (f_FRk), opval);
19231 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19238 /* mhsethis: mhsethis$pack $u12,$FRkhi */
19241 SEM_FN_NAME (frvbf,mhsethis) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19243 #define FLD(f) abuf->fields.sfmt_mhsethis.f
19244 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19245 int UNUSED written = 0;
19246 IADDR UNUSED pc = abuf->addr;
19247 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19250 UHI opval = FLD (f_u12);
19251 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, FLD (f_FRk), opval);
19252 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19259 /* mhdsets: mhdsets$pack $u12,$FRintk */
19262 SEM_FN_NAME (frvbf,mhdsets) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19264 #define FLD(f) abuf->fields.sfmt_mhdsets.f
19265 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19266 int UNUSED written = 0;
19267 IADDR UNUSED pc = abuf->addr;
19268 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19272 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
19273 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19274 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19277 UHI opval = FLD (f_u12);
19278 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19279 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19282 UHI opval = FLD (f_u12);
19283 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19284 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19292 /* mhsetloh: mhsetloh$pack $s5,$FRklo */
19295 SEM_FN_NAME (frvbf,mhsetloh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19297 #define FLD(f) abuf->fields.sfmt_mhsetloh.f
19298 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19299 int UNUSED written = 0;
19300 IADDR UNUSED pc = abuf->addr;
19301 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19305 tmp_tmp = GET_H_FR_LO (FLD (f_FRk));
19306 tmp_tmp = ANDHI (tmp_tmp, 2047);
19307 tmp_tmp = ORHI (tmp_tmp, SLLSI (ANDSI (FLD (f_s5), 31), 11));
19309 UHI opval = tmp_tmp;
19310 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, FLD (f_FRk), opval);
19311 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19319 /* mhsethih: mhsethih$pack $s5,$FRkhi */
19322 SEM_FN_NAME (frvbf,mhsethih) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19324 #define FLD(f) abuf->fields.sfmt_mhsethih.f
19325 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19326 int UNUSED written = 0;
19327 IADDR UNUSED pc = abuf->addr;
19328 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19332 tmp_tmp = GET_H_FR_HI (FLD (f_FRk));
19333 tmp_tmp = ANDHI (tmp_tmp, 2047);
19334 tmp_tmp = ORHI (tmp_tmp, SLLSI (ANDSI (FLD (f_s5), 31), 11));
19336 UHI opval = tmp_tmp;
19337 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, FLD (f_FRk), opval);
19338 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19346 /* mhdseth: mhdseth$pack $s5,$FRintk */
19349 SEM_FN_NAME (frvbf,mhdseth) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19351 #define FLD(f) abuf->fields.sfmt_mhdseth.f
19352 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19353 int UNUSED written = 0;
19354 IADDR UNUSED pc = abuf->addr;
19355 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19359 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
19360 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19361 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19365 tmp_tmp = GET_H_FR_HI (((FLD (f_FRk)) + (0)));
19366 tmp_tmp = ANDHI (tmp_tmp, 2047);
19367 tmp_tmp = ORHI (tmp_tmp, SLLSI (ANDSI (FLD (f_s5), 31), 11));
19369 UHI opval = tmp_tmp;
19370 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19371 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19376 tmp_tmp = GET_H_FR_LO (((FLD (f_FRk)) + (0)));
19377 tmp_tmp = ANDHI (tmp_tmp, 2047);
19378 tmp_tmp = ORHI (tmp_tmp, SLLSI (ANDSI (FLD (f_s5), 31), 11));
19380 UHI opval = tmp_tmp;
19381 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19382 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19391 /* mand: mand$pack $FRinti,$FRintj,$FRintk */
19394 SEM_FN_NAME (frvbf,mand) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19396 #define FLD(f) abuf->fields.sfmt_mwcut.f
19397 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19398 int UNUSED written = 0;
19399 IADDR UNUSED pc = abuf->addr;
19400 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19403 SI opval = ANDSI (GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
19404 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19405 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19412 /* mor: mor$pack $FRinti,$FRintj,$FRintk */
19415 SEM_FN_NAME (frvbf,mor) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19417 #define FLD(f) abuf->fields.sfmt_mwcut.f
19418 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19419 int UNUSED written = 0;
19420 IADDR UNUSED pc = abuf->addr;
19421 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19424 SI opval = ORSI (GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
19425 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19426 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19433 /* mxor: mxor$pack $FRinti,$FRintj,$FRintk */
19436 SEM_FN_NAME (frvbf,mxor) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19438 #define FLD(f) abuf->fields.sfmt_mwcut.f
19439 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19440 int UNUSED written = 0;
19441 IADDR UNUSED pc = abuf->addr;
19442 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19445 SI opval = XORSI (GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
19446 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19447 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19454 /* cmand: cmand$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
19457 SEM_FN_NAME (frvbf,cmand) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19459 #define FLD(f) abuf->fields.sfmt_cmand.f
19460 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19461 int UNUSED written = 0;
19462 IADDR UNUSED pc = abuf->addr;
19463 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19465 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
19467 SI opval = ANDSI (GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
19468 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19469 written |= (1 << 4);
19470 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19474 abuf->written = written;
19479 /* cmor: cmor$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
19482 SEM_FN_NAME (frvbf,cmor) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19484 #define FLD(f) abuf->fields.sfmt_cmand.f
19485 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19486 int UNUSED written = 0;
19487 IADDR UNUSED pc = abuf->addr;
19488 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19490 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
19492 SI opval = ORSI (GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
19493 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19494 written |= (1 << 4);
19495 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19499 abuf->written = written;
19504 /* cmxor: cmxor$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
19507 SEM_FN_NAME (frvbf,cmxor) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19509 #define FLD(f) abuf->fields.sfmt_cmand.f
19510 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19511 int UNUSED written = 0;
19512 IADDR UNUSED pc = abuf->addr;
19513 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19515 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
19517 SI opval = XORSI (GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
19518 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19519 written |= (1 << 4);
19520 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19524 abuf->written = written;
19529 /* mnot: mnot$pack $FRintj,$FRintk */
19532 SEM_FN_NAME (frvbf,mnot) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19534 #define FLD(f) abuf->fields.sfmt_mcut.f
19535 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19536 int UNUSED written = 0;
19537 IADDR UNUSED pc = abuf->addr;
19538 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19541 SI opval = INVSI (GET_H_FR_INT (FLD (f_FRj)));
19542 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19543 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19550 /* cmnot: cmnot$pack $FRintj,$FRintk,$CCi,$cond */
19553 SEM_FN_NAME (frvbf,cmnot) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19555 #define FLD(f) abuf->fields.sfmt_cmand.f
19556 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19557 int UNUSED written = 0;
19558 IADDR UNUSED pc = abuf->addr;
19559 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19561 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
19563 SI opval = INVSI (GET_H_FR_INT (FLD (f_FRj)));
19564 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19565 written |= (1 << 3);
19566 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19570 abuf->written = written;
19575 /* mrotli: mrotli$pack $FRinti,$u6,$FRintk */
19578 SEM_FN_NAME (frvbf,mrotli) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19580 #define FLD(f) abuf->fields.sfmt_mwcuti.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);
19587 SI opval = ROLSI (GET_H_FR_INT (FLD (f_FRi)), ANDSI (FLD (f_u6), 31));
19588 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19589 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19596 /* mrotri: mrotri$pack $FRinti,$u6,$FRintk */
19599 SEM_FN_NAME (frvbf,mrotri) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19601 #define FLD(f) abuf->fields.sfmt_mwcuti.f
19602 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19603 int UNUSED written = 0;
19604 IADDR UNUSED pc = abuf->addr;
19605 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19608 SI opval = RORSI (GET_H_FR_INT (FLD (f_FRi)), ANDSI (FLD (f_u6), 31));
19609 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19610 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19617 /* mwcut: mwcut$pack $FRinti,$FRintj,$FRintk */
19620 SEM_FN_NAME (frvbf,mwcut) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19622 #define FLD(f) abuf->fields.sfmt_mwcut.f
19623 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19624 int UNUSED written = 0;
19625 IADDR UNUSED pc = abuf->addr;
19626 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19629 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)));
19630 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19631 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19638 /* mwcuti: mwcuti$pack $FRinti,$u6,$FRintk */
19641 SEM_FN_NAME (frvbf,mwcuti) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19643 #define FLD(f) abuf->fields.sfmt_mwcuti.f
19644 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19645 int UNUSED written = 0;
19646 IADDR UNUSED pc = abuf->addr;
19647 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19650 SI opval = frvbf_cut (current_cpu, GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (((FLD (f_FRi)) + (1))), FLD (f_u6));
19651 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19652 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19659 /* mcut: mcut$pack $ACC40Si,$FRintj,$FRintk */
19662 SEM_FN_NAME (frvbf,mcut) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19664 #define FLD(f) abuf->fields.sfmt_mcut.f
19665 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19666 int UNUSED written = 0;
19667 IADDR UNUSED pc = abuf->addr;
19668 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19671 SI opval = frvbf_media_cut (current_cpu, GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_FR_INT (FLD (f_FRj)));
19672 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19673 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19680 /* mcuti: mcuti$pack $ACC40Si,$s6,$FRintk */
19683 SEM_FN_NAME (frvbf,mcuti) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19685 #define FLD(f) abuf->fields.sfmt_mcuti.f
19686 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19687 int UNUSED written = 0;
19688 IADDR UNUSED pc = abuf->addr;
19689 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19692 SI opval = frvbf_media_cut (current_cpu, GET_H_ACC40S (FLD (f_ACC40Si)), FLD (f_s6));
19693 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19694 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19701 /* mcutss: mcutss$pack $ACC40Si,$FRintj,$FRintk */
19704 SEM_FN_NAME (frvbf,mcutss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19706 #define FLD(f) abuf->fields.sfmt_mcut.f
19707 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19708 int UNUSED written = 0;
19709 IADDR UNUSED pc = abuf->addr;
19710 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19713 SI opval = frvbf_media_cut_ss (current_cpu, GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_FR_INT (FLD (f_FRj)));
19714 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19715 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19722 /* mcutssi: mcutssi$pack $ACC40Si,$s6,$FRintk */
19725 SEM_FN_NAME (frvbf,mcutssi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19727 #define FLD(f) abuf->fields.sfmt_mcuti.f
19728 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19729 int UNUSED written = 0;
19730 IADDR UNUSED pc = abuf->addr;
19731 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19734 SI opval = frvbf_media_cut_ss (current_cpu, GET_H_ACC40S (FLD (f_ACC40Si)), FLD (f_s6));
19735 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19736 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19743 /* mdcutssi: mdcutssi$pack $ACC40Si,$s6,$FRintkeven */
19746 SEM_FN_NAME (frvbf,mdcutssi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19748 #define FLD(f) abuf->fields.sfmt_mdcutssi.f
19749 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19750 int UNUSED written = 0;
19751 IADDR UNUSED pc = abuf->addr;
19752 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19754 if (ANDSI (FLD (f_ACC40Si), SUBSI (2, 1))) {
19755 frvbf_media_acc_not_aligned (current_cpu);
19757 if (ANDSI (FLD (f_FRk), SUBSI (2, 1))) {
19758 frvbf_media_register_not_aligned (current_cpu);
19762 SI opval = frvbf_media_cut_ss (current_cpu, GET_H_ACC40S (FLD (f_ACC40Si)), FLD (f_s6));
19763 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19764 written |= (1 << 5);
19765 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19768 USI opval = frvbf_media_cut_ss (current_cpu, GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))), FLD (f_s6));
19769 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
19770 written |= (1 << 6);
19771 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19777 abuf->written = written;
19782 /* maveh: maveh$pack $FRinti,$FRintj,$FRintk */
19785 SEM_FN_NAME (frvbf,maveh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19787 #define FLD(f) abuf->fields.sfmt_mwcut.f
19788 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19789 int UNUSED written = 0;
19790 IADDR UNUSED pc = abuf->addr;
19791 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19794 SI opval = frvbf_media_average (current_cpu, GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
19795 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19796 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19803 /* msllhi: msllhi$pack $FRinti,$u6,$FRintk */
19806 SEM_FN_NAME (frvbf,msllhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19808 #define FLD(f) abuf->fields.sfmt_msllhi.f
19809 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19810 int UNUSED written = 0;
19811 IADDR UNUSED pc = abuf->addr;
19812 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19816 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
19817 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
19818 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19821 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
19822 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19823 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19826 UHI opval = SLLHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), ANDSI (FLD (f_u6), 15));
19827 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19828 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19831 UHI opval = SLLHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), ANDSI (FLD (f_u6), 15));
19832 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19833 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19841 /* msrlhi: msrlhi$pack $FRinti,$u6,$FRintk */
19844 SEM_FN_NAME (frvbf,msrlhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19846 #define FLD(f) abuf->fields.sfmt_msllhi.f
19847 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19848 int UNUSED written = 0;
19849 IADDR UNUSED pc = abuf->addr;
19850 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19854 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
19855 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
19856 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19859 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
19860 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19861 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19864 UHI opval = SRLHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), ANDSI (FLD (f_u6), 15));
19865 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19866 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19869 UHI opval = SRLHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), ANDSI (FLD (f_u6), 15));
19870 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19871 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19879 /* msrahi: msrahi$pack $FRinti,$u6,$FRintk */
19882 SEM_FN_NAME (frvbf,msrahi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19884 #define FLD(f) abuf->fields.sfmt_msllhi.f
19885 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19886 int UNUSED written = 0;
19887 IADDR UNUSED pc = abuf->addr;
19888 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19892 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
19893 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
19894 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19897 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
19898 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19899 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19902 UHI opval = SRAHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), ANDSI (FLD (f_u6), 15));
19903 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19904 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19907 UHI opval = SRAHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), ANDSI (FLD (f_u6), 15));
19908 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19909 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19917 /* mdrotli: mdrotli$pack $FRintieven,$s6,$FRintkeven */
19920 SEM_FN_NAME (frvbf,mdrotli) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19922 #define FLD(f) abuf->fields.sfmt_mdrotli.f
19923 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19924 int UNUSED written = 0;
19925 IADDR UNUSED pc = abuf->addr;
19926 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19928 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1)))) {
19929 frvbf_media_register_not_aligned (current_cpu);
19933 SI opval = ROLSI (GET_H_FR_INT (FLD (f_FRi)), ANDSI (FLD (f_s6), 31));
19934 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19935 written |= (1 << 5);
19936 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19939 USI opval = ROLSI (GET_H_FR_INT (((FLD (f_FRi)) + (1))), ANDSI (FLD (f_s6), 31));
19940 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
19941 written |= (1 << 6);
19942 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19947 abuf->written = written;
19952 /* mcplhi: mcplhi$pack $FRinti,$u6,$FRintk */
19955 SEM_FN_NAME (frvbf,mcplhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19957 #define FLD(f) abuf->fields.sfmt_mcplhi.f
19958 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19959 int UNUSED written = 0;
19960 IADDR UNUSED pc = abuf->addr;
19961 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19968 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
19969 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
19970 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19973 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
19974 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19975 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19977 tmp_shift = ANDSI (FLD (f_u6), 15);
19978 tmp_arg1 = SLLHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), tmp_shift);
19979 if (NEHI (tmp_shift, 0)) {
19981 tmp_arg2 = GET_H_FR_HI (((FLD (f_FRi)) + (1)));
19982 tmp_arg2 = SRLHI (SLLHI (tmp_arg2, SUBSI (15, tmp_shift)), SUBSI (15, tmp_shift));
19983 tmp_arg1 = ORHI (tmp_arg1, tmp_arg2);
19987 UHI opval = tmp_arg1;
19988 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19989 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19997 /* mcpli: mcpli$pack $FRinti,$u6,$FRintk */
20000 SEM_FN_NAME (frvbf,mcpli) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20002 #define FLD(f) abuf->fields.sfmt_mwcuti.f
20003 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20004 int UNUSED written = 0;
20005 IADDR UNUSED pc = abuf->addr;
20006 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20011 tmp_shift = ANDSI (FLD (f_u6), 31);
20012 tmp_tmp = SLLSI (GET_H_FR_INT (FLD (f_FRi)), tmp_shift);
20013 if (NESI (tmp_shift, 0)) {
20016 tmp_tmp1 = SRLSI (SLLSI (GET_H_FR_INT (((FLD (f_FRi)) + (1))), SUBSI (31, tmp_shift)), SUBSI (31, tmp_shift));
20017 tmp_tmp = ORSI (tmp_tmp, tmp_tmp1);
20021 SI opval = tmp_tmp;
20022 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
20023 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
20031 /* msaths: msaths$pack $FRinti,$FRintj,$FRintk */
20034 SEM_FN_NAME (frvbf,msaths) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20036 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20037 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20038 int UNUSED written = 0;
20039 IADDR UNUSED pc = abuf->addr;
20040 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20048 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20049 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20050 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20051 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20053 if (GTHI (tmp_argihi, tmp_argjhi)) {
20055 UHI opval = tmp_argjhi;
20056 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20057 written |= (1 << 9);
20058 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20061 if (LTHI (tmp_argihi, INVHI (tmp_argjhi))) {
20063 UHI opval = INVHI (tmp_argjhi);
20064 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20065 written |= (1 << 9);
20066 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20070 UHI opval = tmp_argihi;
20071 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20072 written |= (1 << 9);
20073 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20077 if (GTHI (tmp_argilo, tmp_argjlo)) {
20079 UHI opval = tmp_argjlo;
20080 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20081 written |= (1 << 10);
20082 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20085 if (LTHI (tmp_argilo, INVHI (tmp_argjlo))) {
20087 UHI opval = INVHI (tmp_argjlo);
20088 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20089 written |= (1 << 10);
20090 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20094 UHI opval = tmp_argilo;
20095 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20096 written |= (1 << 10);
20097 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20103 abuf->written = written;
20108 /* mqsaths: mqsaths$pack $FRintieven,$FRintjeven,$FRintkeven */
20111 SEM_FN_NAME (frvbf,mqsaths) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20113 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
20114 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20115 int UNUSED written = 0;
20116 IADDR UNUSED pc = abuf->addr;
20117 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20119 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
20120 frvbf_media_register_not_aligned (current_cpu);
20128 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
20129 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
20130 written |= (1 << 14);
20131 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
20134 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20135 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20136 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20137 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20139 if (GTHI (tmp_argihi, tmp_argjhi)) {
20141 UHI opval = tmp_argjhi;
20142 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20143 written |= (1 << 15);
20144 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20147 if (LTHI (tmp_argihi, INVHI (tmp_argjhi))) {
20149 UHI opval = INVHI (tmp_argjhi);
20150 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20151 written |= (1 << 15);
20152 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20156 UHI opval = tmp_argihi;
20157 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20158 written |= (1 << 15);
20159 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20163 if (GTHI (tmp_argilo, tmp_argjlo)) {
20165 UHI opval = tmp_argjlo;
20166 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20167 written |= (1 << 17);
20168 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20171 if (LTHI (tmp_argilo, INVHI (tmp_argjlo))) {
20173 UHI opval = INVHI (tmp_argjlo);
20174 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20175 written |= (1 << 17);
20176 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20180 UHI opval = tmp_argilo;
20181 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20182 written |= (1 << 17);
20183 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20188 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20189 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20190 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20191 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20193 if (GTHI (tmp_argihi, tmp_argjhi)) {
20195 UHI opval = tmp_argjhi;
20196 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
20197 written |= (1 << 16);
20198 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20201 if (LTHI (tmp_argihi, INVHI (tmp_argjhi))) {
20203 UHI opval = INVHI (tmp_argjhi);
20204 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
20205 written |= (1 << 16);
20206 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20210 UHI opval = tmp_argihi;
20211 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
20212 written |= (1 << 16);
20213 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20217 if (GTHI (tmp_argilo, tmp_argjlo)) {
20219 UHI opval = tmp_argjlo;
20220 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
20221 written |= (1 << 18);
20222 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20225 if (LTHI (tmp_argilo, INVHI (tmp_argjlo))) {
20227 UHI opval = INVHI (tmp_argjlo);
20228 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
20229 written |= (1 << 18);
20230 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20234 UHI opval = tmp_argilo;
20235 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
20236 written |= (1 << 18);
20237 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20244 abuf->written = written;
20249 /* msathu: msathu$pack $FRinti,$FRintj,$FRintk */
20252 SEM_FN_NAME (frvbf,msathu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20254 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20255 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20256 int UNUSED written = 0;
20257 IADDR UNUSED pc = abuf->addr;
20258 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20266 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20267 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20268 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20269 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20271 if (GTUHI (tmp_argihi, tmp_argjhi)) {
20273 UHI opval = tmp_argjhi;
20274 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20275 written |= (1 << 9);
20276 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20280 UHI opval = tmp_argihi;
20281 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20282 written |= (1 << 9);
20283 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20286 if (GTUHI (tmp_argilo, tmp_argjlo)) {
20288 UHI opval = tmp_argjlo;
20289 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20290 written |= (1 << 10);
20291 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20295 UHI opval = tmp_argilo;
20296 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20297 written |= (1 << 10);
20298 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20303 abuf->written = written;
20308 /* mcmpsh: mcmpsh$pack $FRinti,$FRintj,$FCCk */
20311 SEM_FN_NAME (frvbf,mcmpsh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20313 #define FLD(f) abuf->fields.sfmt_mcmpsh.f
20314 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20315 int UNUSED written = 0;
20316 IADDR UNUSED pc = abuf->addr;
20317 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20319 if (ANDSI (FLD (f_FCCk), SUBSI (2, 1))) {
20320 frvbf_media_cr_not_aligned (current_cpu);
20328 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20329 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20330 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20331 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20333 if (GTHI (tmp_argihi, tmp_argjhi)) {
20336 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20337 written |= (1 << 9);
20338 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20341 if (EQHI (tmp_argihi, tmp_argjhi)) {
20344 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20345 written |= (1 << 9);
20346 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20349 if (LTHI (tmp_argihi, tmp_argjhi)) {
20352 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20353 written |= (1 << 9);
20354 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20359 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20360 written |= (1 << 9);
20361 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20366 if (GTHI (tmp_argilo, tmp_argjlo)) {
20369 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCk)) + (1))]), opval);
20370 written |= (1 << 10);
20371 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20374 if (EQHI (tmp_argilo, tmp_argjlo)) {
20377 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCk)) + (1))]), opval);
20378 written |= (1 << 10);
20379 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20382 if (LTHI (tmp_argilo, tmp_argjlo)) {
20385 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCk)) + (1))]), opval);
20386 written |= (1 << 10);
20387 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20392 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCk)) + (1))]), opval);
20393 written |= (1 << 10);
20394 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20402 abuf->written = written;
20407 /* mcmpuh: mcmpuh$pack $FRinti,$FRintj,$FCCk */
20410 SEM_FN_NAME (frvbf,mcmpuh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20412 #define FLD(f) abuf->fields.sfmt_mcmpsh.f
20413 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20414 int UNUSED written = 0;
20415 IADDR UNUSED pc = abuf->addr;
20416 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20418 if (ANDSI (FLD (f_FCCk), SUBSI (2, 1))) {
20419 frvbf_media_cr_not_aligned (current_cpu);
20427 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20428 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20429 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20430 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20432 if (GTUHI (tmp_argihi, tmp_argjhi)) {
20435 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20436 written |= (1 << 9);
20437 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20440 if (EQHI (tmp_argihi, tmp_argjhi)) {
20443 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20444 written |= (1 << 9);
20445 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20448 if (LTUHI (tmp_argihi, tmp_argjhi)) {
20451 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20452 written |= (1 << 9);
20453 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20458 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20459 written |= (1 << 9);
20460 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20465 if (GTUHI (tmp_argilo, tmp_argjlo)) {
20468 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCk)) + (1))]), opval);
20469 written |= (1 << 10);
20470 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20473 if (EQHI (tmp_argilo, tmp_argjlo)) {
20476 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCk)) + (1))]), opval);
20477 written |= (1 << 10);
20478 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20481 if (LTUHI (tmp_argilo, tmp_argjlo)) {
20484 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCk)) + (1))]), opval);
20485 written |= (1 << 10);
20486 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20491 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCk)) + (1))]), opval);
20492 written |= (1 << 10);
20493 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20501 abuf->written = written;
20506 /* mabshs: mabshs$pack $FRintj,$FRintk */
20509 SEM_FN_NAME (frvbf,mabshs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20511 #define FLD(f) abuf->fields.sfmt_mabshs.f
20512 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20513 int UNUSED written = 0;
20514 IADDR UNUSED pc = abuf->addr;
20515 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20521 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
20522 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
20523 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
20526 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
20527 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
20528 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
20530 tmp_arghi = GET_H_FR_HI (((FLD (f_FRj)) + (0)));
20531 tmp_arglo = GET_H_FR_LO (((FLD (f_FRj)) + (0)));
20532 if (GTDI (ABSHI (tmp_arghi), 32767)) {
20536 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20537 written |= (1 << 8);
20538 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20540 frvbf_media_overflow (current_cpu, 8);
20543 if (LTDI (ABSHI (tmp_arghi), -32768)) {
20546 UHI opval = -32768;
20547 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20548 written |= (1 << 8);
20549 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20551 frvbf_media_overflow (current_cpu, 8);
20555 UHI opval = ABSHI (tmp_arghi);
20556 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20557 written |= (1 << 8);
20558 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20562 if (GTDI (ABSHI (tmp_arglo), 32767)) {
20566 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20567 written |= (1 << 9);
20568 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20570 frvbf_media_overflow (current_cpu, 4);
20573 if (LTDI (ABSHI (tmp_arglo), -32768)) {
20576 UHI opval = -32768;
20577 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20578 written |= (1 << 9);
20579 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20581 frvbf_media_overflow (current_cpu, 4);
20585 UHI opval = ABSHI (tmp_arglo);
20586 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20587 written |= (1 << 9);
20588 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20594 abuf->written = written;
20599 /* maddhss: maddhss$pack $FRinti,$FRintj,$FRintk */
20602 SEM_FN_NAME (frvbf,maddhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20604 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20605 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20606 int UNUSED written = 0;
20607 IADDR UNUSED pc = abuf->addr;
20608 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20616 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20617 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20618 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20619 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20623 tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
20624 if (GTDI (tmp_tmp, 32767)) {
20628 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20629 written |= (1 << 9);
20630 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20632 frvbf_media_overflow (current_cpu, 8);
20635 if (LTDI (tmp_tmp, -32768)) {
20638 UHI opval = -32768;
20639 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20640 written |= (1 << 9);
20641 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20643 frvbf_media_overflow (current_cpu, 8);
20647 UHI opval = tmp_tmp;
20648 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20649 written |= (1 << 9);
20650 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20657 tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
20658 if (GTDI (tmp_tmp, 32767)) {
20662 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20663 written |= (1 << 10);
20664 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20666 frvbf_media_overflow (current_cpu, 4);
20669 if (LTDI (tmp_tmp, -32768)) {
20672 UHI opval = -32768;
20673 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20674 written |= (1 << 10);
20675 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20677 frvbf_media_overflow (current_cpu, 4);
20681 UHI opval = tmp_tmp;
20682 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20683 written |= (1 << 10);
20684 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20691 abuf->written = written;
20696 /* maddhus: maddhus$pack $FRinti,$FRintj,$FRintk */
20699 SEM_FN_NAME (frvbf,maddhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20701 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20702 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20703 int UNUSED written = 0;
20704 IADDR UNUSED pc = abuf->addr;
20705 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20713 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20714 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20715 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20716 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20720 tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
20721 if (GTDI (tmp_tmp, 65535)) {
20725 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20726 written |= (1 << 9);
20727 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20729 frvbf_media_overflow (current_cpu, 8);
20732 if (LTDI (tmp_tmp, 0)) {
20736 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20737 written |= (1 << 9);
20738 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20740 frvbf_media_overflow (current_cpu, 8);
20744 UHI opval = tmp_tmp;
20745 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20746 written |= (1 << 9);
20747 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20754 tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
20755 if (GTDI (tmp_tmp, 65535)) {
20759 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20760 written |= (1 << 10);
20761 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20763 frvbf_media_overflow (current_cpu, 4);
20766 if (LTDI (tmp_tmp, 0)) {
20770 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20771 written |= (1 << 10);
20772 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20774 frvbf_media_overflow (current_cpu, 4);
20778 UHI opval = tmp_tmp;
20779 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20780 written |= (1 << 10);
20781 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20788 abuf->written = written;
20793 /* msubhss: msubhss$pack $FRinti,$FRintj,$FRintk */
20796 SEM_FN_NAME (frvbf,msubhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20798 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20799 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20800 int UNUSED written = 0;
20801 IADDR UNUSED pc = abuf->addr;
20802 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20810 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20811 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20812 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20813 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20817 tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
20818 if (GTDI (tmp_tmp, 32767)) {
20822 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20823 written |= (1 << 9);
20824 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20826 frvbf_media_overflow (current_cpu, 8);
20829 if (LTDI (tmp_tmp, -32768)) {
20832 UHI opval = -32768;
20833 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20834 written |= (1 << 9);
20835 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20837 frvbf_media_overflow (current_cpu, 8);
20841 UHI opval = tmp_tmp;
20842 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20843 written |= (1 << 9);
20844 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20851 tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
20852 if (GTDI (tmp_tmp, 32767)) {
20856 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20857 written |= (1 << 10);
20858 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20860 frvbf_media_overflow (current_cpu, 4);
20863 if (LTDI (tmp_tmp, -32768)) {
20866 UHI opval = -32768;
20867 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20868 written |= (1 << 10);
20869 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20871 frvbf_media_overflow (current_cpu, 4);
20875 UHI opval = tmp_tmp;
20876 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20877 written |= (1 << 10);
20878 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20885 abuf->written = written;
20890 /* msubhus: msubhus$pack $FRinti,$FRintj,$FRintk */
20893 SEM_FN_NAME (frvbf,msubhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20895 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20896 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20897 int UNUSED written = 0;
20898 IADDR UNUSED pc = abuf->addr;
20899 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20907 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20908 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20909 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20910 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20914 tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
20915 if (GTDI (tmp_tmp, 65535)) {
20919 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20920 written |= (1 << 9);
20921 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20923 frvbf_media_overflow (current_cpu, 8);
20926 if (LTDI (tmp_tmp, 0)) {
20930 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20931 written |= (1 << 9);
20932 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20934 frvbf_media_overflow (current_cpu, 8);
20938 UHI opval = tmp_tmp;
20939 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20940 written |= (1 << 9);
20941 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20948 tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
20949 if (GTDI (tmp_tmp, 65535)) {
20953 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20954 written |= (1 << 10);
20955 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20957 frvbf_media_overflow (current_cpu, 4);
20960 if (LTDI (tmp_tmp, 0)) {
20964 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20965 written |= (1 << 10);
20966 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20968 frvbf_media_overflow (current_cpu, 4);
20972 UHI opval = tmp_tmp;
20973 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20974 written |= (1 << 10);
20975 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20982 abuf->written = written;
20987 /* cmaddhss: cmaddhss$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
20990 SEM_FN_NAME (frvbf,cmaddhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20992 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20993 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20994 int UNUSED written = 0;
20995 IADDR UNUSED pc = abuf->addr;
20996 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20998 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
21005 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21006 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21007 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21008 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21012 tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
21013 if (GTDI (tmp_tmp, 32767)) {
21017 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21018 written |= (1 << 11);
21019 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21021 frvbf_media_overflow (current_cpu, 8);
21024 if (LTDI (tmp_tmp, -32768)) {
21027 UHI opval = -32768;
21028 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21029 written |= (1 << 11);
21030 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21032 frvbf_media_overflow (current_cpu, 8);
21036 UHI opval = tmp_tmp;
21037 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21038 written |= (1 << 11);
21039 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21046 tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
21047 if (GTDI (tmp_tmp, 32767)) {
21051 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21052 written |= (1 << 12);
21053 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21055 frvbf_media_overflow (current_cpu, 4);
21058 if (LTDI (tmp_tmp, -32768)) {
21061 UHI opval = -32768;
21062 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21063 written |= (1 << 12);
21064 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21066 frvbf_media_overflow (current_cpu, 4);
21070 UHI opval = tmp_tmp;
21071 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21072 written |= (1 << 12);
21073 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21081 abuf->written = written;
21086 /* cmaddhus: cmaddhus$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
21089 SEM_FN_NAME (frvbf,cmaddhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
21091 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
21092 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
21093 int UNUSED written = 0;
21094 IADDR UNUSED pc = abuf->addr;
21095 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
21097 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
21104 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21105 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21106 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21107 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21111 tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
21112 if (GTDI (tmp_tmp, 65535)) {
21116 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21117 written |= (1 << 11);
21118 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21120 frvbf_media_overflow (current_cpu, 8);
21123 if (LTDI (tmp_tmp, 0)) {
21127 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21128 written |= (1 << 11);
21129 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21131 frvbf_media_overflow (current_cpu, 8);
21135 UHI opval = tmp_tmp;
21136 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21137 written |= (1 << 11);
21138 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21145 tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
21146 if (GTDI (tmp_tmp, 65535)) {
21150 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21151 written |= (1 << 12);
21152 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21154 frvbf_media_overflow (current_cpu, 4);
21157 if (LTDI (tmp_tmp, 0)) {
21161 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21162 written |= (1 << 12);
21163 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21165 frvbf_media_overflow (current_cpu, 4);
21169 UHI opval = tmp_tmp;
21170 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21171 written |= (1 << 12);
21172 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21180 abuf->written = written;
21185 /* cmsubhss: cmsubhss$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
21188 SEM_FN_NAME (frvbf,cmsubhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
21190 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
21191 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
21192 int UNUSED written = 0;
21193 IADDR UNUSED pc = abuf->addr;
21194 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
21196 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
21203 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21204 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21205 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21206 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21210 tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
21211 if (GTDI (tmp_tmp, 32767)) {
21215 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21216 written |= (1 << 11);
21217 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21219 frvbf_media_overflow (current_cpu, 8);
21222 if (LTDI (tmp_tmp, -32768)) {
21225 UHI opval = -32768;
21226 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21227 written |= (1 << 11);
21228 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21230 frvbf_media_overflow (current_cpu, 8);
21234 UHI opval = tmp_tmp;
21235 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21236 written |= (1 << 11);
21237 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21244 tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
21245 if (GTDI (tmp_tmp, 32767)) {
21249 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21250 written |= (1 << 12);
21251 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21253 frvbf_media_overflow (current_cpu, 4);
21256 if (LTDI (tmp_tmp, -32768)) {
21259 UHI opval = -32768;
21260 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21261 written |= (1 << 12);
21262 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21264 frvbf_media_overflow (current_cpu, 4);
21268 UHI opval = tmp_tmp;
21269 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21270 written |= (1 << 12);
21271 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21279 abuf->written = written;
21284 /* cmsubhus: cmsubhus$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
21287 SEM_FN_NAME (frvbf,cmsubhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
21289 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
21290 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
21291 int UNUSED written = 0;
21292 IADDR UNUSED pc = abuf->addr;
21293 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
21295 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
21302 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21303 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21304 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21305 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21309 tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
21310 if (GTDI (tmp_tmp, 65535)) {
21314 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21315 written |= (1 << 11);
21316 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21318 frvbf_media_overflow (current_cpu, 8);
21321 if (LTDI (tmp_tmp, 0)) {
21325 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21326 written |= (1 << 11);
21327 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21329 frvbf_media_overflow (current_cpu, 8);
21333 UHI opval = tmp_tmp;
21334 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21335 written |= (1 << 11);
21336 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21343 tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
21344 if (GTDI (tmp_tmp, 65535)) {
21348 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21349 written |= (1 << 12);
21350 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21352 frvbf_media_overflow (current_cpu, 4);
21355 if (LTDI (tmp_tmp, 0)) {
21359 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21360 written |= (1 << 12);
21361 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21363 frvbf_media_overflow (current_cpu, 4);
21367 UHI opval = tmp_tmp;
21368 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21369 written |= (1 << 12);
21370 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21378 abuf->written = written;
21383 /* mqaddhss: mqaddhss$pack $FRintieven,$FRintjeven,$FRintkeven */
21386 SEM_FN_NAME (frvbf,mqaddhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
21388 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
21389 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
21390 int UNUSED written = 0;
21391 IADDR UNUSED pc = abuf->addr;
21392 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
21394 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
21395 frvbf_media_register_not_aligned (current_cpu);
21403 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
21404 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
21405 written |= (1 << 14);
21406 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
21409 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21410 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21411 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21412 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21416 tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
21417 if (GTDI (tmp_tmp, 32767)) {
21421 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21422 written |= (1 << 15);
21423 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21425 frvbf_media_overflow (current_cpu, 8);
21428 if (LTDI (tmp_tmp, -32768)) {
21431 UHI opval = -32768;
21432 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21433 written |= (1 << 15);
21434 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21436 frvbf_media_overflow (current_cpu, 8);
21440 UHI opval = tmp_tmp;
21441 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21442 written |= (1 << 15);
21443 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21450 tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
21451 if (GTDI (tmp_tmp, 32767)) {
21455 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21456 written |= (1 << 17);
21457 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21459 frvbf_media_overflow (current_cpu, 4);
21462 if (LTDI (tmp_tmp, -32768)) {
21465 UHI opval = -32768;
21466 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21467 written |= (1 << 17);
21468 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21470 frvbf_media_overflow (current_cpu, 4);
21474 UHI opval = tmp_tmp;
21475 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21476 written |= (1 << 17);
21477 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21483 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21484 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21485 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21486 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21490 tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
21491 if (GTDI (tmp_tmp, 32767)) {
21495 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21496 written |= (1 << 16);
21497 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21499 frvbf_media_overflow (current_cpu, 2);
21502 if (LTDI (tmp_tmp, -32768)) {
21505 UHI opval = -32768;
21506 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21507 written |= (1 << 16);
21508 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21510 frvbf_media_overflow (current_cpu, 2);
21514 UHI opval = tmp_tmp;
21515 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21516 written |= (1 << 16);
21517 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21524 tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
21525 if (GTDI (tmp_tmp, 32767)) {
21529 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21530 written |= (1 << 18);
21531 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21533 frvbf_media_overflow (current_cpu, 1);
21536 if (LTDI (tmp_tmp, -32768)) {
21539 UHI opval = -32768;
21540 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21541 written |= (1 << 18);
21542 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21544 frvbf_media_overflow (current_cpu, 1);
21548 UHI opval = tmp_tmp;
21549 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21550 written |= (1 << 18);
21551 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21559 abuf->written = written;
21564 /* mqaddhus: mqaddhus$pack $FRintieven,$FRintjeven,$FRintkeven */
21567 SEM_FN_NAME (frvbf,mqaddhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
21569 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
21570 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
21571 int UNUSED written = 0;
21572 IADDR UNUSED pc = abuf->addr;
21573 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
21575 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
21576 frvbf_media_register_not_aligned (current_cpu);
21584 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
21585 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
21586 written |= (1 << 14);
21587 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
21590 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21591 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21592 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21593 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21597 tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
21598 if (GTDI (tmp_tmp, 65535)) {
21602 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21603 written |= (1 << 15);
21604 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21606 frvbf_media_overflow (current_cpu, 8);
21609 if (LTDI (tmp_tmp, 0)) {
21613 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21614 written |= (1 << 15);
21615 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21617 frvbf_media_overflow (current_cpu, 8);
21621 UHI opval = tmp_tmp;
21622 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21623 written |= (1 << 15);
21624 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21631 tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
21632 if (GTDI (tmp_tmp, 65535)) {
21636 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21637 written |= (1 << 17);
21638 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21640 frvbf_media_overflow (current_cpu, 4);
21643 if (LTDI (tmp_tmp, 0)) {
21647 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21648 written |= (1 << 17);
21649 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21651 frvbf_media_overflow (current_cpu, 4);
21655 UHI opval = tmp_tmp;
21656 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21657 written |= (1 << 17);
21658 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21664 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21665 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21666 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21667 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21671 tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
21672 if (GTDI (tmp_tmp, 65535)) {
21676 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21677 written |= (1 << 16);
21678 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21680 frvbf_media_overflow (current_cpu, 2);
21683 if (LTDI (tmp_tmp, 0)) {
21687 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21688 written |= (1 << 16);
21689 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21691 frvbf_media_overflow (current_cpu, 2);
21695 UHI opval = tmp_tmp;
21696 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21697 written |= (1 << 16);
21698 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21705 tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
21706 if (GTDI (tmp_tmp, 65535)) {
21710 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21711 written |= (1 << 18);
21712 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21714 frvbf_media_overflow (current_cpu, 1);
21717 if (LTDI (tmp_tmp, 0)) {
21721 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21722 written |= (1 << 18);
21723 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21725 frvbf_media_overflow (current_cpu, 1);
21729 UHI opval = tmp_tmp;
21730 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21731 written |= (1 << 18);
21732 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21740 abuf->written = written;
21745 /* mqsubhss: mqsubhss$pack $FRintieven,$FRintjeven,$FRintkeven */
21748 SEM_FN_NAME (frvbf,mqsubhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
21750 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
21751 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
21752 int UNUSED written = 0;
21753 IADDR UNUSED pc = abuf->addr;
21754 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
21756 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
21757 frvbf_media_register_not_aligned (current_cpu);
21765 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
21766 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
21767 written |= (1 << 14);
21768 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
21771 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21772 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21773 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21774 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21778 tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
21779 if (GTDI (tmp_tmp, 32767)) {
21783 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21784 written |= (1 << 15);
21785 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21787 frvbf_media_overflow (current_cpu, 8);
21790 if (LTDI (tmp_tmp, -32768)) {
21793 UHI opval = -32768;
21794 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21795 written |= (1 << 15);
21796 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21798 frvbf_media_overflow (current_cpu, 8);
21802 UHI opval = tmp_tmp;
21803 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21804 written |= (1 << 15);
21805 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21812 tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
21813 if (GTDI (tmp_tmp, 32767)) {
21817 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21818 written |= (1 << 17);
21819 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21821 frvbf_media_overflow (current_cpu, 4);
21824 if (LTDI (tmp_tmp, -32768)) {
21827 UHI opval = -32768;
21828 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21829 written |= (1 << 17);
21830 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21832 frvbf_media_overflow (current_cpu, 4);
21836 UHI opval = tmp_tmp;
21837 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21838 written |= (1 << 17);
21839 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21845 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21846 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21847 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21848 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21852 tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
21853 if (GTDI (tmp_tmp, 32767)) {
21857 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21858 written |= (1 << 16);
21859 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21861 frvbf_media_overflow (current_cpu, 2);
21864 if (LTDI (tmp_tmp, -32768)) {
21867 UHI opval = -32768;
21868 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21869 written |= (1 << 16);
21870 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21872 frvbf_media_overflow (current_cpu, 2);
21876 UHI opval = tmp_tmp;
21877 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21878 written |= (1 << 16);
21879 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21886 tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
21887 if (GTDI (tmp_tmp, 32767)) {
21891 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21892 written |= (1 << 18);
21893 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21895 frvbf_media_overflow (current_cpu, 1);
21898 if (LTDI (tmp_tmp, -32768)) {
21901 UHI opval = -32768;
21902 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21903 written |= (1 << 18);
21904 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21906 frvbf_media_overflow (current_cpu, 1);
21910 UHI opval = tmp_tmp;
21911 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21912 written |= (1 << 18);
21913 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21921 abuf->written = written;
21926 /* mqsubhus: mqsubhus$pack $FRintieven,$FRintjeven,$FRintkeven */
21929 SEM_FN_NAME (frvbf,mqsubhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
21931 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
21932 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
21933 int UNUSED written = 0;
21934 IADDR UNUSED pc = abuf->addr;
21935 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
21937 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
21938 frvbf_media_register_not_aligned (current_cpu);
21946 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
21947 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
21948 written |= (1 << 14);
21949 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
21952 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21953 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21954 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21955 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21959 tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
21960 if (GTDI (tmp_tmp, 65535)) {
21964 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21965 written |= (1 << 15);
21966 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21968 frvbf_media_overflow (current_cpu, 8);
21971 if (LTDI (tmp_tmp, 0)) {
21975 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21976 written |= (1 << 15);
21977 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21979 frvbf_media_overflow (current_cpu, 8);
21983 UHI opval = tmp_tmp;
21984 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21985 written |= (1 << 15);
21986 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21993 tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
21994 if (GTDI (tmp_tmp, 65535)) {
21998 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21999 written |= (1 << 17);
22000 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22002 frvbf_media_overflow (current_cpu, 4);
22005 if (LTDI (tmp_tmp, 0)) {
22009 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22010 written |= (1 << 17);
22011 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22013 frvbf_media_overflow (current_cpu, 4);
22017 UHI opval = tmp_tmp;
22018 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22019 written |= (1 << 17);
22020 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22026 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22027 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22028 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22029 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22033 tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
22034 if (GTDI (tmp_tmp, 65535)) {
22038 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22039 written |= (1 << 16);
22040 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22042 frvbf_media_overflow (current_cpu, 2);
22045 if (LTDI (tmp_tmp, 0)) {
22049 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22050 written |= (1 << 16);
22051 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22053 frvbf_media_overflow (current_cpu, 2);
22057 UHI opval = tmp_tmp;
22058 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22059 written |= (1 << 16);
22060 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22067 tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
22068 if (GTDI (tmp_tmp, 65535)) {
22072 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22073 written |= (1 << 18);
22074 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22076 frvbf_media_overflow (current_cpu, 1);
22079 if (LTDI (tmp_tmp, 0)) {
22083 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22084 written |= (1 << 18);
22085 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22087 frvbf_media_overflow (current_cpu, 1);
22091 UHI opval = tmp_tmp;
22092 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22093 written |= (1 << 18);
22094 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22102 abuf->written = written;
22107 /* cmqaddhss: cmqaddhss$pack $FRintieven,$FRintjeven,$FRintkeven,$CCi,$cond */
22110 SEM_FN_NAME (frvbf,cmqaddhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22112 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
22113 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22114 int UNUSED written = 0;
22115 IADDR UNUSED pc = abuf->addr;
22116 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22118 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
22119 frvbf_media_register_not_aligned (current_cpu);
22121 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
22128 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
22129 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
22130 written |= (1 << 16);
22131 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
22134 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22135 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22136 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22137 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22141 tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
22142 if (GTDI (tmp_tmp, 32767)) {
22146 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22147 written |= (1 << 17);
22148 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22150 frvbf_media_overflow (current_cpu, 8);
22153 if (LTDI (tmp_tmp, -32768)) {
22156 UHI opval = -32768;
22157 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22158 written |= (1 << 17);
22159 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22161 frvbf_media_overflow (current_cpu, 8);
22165 UHI opval = tmp_tmp;
22166 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22167 written |= (1 << 17);
22168 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22175 tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
22176 if (GTDI (tmp_tmp, 32767)) {
22180 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22181 written |= (1 << 19);
22182 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22184 frvbf_media_overflow (current_cpu, 4);
22187 if (LTDI (tmp_tmp, -32768)) {
22190 UHI opval = -32768;
22191 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22192 written |= (1 << 19);
22193 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22195 frvbf_media_overflow (current_cpu, 4);
22199 UHI opval = tmp_tmp;
22200 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22201 written |= (1 << 19);
22202 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22208 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22209 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22210 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22211 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22215 tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
22216 if (GTDI (tmp_tmp, 32767)) {
22220 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22221 written |= (1 << 18);
22222 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22224 frvbf_media_overflow (current_cpu, 2);
22227 if (LTDI (tmp_tmp, -32768)) {
22230 UHI opval = -32768;
22231 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22232 written |= (1 << 18);
22233 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22235 frvbf_media_overflow (current_cpu, 2);
22239 UHI opval = tmp_tmp;
22240 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22241 written |= (1 << 18);
22242 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22249 tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
22250 if (GTDI (tmp_tmp, 32767)) {
22254 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22255 written |= (1 << 20);
22256 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22258 frvbf_media_overflow (current_cpu, 1);
22261 if (LTDI (tmp_tmp, -32768)) {
22264 UHI opval = -32768;
22265 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22266 written |= (1 << 20);
22267 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22269 frvbf_media_overflow (current_cpu, 1);
22273 UHI opval = tmp_tmp;
22274 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22275 written |= (1 << 20);
22276 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22285 abuf->written = written;
22290 /* cmqaddhus: cmqaddhus$pack $FRintieven,$FRintjeven,$FRintkeven,$CCi,$cond */
22293 SEM_FN_NAME (frvbf,cmqaddhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22295 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
22296 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22297 int UNUSED written = 0;
22298 IADDR UNUSED pc = abuf->addr;
22299 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22301 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
22302 frvbf_media_register_not_aligned (current_cpu);
22304 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
22311 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
22312 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
22313 written |= (1 << 16);
22314 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
22317 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22318 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22319 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22320 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22324 tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
22325 if (GTDI (tmp_tmp, 65535)) {
22329 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22330 written |= (1 << 17);
22331 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22333 frvbf_media_overflow (current_cpu, 8);
22336 if (LTDI (tmp_tmp, 0)) {
22340 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22341 written |= (1 << 17);
22342 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22344 frvbf_media_overflow (current_cpu, 8);
22348 UHI opval = tmp_tmp;
22349 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22350 written |= (1 << 17);
22351 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22358 tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
22359 if (GTDI (tmp_tmp, 65535)) {
22363 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22364 written |= (1 << 19);
22365 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22367 frvbf_media_overflow (current_cpu, 4);
22370 if (LTDI (tmp_tmp, 0)) {
22374 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22375 written |= (1 << 19);
22376 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22378 frvbf_media_overflow (current_cpu, 4);
22382 UHI opval = tmp_tmp;
22383 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22384 written |= (1 << 19);
22385 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22391 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22392 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22393 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22394 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22398 tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
22399 if (GTDI (tmp_tmp, 65535)) {
22403 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22404 written |= (1 << 18);
22405 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22407 frvbf_media_overflow (current_cpu, 2);
22410 if (LTDI (tmp_tmp, 0)) {
22414 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22415 written |= (1 << 18);
22416 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22418 frvbf_media_overflow (current_cpu, 2);
22422 UHI opval = tmp_tmp;
22423 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22424 written |= (1 << 18);
22425 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22432 tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
22433 if (GTDI (tmp_tmp, 65535)) {
22437 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22438 written |= (1 << 20);
22439 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22441 frvbf_media_overflow (current_cpu, 1);
22444 if (LTDI (tmp_tmp, 0)) {
22448 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22449 written |= (1 << 20);
22450 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22452 frvbf_media_overflow (current_cpu, 1);
22456 UHI opval = tmp_tmp;
22457 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22458 written |= (1 << 20);
22459 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22468 abuf->written = written;
22473 /* cmqsubhss: cmqsubhss$pack $FRintieven,$FRintjeven,$FRintkeven,$CCi,$cond */
22476 SEM_FN_NAME (frvbf,cmqsubhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22478 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
22479 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22480 int UNUSED written = 0;
22481 IADDR UNUSED pc = abuf->addr;
22482 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22484 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
22485 frvbf_media_register_not_aligned (current_cpu);
22487 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
22494 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
22495 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
22496 written |= (1 << 16);
22497 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
22500 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22501 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22502 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22503 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22507 tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
22508 if (GTDI (tmp_tmp, 32767)) {
22512 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22513 written |= (1 << 17);
22514 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22516 frvbf_media_overflow (current_cpu, 8);
22519 if (LTDI (tmp_tmp, -32768)) {
22522 UHI opval = -32768;
22523 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22524 written |= (1 << 17);
22525 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22527 frvbf_media_overflow (current_cpu, 8);
22531 UHI opval = tmp_tmp;
22532 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22533 written |= (1 << 17);
22534 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22541 tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
22542 if (GTDI (tmp_tmp, 32767)) {
22546 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22547 written |= (1 << 19);
22548 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22550 frvbf_media_overflow (current_cpu, 4);
22553 if (LTDI (tmp_tmp, -32768)) {
22556 UHI opval = -32768;
22557 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22558 written |= (1 << 19);
22559 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22561 frvbf_media_overflow (current_cpu, 4);
22565 UHI opval = tmp_tmp;
22566 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22567 written |= (1 << 19);
22568 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22574 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22575 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22576 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22577 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22581 tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
22582 if (GTDI (tmp_tmp, 32767)) {
22586 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22587 written |= (1 << 18);
22588 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22590 frvbf_media_overflow (current_cpu, 2);
22593 if (LTDI (tmp_tmp, -32768)) {
22596 UHI opval = -32768;
22597 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22598 written |= (1 << 18);
22599 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22601 frvbf_media_overflow (current_cpu, 2);
22605 UHI opval = tmp_tmp;
22606 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22607 written |= (1 << 18);
22608 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22615 tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
22616 if (GTDI (tmp_tmp, 32767)) {
22620 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22621 written |= (1 << 20);
22622 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22624 frvbf_media_overflow (current_cpu, 1);
22627 if (LTDI (tmp_tmp, -32768)) {
22630 UHI opval = -32768;
22631 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22632 written |= (1 << 20);
22633 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22635 frvbf_media_overflow (current_cpu, 1);
22639 UHI opval = tmp_tmp;
22640 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22641 written |= (1 << 20);
22642 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22651 abuf->written = written;
22656 /* cmqsubhus: cmqsubhus$pack $FRintieven,$FRintjeven,$FRintkeven,$CCi,$cond */
22659 SEM_FN_NAME (frvbf,cmqsubhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22661 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
22662 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22663 int UNUSED written = 0;
22664 IADDR UNUSED pc = abuf->addr;
22665 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22667 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
22668 frvbf_media_register_not_aligned (current_cpu);
22670 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
22677 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
22678 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
22679 written |= (1 << 16);
22680 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
22683 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22684 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22685 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22686 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22690 tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
22691 if (GTDI (tmp_tmp, 65535)) {
22695 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22696 written |= (1 << 17);
22697 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22699 frvbf_media_overflow (current_cpu, 8);
22702 if (LTDI (tmp_tmp, 0)) {
22706 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22707 written |= (1 << 17);
22708 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22710 frvbf_media_overflow (current_cpu, 8);
22714 UHI opval = tmp_tmp;
22715 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22716 written |= (1 << 17);
22717 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22724 tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
22725 if (GTDI (tmp_tmp, 65535)) {
22729 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22730 written |= (1 << 19);
22731 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22733 frvbf_media_overflow (current_cpu, 4);
22736 if (LTDI (tmp_tmp, 0)) {
22740 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22741 written |= (1 << 19);
22742 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22744 frvbf_media_overflow (current_cpu, 4);
22748 UHI opval = tmp_tmp;
22749 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22750 written |= (1 << 19);
22751 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22757 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22758 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22759 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22760 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22764 tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
22765 if (GTDI (tmp_tmp, 65535)) {
22769 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22770 written |= (1 << 18);
22771 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22773 frvbf_media_overflow (current_cpu, 2);
22776 if (LTDI (tmp_tmp, 0)) {
22780 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22781 written |= (1 << 18);
22782 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22784 frvbf_media_overflow (current_cpu, 2);
22788 UHI opval = tmp_tmp;
22789 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22790 written |= (1 << 18);
22791 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22798 tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
22799 if (GTDI (tmp_tmp, 65535)) {
22803 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22804 written |= (1 << 20);
22805 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22807 frvbf_media_overflow (current_cpu, 1);
22810 if (LTDI (tmp_tmp, 0)) {
22814 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22815 written |= (1 << 20);
22816 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22818 frvbf_media_overflow (current_cpu, 1);
22822 UHI opval = tmp_tmp;
22823 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22824 written |= (1 << 20);
22825 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22834 abuf->written = written;
22839 /* maddaccs: maddaccs$pack $ACC40Si,$ACC40Sk */
22842 SEM_FN_NAME (frvbf,maddaccs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22844 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
22845 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22846 int UNUSED written = 0;
22847 IADDR UNUSED pc = abuf->addr;
22848 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22850 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Si))) {
22851 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
22852 if (ANDSI (FLD (f_ACC40Si), SUBSI (2, 1))) {
22853 frvbf_media_acc_not_aligned (current_cpu);
22857 tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))));
22858 if (GTDI (tmp_tmp, 549755813887)) {
22861 DI opval = 549755813887;
22862 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22863 written |= (1 << 4);
22864 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22866 frvbf_media_overflow (current_cpu, 8);
22869 if (LTDI (tmp_tmp, INVDI (549755813887))) {
22872 DI opval = INVDI (549755813887);
22873 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22874 written |= (1 << 4);
22875 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22877 frvbf_media_overflow (current_cpu, 8);
22881 DI opval = tmp_tmp;
22882 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22883 written |= (1 << 4);
22884 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22893 abuf->written = written;
22898 /* msubaccs: msubaccs$pack $ACC40Si,$ACC40Sk */
22901 SEM_FN_NAME (frvbf,msubaccs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22903 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
22904 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22905 int UNUSED written = 0;
22906 IADDR UNUSED pc = abuf->addr;
22907 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22909 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Si))) {
22910 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
22911 if (ANDSI (FLD (f_ACC40Si), SUBSI (2, 1))) {
22912 frvbf_media_acc_not_aligned (current_cpu);
22916 tmp_tmp = SUBDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))));
22917 if (GTDI (tmp_tmp, 549755813887)) {
22920 DI opval = 549755813887;
22921 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22922 written |= (1 << 4);
22923 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22925 frvbf_media_overflow (current_cpu, 8);
22928 if (LTDI (tmp_tmp, INVDI (549755813887))) {
22931 DI opval = INVDI (549755813887);
22932 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22933 written |= (1 << 4);
22934 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22936 frvbf_media_overflow (current_cpu, 8);
22940 DI opval = tmp_tmp;
22941 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22942 written |= (1 << 4);
22943 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22952 abuf->written = written;
22957 /* mdaddaccs: mdaddaccs$pack $ACC40Si,$ACC40Sk */
22960 SEM_FN_NAME (frvbf,mdaddaccs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22962 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
22963 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22964 int UNUSED written = 0;
22965 IADDR UNUSED pc = abuf->addr;
22966 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22968 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Si))) {
22969 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
22970 if (ANDSI (FLD (f_ACC40Si), SUBSI (4, 1))) {
22971 frvbf_media_acc_not_aligned (current_cpu);
22973 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
22974 frvbf_media_acc_not_aligned (current_cpu);
22979 tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))));
22980 if (GTDI (tmp_tmp, 549755813887)) {
22983 DI opval = 549755813887;
22984 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22985 written |= (1 << 6);
22986 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22988 frvbf_media_overflow (current_cpu, 8);
22991 if (LTDI (tmp_tmp, INVDI (549755813887))) {
22994 DI opval = INVDI (549755813887);
22995 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22996 written |= (1 << 6);
22997 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22999 frvbf_media_overflow (current_cpu, 8);
23003 DI opval = tmp_tmp;
23004 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23005 written |= (1 << 6);
23006 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23013 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Si)) + (2))), GET_H_ACC40S (((FLD (f_ACC40Si)) + (3))));
23014 if (GTDI (tmp_tmp, 549755813887)) {
23017 DI opval = 549755813887;
23018 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23019 written |= (1 << 7);
23020 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23022 frvbf_media_overflow (current_cpu, 4);
23025 if (LTDI (tmp_tmp, INVDI (549755813887))) {
23028 DI opval = INVDI (549755813887);
23029 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23030 written |= (1 << 7);
23031 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23033 frvbf_media_overflow (current_cpu, 4);
23037 DI opval = tmp_tmp;
23038 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23039 written |= (1 << 7);
23040 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23051 abuf->written = written;
23056 /* mdsubaccs: mdsubaccs$pack $ACC40Si,$ACC40Sk */
23059 SEM_FN_NAME (frvbf,mdsubaccs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23061 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
23062 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23063 int UNUSED written = 0;
23064 IADDR UNUSED pc = abuf->addr;
23065 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23067 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Si))) {
23068 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23069 if (ANDSI (FLD (f_ACC40Si), SUBSI (4, 1))) {
23070 frvbf_media_acc_not_aligned (current_cpu);
23072 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23073 frvbf_media_acc_not_aligned (current_cpu);
23078 tmp_tmp = SUBDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))));
23079 if (GTDI (tmp_tmp, 549755813887)) {
23082 DI opval = 549755813887;
23083 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23084 written |= (1 << 6);
23085 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23087 frvbf_media_overflow (current_cpu, 8);
23090 if (LTDI (tmp_tmp, INVDI (549755813887))) {
23093 DI opval = INVDI (549755813887);
23094 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23095 written |= (1 << 6);
23096 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23098 frvbf_media_overflow (current_cpu, 8);
23102 DI opval = tmp_tmp;
23103 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23104 written |= (1 << 6);
23105 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23112 tmp_tmp = SUBDI (GET_H_ACC40S (((FLD (f_ACC40Si)) + (2))), GET_H_ACC40S (((FLD (f_ACC40Si)) + (3))));
23113 if (GTDI (tmp_tmp, 549755813887)) {
23116 DI opval = 549755813887;
23117 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23118 written |= (1 << 7);
23119 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23121 frvbf_media_overflow (current_cpu, 4);
23124 if (LTDI (tmp_tmp, INVDI (549755813887))) {
23127 DI opval = INVDI (549755813887);
23128 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23129 written |= (1 << 7);
23130 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23132 frvbf_media_overflow (current_cpu, 4);
23136 DI opval = tmp_tmp;
23137 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23138 written |= (1 << 7);
23139 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23150 abuf->written = written;
23155 /* masaccs: masaccs$pack $ACC40Si,$ACC40Sk */
23158 SEM_FN_NAME (frvbf,masaccs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23160 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
23161 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23162 int UNUSED written = 0;
23163 IADDR UNUSED pc = abuf->addr;
23164 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23166 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Si))) {
23167 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23168 if (ANDSI (FLD (f_ACC40Si), SUBSI (2, 1))) {
23169 frvbf_media_acc_not_aligned (current_cpu);
23171 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23172 frvbf_media_acc_not_aligned (current_cpu);
23177 tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))));
23178 if (GTDI (tmp_tmp, 549755813887)) {
23181 DI opval = 549755813887;
23182 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23183 written |= (1 << 4);
23184 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23186 frvbf_media_overflow (current_cpu, 8);
23189 if (LTDI (tmp_tmp, INVDI (549755813887))) {
23192 DI opval = INVDI (549755813887);
23193 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23194 written |= (1 << 4);
23195 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23197 frvbf_media_overflow (current_cpu, 8);
23201 DI opval = tmp_tmp;
23202 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23203 written |= (1 << 4);
23204 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23211 tmp_tmp = SUBDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))));
23212 if (GTDI (tmp_tmp, 549755813887)) {
23215 DI opval = 549755813887;
23216 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23217 written |= (1 << 5);
23218 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23220 frvbf_media_overflow (current_cpu, 4);
23223 if (LTDI (tmp_tmp, INVDI (549755813887))) {
23226 DI opval = INVDI (549755813887);
23227 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23228 written |= (1 << 5);
23229 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23231 frvbf_media_overflow (current_cpu, 4);
23235 DI opval = tmp_tmp;
23236 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23237 written |= (1 << 5);
23238 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23249 abuf->written = written;
23254 /* mdasaccs: mdasaccs$pack $ACC40Si,$ACC40Sk */
23257 SEM_FN_NAME (frvbf,mdasaccs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23259 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
23260 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23261 int UNUSED written = 0;
23262 IADDR UNUSED pc = abuf->addr;
23263 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23265 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Si))) {
23266 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23267 if (ANDSI (FLD (f_ACC40Si), SUBSI (4, 1))) {
23268 frvbf_media_acc_not_aligned (current_cpu);
23270 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
23271 frvbf_media_acc_not_aligned (current_cpu);
23276 tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))));
23277 if (GTDI (tmp_tmp, 549755813887)) {
23280 DI opval = 549755813887;
23281 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23282 written |= (1 << 6);
23283 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23285 frvbf_media_overflow (current_cpu, 8);
23288 if (LTDI (tmp_tmp, INVDI (549755813887))) {
23291 DI opval = INVDI (549755813887);
23292 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23293 written |= (1 << 6);
23294 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23296 frvbf_media_overflow (current_cpu, 8);
23300 DI opval = tmp_tmp;
23301 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23302 written |= (1 << 6);
23303 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23310 tmp_tmp = SUBDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))));
23311 if (GTDI (tmp_tmp, 549755813887)) {
23314 DI opval = 549755813887;
23315 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23316 written |= (1 << 7);
23317 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23319 frvbf_media_overflow (current_cpu, 4);
23322 if (LTDI (tmp_tmp, INVDI (549755813887))) {
23325 DI opval = INVDI (549755813887);
23326 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23327 written |= (1 << 7);
23328 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23330 frvbf_media_overflow (current_cpu, 4);
23334 DI opval = tmp_tmp;
23335 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23336 written |= (1 << 7);
23337 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23344 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Si)) + (2))), GET_H_ACC40S (((FLD (f_ACC40Si)) + (3))));
23345 if (GTDI (tmp_tmp, 549755813887)) {
23348 DI opval = 549755813887;
23349 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
23350 written |= (1 << 8);
23351 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23353 frvbf_media_overflow (current_cpu, 2);
23356 if (LTDI (tmp_tmp, INVDI (549755813887))) {
23359 DI opval = INVDI (549755813887);
23360 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
23361 written |= (1 << 8);
23362 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23364 frvbf_media_overflow (current_cpu, 2);
23368 DI opval = tmp_tmp;
23369 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
23370 written |= (1 << 8);
23371 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23378 tmp_tmp = SUBDI (GET_H_ACC40S (((FLD (f_ACC40Si)) + (2))), GET_H_ACC40S (((FLD (f_ACC40Si)) + (3))));
23379 if (GTDI (tmp_tmp, 549755813887)) {
23382 DI opval = 549755813887;
23383 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
23384 written |= (1 << 9);
23385 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23387 frvbf_media_overflow (current_cpu, 1);
23390 if (LTDI (tmp_tmp, INVDI (549755813887))) {
23393 DI opval = INVDI (549755813887);
23394 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
23395 written |= (1 << 9);
23396 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23398 frvbf_media_overflow (current_cpu, 1);
23402 DI opval = tmp_tmp;
23403 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
23404 written |= (1 << 9);
23405 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23416 abuf->written = written;
23421 /* mmulhs: mmulhs$pack $FRinti,$FRintj,$ACC40Sk */
23424 SEM_FN_NAME (frvbf,mmulhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23426 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23427 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23428 int UNUSED written = 0;
23429 IADDR UNUSED pc = abuf->addr;
23430 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23432 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23433 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23434 frvbf_media_acc_not_aligned (current_cpu);
23442 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23443 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23444 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23445 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23448 DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
23449 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23450 written |= (1 << 9);
23451 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23454 DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
23455 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23456 written |= (1 << 10);
23457 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23463 abuf->written = written;
23468 /* mmulhu: mmulhu$pack $FRinti,$FRintj,$ACC40Sk */
23471 SEM_FN_NAME (frvbf,mmulhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23473 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23474 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23475 int UNUSED written = 0;
23476 IADDR UNUSED pc = abuf->addr;
23477 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23479 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23480 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23481 frvbf_media_acc_not_aligned (current_cpu);
23489 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23490 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23491 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23492 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23495 DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
23496 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23497 written |= (1 << 9);
23498 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23501 DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
23502 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23503 written |= (1 << 10);
23504 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23510 abuf->written = written;
23515 /* mmulxhs: mmulxhs$pack $FRinti,$FRintj,$ACC40Sk */
23518 SEM_FN_NAME (frvbf,mmulxhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23520 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23521 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23522 int UNUSED written = 0;
23523 IADDR UNUSED pc = abuf->addr;
23524 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23526 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23527 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23528 frvbf_media_acc_not_aligned (current_cpu);
23536 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23537 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23538 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23539 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23542 DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
23543 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23544 written |= (1 << 9);
23545 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23548 DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
23549 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23550 written |= (1 << 10);
23551 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23557 abuf->written = written;
23562 /* mmulxhu: mmulxhu$pack $FRinti,$FRintj,$ACC40Sk */
23565 SEM_FN_NAME (frvbf,mmulxhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23567 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23568 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23569 int UNUSED written = 0;
23570 IADDR UNUSED pc = abuf->addr;
23571 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23573 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23574 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23575 frvbf_media_acc_not_aligned (current_cpu);
23583 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23584 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23585 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23586 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23589 DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
23590 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23591 written |= (1 << 9);
23592 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23595 DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
23596 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23597 written |= (1 << 10);
23598 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23604 abuf->written = written;
23609 /* cmmulhs: cmmulhs$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
23612 SEM_FN_NAME (frvbf,cmmulhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23614 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23615 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23616 int UNUSED written = 0;
23617 IADDR UNUSED pc = abuf->addr;
23618 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23620 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23621 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23622 frvbf_media_acc_not_aligned (current_cpu);
23624 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
23631 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23632 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23633 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23634 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23637 DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
23638 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23639 written |= (1 << 11);
23640 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23643 DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
23644 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23645 written |= (1 << 12);
23646 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23653 abuf->written = written;
23658 /* cmmulhu: cmmulhu$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
23661 SEM_FN_NAME (frvbf,cmmulhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23663 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23664 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23665 int UNUSED written = 0;
23666 IADDR UNUSED pc = abuf->addr;
23667 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23669 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23670 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23671 frvbf_media_acc_not_aligned (current_cpu);
23673 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
23680 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23681 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23682 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23683 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23686 DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
23687 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23688 written |= (1 << 11);
23689 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23692 DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
23693 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23694 written |= (1 << 12);
23695 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23702 abuf->written = written;
23707 /* mqmulhs: mqmulhs$pack $FRintieven,$FRintjeven,$ACC40Sk */
23710 SEM_FN_NAME (frvbf,mqmulhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23712 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
23713 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23714 int UNUSED written = 0;
23715 IADDR UNUSED pc = abuf->addr;
23716 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23718 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23719 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
23720 frvbf_media_acc_not_aligned (current_cpu);
23722 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
23723 frvbf_media_register_not_aligned (current_cpu);
23731 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23732 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23733 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23734 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23737 DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
23738 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23739 written |= (1 << 13);
23740 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23743 DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
23744 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23745 written |= (1 << 14);
23746 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23749 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23750 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23751 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23752 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23755 DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
23756 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
23757 written |= (1 << 15);
23758 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23761 DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
23762 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
23763 written |= (1 << 16);
23764 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23771 abuf->written = written;
23776 /* mqmulhu: mqmulhu$pack $FRintieven,$FRintjeven,$ACC40Sk */
23779 SEM_FN_NAME (frvbf,mqmulhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23781 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
23782 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23783 int UNUSED written = 0;
23784 IADDR UNUSED pc = abuf->addr;
23785 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23787 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23788 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
23789 frvbf_media_acc_not_aligned (current_cpu);
23791 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
23792 frvbf_media_register_not_aligned (current_cpu);
23800 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23801 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23802 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23803 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23806 DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
23807 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23808 written |= (1 << 13);
23809 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23812 DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
23813 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23814 written |= (1 << 14);
23815 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23818 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23819 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23820 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23821 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23824 DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
23825 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
23826 written |= (1 << 15);
23827 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23830 DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
23831 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
23832 written |= (1 << 16);
23833 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23840 abuf->written = written;
23845 /* mqmulxhs: mqmulxhs$pack $FRintieven,$FRintjeven,$ACC40Sk */
23848 SEM_FN_NAME (frvbf,mqmulxhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23850 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
23851 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23852 int UNUSED written = 0;
23853 IADDR UNUSED pc = abuf->addr;
23854 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23856 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23857 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
23858 frvbf_media_acc_not_aligned (current_cpu);
23860 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
23861 frvbf_media_register_not_aligned (current_cpu);
23869 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23870 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23871 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23872 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23875 DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
23876 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23877 written |= (1 << 13);
23878 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23881 DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
23882 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23883 written |= (1 << 14);
23884 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23887 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23888 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23889 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23890 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23893 DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
23894 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
23895 written |= (1 << 15);
23896 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23899 DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
23900 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
23901 written |= (1 << 16);
23902 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23909 abuf->written = written;
23914 /* mqmulxhu: mqmulxhu$pack $FRintieven,$FRintjeven,$ACC40Sk */
23917 SEM_FN_NAME (frvbf,mqmulxhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23919 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
23920 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23921 int UNUSED written = 0;
23922 IADDR UNUSED pc = abuf->addr;
23923 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23925 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23926 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
23927 frvbf_media_acc_not_aligned (current_cpu);
23929 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
23930 frvbf_media_register_not_aligned (current_cpu);
23938 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23939 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23940 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23941 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23944 DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
23945 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23946 written |= (1 << 13);
23947 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23950 DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
23951 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23952 written |= (1 << 14);
23953 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23956 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23957 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23958 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23959 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23962 DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
23963 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
23964 written |= (1 << 15);
23965 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23968 DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
23969 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
23970 written |= (1 << 16);
23971 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23978 abuf->written = written;
23983 /* cmqmulhs: cmqmulhs$pack $FRintieven,$FRintjeven,$ACC40Sk,$CCi,$cond */
23986 SEM_FN_NAME (frvbf,cmqmulhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23988 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
23989 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23990 int UNUSED written = 0;
23991 IADDR UNUSED pc = abuf->addr;
23992 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23994 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23995 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
23996 frvbf_media_acc_not_aligned (current_cpu);
23998 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
23999 frvbf_media_register_not_aligned (current_cpu);
24001 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
24008 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24009 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24010 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24011 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24014 DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
24015 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24016 written |= (1 << 15);
24017 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24020 DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
24021 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24022 written |= (1 << 16);
24023 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24026 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24027 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24028 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24029 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24032 DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
24033 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
24034 written |= (1 << 17);
24035 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24038 DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
24039 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
24040 written |= (1 << 18);
24041 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24049 abuf->written = written;
24054 /* cmqmulhu: cmqmulhu$pack $FRintieven,$FRintjeven,$ACC40Sk,$CCi,$cond */
24057 SEM_FN_NAME (frvbf,cmqmulhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24059 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
24060 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24061 int UNUSED written = 0;
24062 IADDR UNUSED pc = abuf->addr;
24063 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24065 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
24066 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
24067 frvbf_media_acc_not_aligned (current_cpu);
24069 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
24070 frvbf_media_register_not_aligned (current_cpu);
24072 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
24079 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24080 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24081 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24082 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24085 DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
24086 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24087 written |= (1 << 15);
24088 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24091 DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
24092 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24093 written |= (1 << 16);
24094 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24097 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24098 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24099 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24100 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24103 DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
24104 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
24105 written |= (1 << 17);
24106 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24109 DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
24110 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
24111 written |= (1 << 18);
24112 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24120 abuf->written = written;
24125 /* mmachs: mmachs$pack $FRinti,$FRintj,$ACC40Sk */
24128 SEM_FN_NAME (frvbf,mmachs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24130 #define FLD(f) abuf->fields.sfmt_cmmachs.f
24131 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24132 int UNUSED written = 0;
24133 IADDR UNUSED pc = abuf->addr;
24134 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24136 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
24137 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
24138 frvbf_media_acc_not_aligned (current_cpu);
24146 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24147 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24148 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24149 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24153 tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
24154 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24157 DI opval = MAKEDI (127, 0xffffffff);
24158 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24159 written |= (1 << 11);
24160 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24162 frvbf_media_overflow (current_cpu, 8);
24165 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24168 DI opval = MAKEDI (0xffffff80, 0);
24169 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24170 written |= (1 << 11);
24171 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24173 frvbf_media_overflow (current_cpu, 8);
24177 DI opval = tmp_tmp;
24178 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24179 written |= (1 << 11);
24180 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24187 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (1))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
24188 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24191 DI opval = MAKEDI (127, 0xffffffff);
24192 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24193 written |= (1 << 12);
24194 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24196 frvbf_media_overflow (current_cpu, 4);
24199 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24202 DI opval = MAKEDI (0xffffff80, 0);
24203 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24204 written |= (1 << 12);
24205 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24207 frvbf_media_overflow (current_cpu, 4);
24211 DI opval = tmp_tmp;
24212 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24213 written |= (1 << 12);
24214 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24223 abuf->written = written;
24228 /* mmachu: mmachu$pack $FRinti,$FRintj,$ACC40Uk */
24231 SEM_FN_NAME (frvbf,mmachu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24233 #define FLD(f) abuf->fields.sfmt_cmmachu.f
24234 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24235 int UNUSED written = 0;
24236 IADDR UNUSED pc = abuf->addr;
24237 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24239 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Uk))) {
24240 if (ANDSI (FLD (f_ACC40Uk), SUBSI (2, 1))) {
24241 frvbf_media_acc_not_aligned (current_cpu);
24249 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24250 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24251 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24252 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24256 tmp_tmp = ADDDI (GET_H_ACC40U (FLD (f_ACC40Uk)), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
24257 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24260 UDI opval = MAKEDI (255, 0xffffffff);
24261 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24262 written |= (1 << 11);
24263 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24265 frvbf_media_overflow (current_cpu, 8);
24268 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24271 UDI opval = MAKEDI (0, 0);
24272 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24273 written |= (1 << 11);
24274 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24276 frvbf_media_overflow (current_cpu, 8);
24280 UDI opval = tmp_tmp;
24281 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24282 written |= (1 << 11);
24283 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24290 tmp_tmp = ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (1))), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
24291 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24294 UDI opval = MAKEDI (255, 0xffffffff);
24295 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24296 written |= (1 << 12);
24297 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24299 frvbf_media_overflow (current_cpu, 4);
24302 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24305 UDI opval = MAKEDI (0, 0);
24306 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24307 written |= (1 << 12);
24308 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24310 frvbf_media_overflow (current_cpu, 4);
24314 UDI opval = tmp_tmp;
24315 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24316 written |= (1 << 12);
24317 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24326 abuf->written = written;
24331 /* mmrdhs: mmrdhs$pack $FRinti,$FRintj,$ACC40Sk */
24334 SEM_FN_NAME (frvbf,mmrdhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24336 #define FLD(f) abuf->fields.sfmt_cmmachs.f
24337 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24338 int UNUSED written = 0;
24339 IADDR UNUSED pc = abuf->addr;
24340 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24342 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
24343 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
24344 frvbf_media_acc_not_aligned (current_cpu);
24352 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24353 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24354 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24355 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24359 tmp_tmp = SUBDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
24360 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24363 DI opval = MAKEDI (127, 0xffffffff);
24364 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24365 written |= (1 << 11);
24366 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24368 frvbf_media_overflow (current_cpu, 8);
24371 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24374 DI opval = MAKEDI (0xffffff80, 0);
24375 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24376 written |= (1 << 11);
24377 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24379 frvbf_media_overflow (current_cpu, 8);
24383 DI opval = tmp_tmp;
24384 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24385 written |= (1 << 11);
24386 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24393 tmp_tmp = SUBDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (1))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
24394 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24397 DI opval = MAKEDI (127, 0xffffffff);
24398 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24399 written |= (1 << 12);
24400 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24402 frvbf_media_overflow (current_cpu, 4);
24405 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24408 DI opval = MAKEDI (0xffffff80, 0);
24409 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24410 written |= (1 << 12);
24411 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24413 frvbf_media_overflow (current_cpu, 4);
24417 DI opval = tmp_tmp;
24418 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24419 written |= (1 << 12);
24420 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24429 abuf->written = written;
24434 /* mmrdhu: mmrdhu$pack $FRinti,$FRintj,$ACC40Uk */
24437 SEM_FN_NAME (frvbf,mmrdhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24439 #define FLD(f) abuf->fields.sfmt_cmmachu.f
24440 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24441 int UNUSED written = 0;
24442 IADDR UNUSED pc = abuf->addr;
24443 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24445 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Uk))) {
24446 if (ANDSI (FLD (f_ACC40Uk), SUBSI (2, 1))) {
24447 frvbf_media_acc_not_aligned (current_cpu);
24455 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24456 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24457 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24458 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24462 tmp_tmp = SUBDI (GET_H_ACC40U (FLD (f_ACC40Uk)), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
24463 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24466 UDI opval = MAKEDI (255, 0xffffffff);
24467 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24468 written |= (1 << 11);
24469 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24471 frvbf_media_overflow (current_cpu, 8);
24474 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24477 UDI opval = MAKEDI (0, 0);
24478 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24479 written |= (1 << 11);
24480 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24482 frvbf_media_overflow (current_cpu, 8);
24486 UDI opval = tmp_tmp;
24487 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24488 written |= (1 << 11);
24489 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24496 tmp_tmp = SUBDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (1))), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
24497 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24500 UDI opval = MAKEDI (255, 0xffffffff);
24501 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24502 written |= (1 << 12);
24503 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24505 frvbf_media_overflow (current_cpu, 4);
24508 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24511 UDI opval = MAKEDI (0, 0);
24512 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24513 written |= (1 << 12);
24514 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24516 frvbf_media_overflow (current_cpu, 4);
24520 UDI opval = tmp_tmp;
24521 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24522 written |= (1 << 12);
24523 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24532 abuf->written = written;
24537 /* cmmachs: cmmachs$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
24540 SEM_FN_NAME (frvbf,cmmachs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24542 #define FLD(f) abuf->fields.sfmt_cmmachs.f
24543 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24544 int UNUSED written = 0;
24545 IADDR UNUSED pc = abuf->addr;
24546 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24548 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
24549 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
24550 frvbf_media_acc_not_aligned (current_cpu);
24552 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
24559 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24560 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24561 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24562 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24566 tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
24567 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24570 DI opval = MAKEDI (127, 0xffffffff);
24571 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24572 written |= (1 << 13);
24573 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24575 frvbf_media_overflow (current_cpu, 8);
24578 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24581 DI opval = MAKEDI (0xffffff80, 0);
24582 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24583 written |= (1 << 13);
24584 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24586 frvbf_media_overflow (current_cpu, 8);
24590 DI opval = tmp_tmp;
24591 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24592 written |= (1 << 13);
24593 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24600 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (1))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
24601 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24604 DI opval = MAKEDI (127, 0xffffffff);
24605 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24606 written |= (1 << 14);
24607 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24609 frvbf_media_overflow (current_cpu, 4);
24612 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24615 DI opval = MAKEDI (0xffffff80, 0);
24616 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24617 written |= (1 << 14);
24618 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24620 frvbf_media_overflow (current_cpu, 4);
24624 DI opval = tmp_tmp;
24625 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24626 written |= (1 << 14);
24627 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24637 abuf->written = written;
24642 /* cmmachu: cmmachu$pack $FRinti,$FRintj,$ACC40Uk,$CCi,$cond */
24645 SEM_FN_NAME (frvbf,cmmachu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24647 #define FLD(f) abuf->fields.sfmt_cmmachu.f
24648 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24649 int UNUSED written = 0;
24650 IADDR UNUSED pc = abuf->addr;
24651 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24653 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Uk))) {
24654 if (ANDSI (FLD (f_ACC40Uk), SUBSI (2, 1))) {
24655 frvbf_media_acc_not_aligned (current_cpu);
24657 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
24664 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24665 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24666 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24667 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24671 tmp_tmp = ADDDI (GET_H_ACC40U (FLD (f_ACC40Uk)), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
24672 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24675 UDI opval = MAKEDI (255, 0xffffffff);
24676 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24677 written |= (1 << 13);
24678 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24680 frvbf_media_overflow (current_cpu, 8);
24683 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24686 UDI opval = MAKEDI (0, 0);
24687 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24688 written |= (1 << 13);
24689 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24691 frvbf_media_overflow (current_cpu, 8);
24695 UDI opval = tmp_tmp;
24696 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24697 written |= (1 << 13);
24698 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24705 tmp_tmp = ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (1))), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
24706 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24709 UDI opval = MAKEDI (255, 0xffffffff);
24710 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24711 written |= (1 << 14);
24712 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24714 frvbf_media_overflow (current_cpu, 4);
24717 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24720 UDI opval = MAKEDI (0, 0);
24721 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24722 written |= (1 << 14);
24723 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24725 frvbf_media_overflow (current_cpu, 4);
24729 UDI opval = tmp_tmp;
24730 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24731 written |= (1 << 14);
24732 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24742 abuf->written = written;
24747 /* mqmachs: mqmachs$pack $FRintieven,$FRintjeven,$ACC40Sk */
24750 SEM_FN_NAME (frvbf,mqmachs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24752 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
24753 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24754 int UNUSED written = 0;
24755 IADDR UNUSED pc = abuf->addr;
24756 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24758 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
24759 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
24760 frvbf_media_acc_not_aligned (current_cpu);
24762 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
24763 frvbf_media_register_not_aligned (current_cpu);
24771 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24772 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24773 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24774 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24778 tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
24779 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24782 DI opval = MAKEDI (127, 0xffffffff);
24783 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24784 written |= (1 << 17);
24785 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24787 frvbf_media_overflow (current_cpu, 8);
24790 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24793 DI opval = MAKEDI (0xffffff80, 0);
24794 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24795 written |= (1 << 17);
24796 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24798 frvbf_media_overflow (current_cpu, 8);
24802 DI opval = tmp_tmp;
24803 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24804 written |= (1 << 17);
24805 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24812 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (1))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
24813 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24816 DI opval = MAKEDI (127, 0xffffffff);
24817 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24818 written |= (1 << 18);
24819 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24821 frvbf_media_overflow (current_cpu, 4);
24824 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24827 DI opval = MAKEDI (0xffffff80, 0);
24828 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24829 written |= (1 << 18);
24830 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24832 frvbf_media_overflow (current_cpu, 4);
24836 DI opval = tmp_tmp;
24837 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24838 written |= (1 << 18);
24839 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24845 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24846 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24847 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24848 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24852 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (2))), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
24853 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24856 DI opval = MAKEDI (127, 0xffffffff);
24857 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
24858 written |= (1 << 19);
24859 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24861 frvbf_media_overflow (current_cpu, 2);
24864 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24867 DI opval = MAKEDI (0xffffff80, 0);
24868 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
24869 written |= (1 << 19);
24870 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24872 frvbf_media_overflow (current_cpu, 2);
24876 DI opval = tmp_tmp;
24877 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
24878 written |= (1 << 19);
24879 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24886 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (3))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
24887 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24890 DI opval = MAKEDI (127, 0xffffffff);
24891 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
24892 written |= (1 << 20);
24893 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24895 frvbf_media_overflow (current_cpu, 1);
24898 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24901 DI opval = MAKEDI (0xffffff80, 0);
24902 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
24903 written |= (1 << 20);
24904 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24906 frvbf_media_overflow (current_cpu, 1);
24910 DI opval = tmp_tmp;
24911 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
24912 written |= (1 << 20);
24913 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24923 abuf->written = written;
24928 /* mqmachu: mqmachu$pack $FRintieven,$FRintjeven,$ACC40Uk */
24931 SEM_FN_NAME (frvbf,mqmachu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24933 #define FLD(f) abuf->fields.sfmt_cmqmachu.f
24934 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24935 int UNUSED written = 0;
24936 IADDR UNUSED pc = abuf->addr;
24937 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24939 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Uk))) {
24940 if (ANDSI (FLD (f_ACC40Uk), SUBSI (4, 1))) {
24941 frvbf_media_acc_not_aligned (current_cpu);
24943 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
24944 frvbf_media_register_not_aligned (current_cpu);
24952 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24953 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24954 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24955 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24959 tmp_tmp = ADDDI (GET_H_ACC40U (FLD (f_ACC40Uk)), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
24960 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24963 UDI opval = MAKEDI (255, 0xffffffff);
24964 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24965 written |= (1 << 17);
24966 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24968 frvbf_media_overflow (current_cpu, 8);
24971 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24974 UDI opval = MAKEDI (0, 0);
24975 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24976 written |= (1 << 17);
24977 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24979 frvbf_media_overflow (current_cpu, 8);
24983 UDI opval = tmp_tmp;
24984 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24985 written |= (1 << 17);
24986 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24993 tmp_tmp = ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (1))), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
24994 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24997 UDI opval = MAKEDI (255, 0xffffffff);
24998 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24999 written |= (1 << 18);
25000 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25002 frvbf_media_overflow (current_cpu, 4);
25005 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
25008 UDI opval = MAKEDI (0, 0);
25009 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
25010 written |= (1 << 18);
25011 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25013 frvbf_media_overflow (current_cpu, 4);
25017 UDI opval = tmp_tmp;
25018 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
25019 written |= (1 << 18);
25020 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25026 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25027 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25028 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25029 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25033 tmp_tmp = ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (2))), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
25034 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
25037 UDI opval = MAKEDI (255, 0xffffffff);
25038 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (2)), opval);
25039 written |= (1 << 19);
25040 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25042 frvbf_media_overflow (current_cpu, 2);
25045 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
25048 UDI opval = MAKEDI (0, 0);
25049 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (2)), opval);
25050 written |= (1 << 19);
25051 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25053 frvbf_media_overflow (current_cpu, 2);
25057 UDI opval = tmp_tmp;
25058 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (2)), opval);
25059 written |= (1 << 19);
25060 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25067 tmp_tmp = ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (3))), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
25068 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
25071 UDI opval = MAKEDI (255, 0xffffffff);
25072 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (3)), opval);
25073 written |= (1 << 20);
25074 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25076 frvbf_media_overflow (current_cpu, 1);
25079 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
25082 UDI opval = MAKEDI (0, 0);
25083 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (3)), opval);
25084 written |= (1 << 20);
25085 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25087 frvbf_media_overflow (current_cpu, 1);
25091 UDI opval = tmp_tmp;
25092 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (3)), opval);
25093 written |= (1 << 20);
25094 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25104 abuf->written = written;
25109 /* cmqmachs: cmqmachs$pack $FRintieven,$FRintjeven,$ACC40Sk,$CCi,$cond */
25112 SEM_FN_NAME (frvbf,cmqmachs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
25114 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
25115 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
25116 int UNUSED written = 0;
25117 IADDR UNUSED pc = abuf->addr;
25118 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
25120 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
25121 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
25122 frvbf_media_acc_not_aligned (current_cpu);
25124 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
25125 frvbf_media_register_not_aligned (current_cpu);
25127 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
25134 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25135 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25136 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25137 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25141 tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
25142 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25145 DI opval = MAKEDI (127, 0xffffffff);
25146 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25147 written |= (1 << 19);
25148 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25150 frvbf_media_overflow (current_cpu, 8);
25153 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25156 DI opval = MAKEDI (0xffffff80, 0);
25157 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25158 written |= (1 << 19);
25159 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25161 frvbf_media_overflow (current_cpu, 8);
25165 DI opval = tmp_tmp;
25166 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25167 written |= (1 << 19);
25168 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25175 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (1))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
25176 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25179 DI opval = MAKEDI (127, 0xffffffff);
25180 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25181 written |= (1 << 20);
25182 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25184 frvbf_media_overflow (current_cpu, 4);
25187 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25190 DI opval = MAKEDI (0xffffff80, 0);
25191 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25192 written |= (1 << 20);
25193 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25195 frvbf_media_overflow (current_cpu, 4);
25199 DI opval = tmp_tmp;
25200 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25201 written |= (1 << 20);
25202 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25208 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25209 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25210 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25211 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25215 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (2))), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
25216 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25219 DI opval = MAKEDI (127, 0xffffffff);
25220 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25221 written |= (1 << 21);
25222 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25224 frvbf_media_overflow (current_cpu, 2);
25227 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25230 DI opval = MAKEDI (0xffffff80, 0);
25231 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25232 written |= (1 << 21);
25233 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25235 frvbf_media_overflow (current_cpu, 2);
25239 DI opval = tmp_tmp;
25240 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25241 written |= (1 << 21);
25242 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25249 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (3))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
25250 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25253 DI opval = MAKEDI (127, 0xffffffff);
25254 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25255 written |= (1 << 22);
25256 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25258 frvbf_media_overflow (current_cpu, 1);
25261 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25264 DI opval = MAKEDI (0xffffff80, 0);
25265 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25266 written |= (1 << 22);
25267 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25269 frvbf_media_overflow (current_cpu, 1);
25273 DI opval = tmp_tmp;
25274 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25275 written |= (1 << 22);
25276 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25287 abuf->written = written;
25292 /* cmqmachu: cmqmachu$pack $FRintieven,$FRintjeven,$ACC40Uk,$CCi,$cond */
25295 SEM_FN_NAME (frvbf,cmqmachu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
25297 #define FLD(f) abuf->fields.sfmt_cmqmachu.f
25298 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
25299 int UNUSED written = 0;
25300 IADDR UNUSED pc = abuf->addr;
25301 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
25303 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Uk))) {
25304 if (ANDSI (FLD (f_ACC40Uk), SUBSI (4, 1))) {
25305 frvbf_media_acc_not_aligned (current_cpu);
25307 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
25308 frvbf_media_register_not_aligned (current_cpu);
25310 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
25317 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25318 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25319 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25320 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25324 tmp_tmp = ADDDI (GET_H_ACC40U (FLD (f_ACC40Uk)), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
25325 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
25328 UDI opval = MAKEDI (255, 0xffffffff);
25329 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
25330 written |= (1 << 19);
25331 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25333 frvbf_media_overflow (current_cpu, 8);
25336 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
25339 UDI opval = MAKEDI (0, 0);
25340 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
25341 written |= (1 << 19);
25342 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25344 frvbf_media_overflow (current_cpu, 8);
25348 UDI opval = tmp_tmp;
25349 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
25350 written |= (1 << 19);
25351 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25358 tmp_tmp = ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (1))), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
25359 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
25362 UDI opval = MAKEDI (255, 0xffffffff);
25363 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
25364 written |= (1 << 20);
25365 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25367 frvbf_media_overflow (current_cpu, 4);
25370 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
25373 UDI opval = MAKEDI (0, 0);
25374 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
25375 written |= (1 << 20);
25376 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25378 frvbf_media_overflow (current_cpu, 4);
25382 UDI opval = tmp_tmp;
25383 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
25384 written |= (1 << 20);
25385 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25391 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25392 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25393 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25394 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25398 tmp_tmp = ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (2))), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
25399 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
25402 UDI opval = MAKEDI (255, 0xffffffff);
25403 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (2)), opval);
25404 written |= (1 << 21);
25405 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25407 frvbf_media_overflow (current_cpu, 2);
25410 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
25413 UDI opval = MAKEDI (0, 0);
25414 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (2)), opval);
25415 written |= (1 << 21);
25416 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25418 frvbf_media_overflow (current_cpu, 2);
25422 UDI opval = tmp_tmp;
25423 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (2)), opval);
25424 written |= (1 << 21);
25425 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25432 tmp_tmp = ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (3))), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
25433 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
25436 UDI opval = MAKEDI (255, 0xffffffff);
25437 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (3)), opval);
25438 written |= (1 << 22);
25439 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25441 frvbf_media_overflow (current_cpu, 1);
25444 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
25447 UDI opval = MAKEDI (0, 0);
25448 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (3)), opval);
25449 written |= (1 << 22);
25450 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25452 frvbf_media_overflow (current_cpu, 1);
25456 UDI opval = tmp_tmp;
25457 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (3)), opval);
25458 written |= (1 << 22);
25459 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25470 abuf->written = written;
25475 /* mqxmachs: mqxmachs$pack $FRintieven,$FRintjeven,$ACC40Sk */
25478 SEM_FN_NAME (frvbf,mqxmachs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
25480 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
25481 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
25482 int UNUSED written = 0;
25483 IADDR UNUSED pc = abuf->addr;
25484 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
25486 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
25487 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
25488 frvbf_media_acc_not_aligned (current_cpu);
25490 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
25491 frvbf_media_register_not_aligned (current_cpu);
25499 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25500 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25501 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25502 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25506 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (2))), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
25507 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25510 DI opval = MAKEDI (127, 0xffffffff);
25511 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25512 written |= (1 << 19);
25513 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25515 frvbf_media_overflow (current_cpu, 2);
25518 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25521 DI opval = MAKEDI (0xffffff80, 0);
25522 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25523 written |= (1 << 19);
25524 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25526 frvbf_media_overflow (current_cpu, 2);
25530 DI opval = tmp_tmp;
25531 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25532 written |= (1 << 19);
25533 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25540 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (3))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
25541 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25544 DI opval = MAKEDI (127, 0xffffffff);
25545 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25546 written |= (1 << 20);
25547 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25549 frvbf_media_overflow (current_cpu, 1);
25552 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25555 DI opval = MAKEDI (0xffffff80, 0);
25556 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25557 written |= (1 << 20);
25558 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25560 frvbf_media_overflow (current_cpu, 1);
25564 DI opval = tmp_tmp;
25565 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25566 written |= (1 << 20);
25567 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25573 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25574 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25575 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25576 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25580 tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
25581 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25584 DI opval = MAKEDI (127, 0xffffffff);
25585 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25586 written |= (1 << 17);
25587 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25589 frvbf_media_overflow (current_cpu, 8);
25592 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25595 DI opval = MAKEDI (0xffffff80, 0);
25596 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25597 written |= (1 << 17);
25598 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25600 frvbf_media_overflow (current_cpu, 8);
25604 DI opval = tmp_tmp;
25605 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25606 written |= (1 << 17);
25607 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25614 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (1))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
25615 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25618 DI opval = MAKEDI (127, 0xffffffff);
25619 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25620 written |= (1 << 18);
25621 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25623 frvbf_media_overflow (current_cpu, 4);
25626 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25629 DI opval = MAKEDI (0xffffff80, 0);
25630 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25631 written |= (1 << 18);
25632 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25634 frvbf_media_overflow (current_cpu, 4);
25638 DI opval = tmp_tmp;
25639 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25640 written |= (1 << 18);
25641 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25651 abuf->written = written;
25656 /* mqxmacxhs: mqxmacxhs$pack $FRintieven,$FRintjeven,$ACC40Sk */
25659 SEM_FN_NAME (frvbf,mqxmacxhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
25661 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
25662 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
25663 int UNUSED written = 0;
25664 IADDR UNUSED pc = abuf->addr;
25665 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
25667 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
25668 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
25669 frvbf_media_acc_not_aligned (current_cpu);
25671 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
25672 frvbf_media_register_not_aligned (current_cpu);
25680 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25681 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25682 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25683 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25687 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (2))), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo)));
25688 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25691 DI opval = MAKEDI (127, 0xffffffff);
25692 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25693 written |= (1 << 19);
25694 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25696 frvbf_media_overflow (current_cpu, 2);
25699 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25702 DI opval = MAKEDI (0xffffff80, 0);
25703 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25704 written |= (1 << 19);
25705 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25707 frvbf_media_overflow (current_cpu, 2);
25711 DI opval = tmp_tmp;
25712 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25713 written |= (1 << 19);
25714 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25721 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (3))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi)));
25722 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25725 DI opval = MAKEDI (127, 0xffffffff);
25726 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25727 written |= (1 << 20);
25728 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25730 frvbf_media_overflow (current_cpu, 1);
25733 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25736 DI opval = MAKEDI (0xffffff80, 0);
25737 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25738 written |= (1 << 20);
25739 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25741 frvbf_media_overflow (current_cpu, 1);
25745 DI opval = tmp_tmp;
25746 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25747 written |= (1 << 20);
25748 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25754 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25755 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25756 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25757 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25761 tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo)));
25762 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25765 DI opval = MAKEDI (127, 0xffffffff);
25766 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25767 written |= (1 << 17);
25768 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25770 frvbf_media_overflow (current_cpu, 8);
25773 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25776 DI opval = MAKEDI (0xffffff80, 0);
25777 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25778 written |= (1 << 17);
25779 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25781 frvbf_media_overflow (current_cpu, 8);
25785 DI opval = tmp_tmp;
25786 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25787 written |= (1 << 17);
25788 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25795 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (1))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi)));
25796 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25799 DI opval = MAKEDI (127, 0xffffffff);
25800 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25801 written |= (1 << 18);
25802 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25804 frvbf_media_overflow (current_cpu, 4);
25807 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25810 DI opval = MAKEDI (0xffffff80, 0);
25811 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25812 written |= (1 << 18);
25813 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25815 frvbf_media_overflow (current_cpu, 4);
25819 DI opval = tmp_tmp;
25820 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25821 written |= (1 << 18);
25822 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25832 abuf->written = written;
25837 /* mqmacxhs: mqmacxhs$pack $FRintieven,$FRintjeven,$ACC40Sk */
25840 SEM_FN_NAME (frvbf,mqmacxhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
25842 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
25843 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
25844 int UNUSED written = 0;
25845 IADDR UNUSED pc = abuf->addr;
25846 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
25848 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
25849 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
25850 frvbf_media_acc_not_aligned (current_cpu);
25852 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
25853 frvbf_media_register_not_aligned (current_cpu);
25861 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25862 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25863 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25864 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25868 tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo)));
25869 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25872 DI opval = MAKEDI (127, 0xffffffff);
25873 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25874 written |= (1 << 17);
25875 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25877 frvbf_media_overflow (current_cpu, 8);
25880 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25883 DI opval = MAKEDI (0xffffff80, 0);
25884 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25885 written |= (1 << 17);
25886 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25888 frvbf_media_overflow (current_cpu, 8);
25892 DI opval = tmp_tmp;
25893 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25894 written |= (1 << 17);
25895 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25902 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (1))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi)));
25903 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25906 DI opval = MAKEDI (127, 0xffffffff);
25907 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25908 written |= (1 << 18);
25909 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25911 frvbf_media_overflow (current_cpu, 4);
25914 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25917 DI opval = MAKEDI (0xffffff80, 0);
25918 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25919 written |= (1 << 18);
25920 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25922 frvbf_media_overflow (current_cpu, 4);
25926 DI opval = tmp_tmp;
25927 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25928 written |= (1 << 18);
25929 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25935 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25936 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25937 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25938 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25942 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (2))), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo)));
25943 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25946 DI opval = MAKEDI (127, 0xffffffff);
25947 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25948 written |= (1 << 19);
25949 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25951 frvbf_media_overflow (current_cpu, 2);
25954 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25957 DI opval = MAKEDI (0xffffff80, 0);
25958 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25959 written |= (1 << 19);
25960 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25962 frvbf_media_overflow (current_cpu, 2);
25966 DI opval = tmp_tmp;
25967 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25968 written |= (1 << 19);
25969 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25976 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (3))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi)));
25977 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25980 DI opval = MAKEDI (127, 0xffffffff);
25981 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25982 written |= (1 << 20);
25983 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25985 frvbf_media_overflow (current_cpu, 1);
25988 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25991 DI opval = MAKEDI (0xffffff80, 0);
25992 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25993 written |= (1 << 20);
25994 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25996 frvbf_media_overflow (current_cpu, 1);
26000 DI opval = tmp_tmp;
26001 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
26002 written |= (1 << 20);
26003 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26013 abuf->written = written;
26018 /* mcpxrs: mcpxrs$pack $FRinti,$FRintj,$ACC40Sk */
26021 SEM_FN_NAME (frvbf,mcpxrs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26023 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26024 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26025 int UNUSED written = 0;
26026 IADDR UNUSED pc = abuf->addr;
26027 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26029 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
26036 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26037 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26038 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26039 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26044 tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
26045 tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
26046 tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26047 if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26050 DI opval = MAKEDI (127, 0xffffffff);
26051 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26052 written |= (1 << 9);
26053 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26055 frvbf_media_overflow (current_cpu, 8);
26058 if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26061 DI opval = MAKEDI (0xffffff80, 0);
26062 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26063 written |= (1 << 9);
26064 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26066 frvbf_media_overflow (current_cpu, 8);
26070 DI opval = tmp_tmp1;
26071 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26072 written |= (1 << 9);
26073 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26081 abuf->written = written;
26086 /* mcpxru: mcpxru$pack $FRinti,$FRintj,$ACC40Sk */
26089 SEM_FN_NAME (frvbf,mcpxru) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26091 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26092 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26093 int UNUSED written = 0;
26094 IADDR UNUSED pc = abuf->addr;
26095 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26097 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
26104 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26105 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26106 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26107 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26112 tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
26113 tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
26114 tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26115 if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
26118 DI opval = MAKEDI (255, 0xffffffff);
26119 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26120 written |= (1 << 9);
26121 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26123 frvbf_media_overflow (current_cpu, 8);
26126 if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
26129 DI opval = MAKEDI (0, 0);
26130 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26131 written |= (1 << 9);
26132 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26134 frvbf_media_overflow (current_cpu, 8);
26138 DI opval = tmp_tmp1;
26139 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26140 written |= (1 << 9);
26141 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26149 abuf->written = written;
26154 /* mcpxis: mcpxis$pack $FRinti,$FRintj,$ACC40Sk */
26157 SEM_FN_NAME (frvbf,mcpxis) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26159 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26160 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26161 int UNUSED written = 0;
26162 IADDR UNUSED pc = abuf->addr;
26163 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26165 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
26172 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26173 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26174 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26175 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26180 tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
26181 tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
26182 tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
26183 if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26186 DI opval = MAKEDI (127, 0xffffffff);
26187 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26188 written |= (1 << 9);
26189 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26191 frvbf_media_overflow (current_cpu, 8);
26194 if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26197 DI opval = MAKEDI (0xffffff80, 0);
26198 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26199 written |= (1 << 9);
26200 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26202 frvbf_media_overflow (current_cpu, 8);
26206 DI opval = tmp_tmp1;
26207 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26208 written |= (1 << 9);
26209 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26217 abuf->written = written;
26222 /* mcpxiu: mcpxiu$pack $FRinti,$FRintj,$ACC40Sk */
26225 SEM_FN_NAME (frvbf,mcpxiu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26227 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26228 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26229 int UNUSED written = 0;
26230 IADDR UNUSED pc = abuf->addr;
26231 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26233 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
26240 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26241 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26242 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26243 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26248 tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
26249 tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
26250 tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
26251 if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
26254 DI opval = MAKEDI (255, 0xffffffff);
26255 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26256 written |= (1 << 9);
26257 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26259 frvbf_media_overflow (current_cpu, 8);
26262 if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
26265 DI opval = MAKEDI (0, 0);
26266 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26267 written |= (1 << 9);
26268 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26270 frvbf_media_overflow (current_cpu, 8);
26274 DI opval = tmp_tmp1;
26275 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26276 written |= (1 << 9);
26277 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26285 abuf->written = written;
26290 /* cmcpxrs: cmcpxrs$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
26293 SEM_FN_NAME (frvbf,cmcpxrs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26295 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26296 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26297 int UNUSED written = 0;
26298 IADDR UNUSED pc = abuf->addr;
26299 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26301 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
26302 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
26309 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26310 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26311 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26312 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26317 tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
26318 tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
26319 tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26320 if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26323 DI opval = MAKEDI (127, 0xffffffff);
26324 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26325 written |= (1 << 11);
26326 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26328 frvbf_media_overflow (current_cpu, 8);
26331 if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26334 DI opval = MAKEDI (0xffffff80, 0);
26335 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26336 written |= (1 << 11);
26337 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26339 frvbf_media_overflow (current_cpu, 8);
26343 DI opval = tmp_tmp1;
26344 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26345 written |= (1 << 11);
26346 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26355 abuf->written = written;
26360 /* cmcpxru: cmcpxru$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
26363 SEM_FN_NAME (frvbf,cmcpxru) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26365 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26366 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26367 int UNUSED written = 0;
26368 IADDR UNUSED pc = abuf->addr;
26369 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26371 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
26372 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
26379 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26380 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26381 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26382 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26387 tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
26388 tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
26389 tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26390 if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
26393 DI opval = MAKEDI (255, 0xffffffff);
26394 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26395 written |= (1 << 11);
26396 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26398 frvbf_media_overflow (current_cpu, 8);
26401 if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
26404 DI opval = MAKEDI (0, 0);
26405 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26406 written |= (1 << 11);
26407 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26409 frvbf_media_overflow (current_cpu, 8);
26413 DI opval = tmp_tmp1;
26414 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26415 written |= (1 << 11);
26416 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26425 abuf->written = written;
26430 /* cmcpxis: cmcpxis$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
26433 SEM_FN_NAME (frvbf,cmcpxis) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26435 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26436 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26437 int UNUSED written = 0;
26438 IADDR UNUSED pc = abuf->addr;
26439 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26441 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
26442 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
26449 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26450 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26451 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26452 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26457 tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
26458 tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
26459 tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
26460 if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26463 DI opval = MAKEDI (127, 0xffffffff);
26464 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26465 written |= (1 << 11);
26466 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26468 frvbf_media_overflow (current_cpu, 8);
26471 if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26474 DI opval = MAKEDI (0xffffff80, 0);
26475 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26476 written |= (1 << 11);
26477 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26479 frvbf_media_overflow (current_cpu, 8);
26483 DI opval = tmp_tmp1;
26484 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26485 written |= (1 << 11);
26486 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26495 abuf->written = written;
26500 /* cmcpxiu: cmcpxiu$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
26503 SEM_FN_NAME (frvbf,cmcpxiu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26505 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26506 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26507 int UNUSED written = 0;
26508 IADDR UNUSED pc = abuf->addr;
26509 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26511 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
26512 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
26519 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26520 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26521 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26522 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26527 tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
26528 tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
26529 tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
26530 if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
26533 DI opval = MAKEDI (255, 0xffffffff);
26534 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26535 written |= (1 << 11);
26536 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26538 frvbf_media_overflow (current_cpu, 8);
26541 if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
26544 DI opval = MAKEDI (0, 0);
26545 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26546 written |= (1 << 11);
26547 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26549 frvbf_media_overflow (current_cpu, 8);
26553 DI opval = tmp_tmp1;
26554 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26555 written |= (1 << 11);
26556 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26565 abuf->written = written;
26570 /* mqcpxrs: mqcpxrs$pack $FRintieven,$FRintjeven,$ACC40Sk */
26573 SEM_FN_NAME (frvbf,mqcpxrs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26575 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
26576 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26577 int UNUSED written = 0;
26578 IADDR UNUSED pc = abuf->addr;
26579 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26581 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
26582 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
26583 frvbf_media_acc_not_aligned (current_cpu);
26585 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
26586 frvbf_media_register_not_aligned (current_cpu);
26594 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26595 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26596 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26597 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26602 tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
26603 tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
26604 tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26605 if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26608 DI opval = MAKEDI (127, 0xffffffff);
26609 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26610 written |= (1 << 13);
26611 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26613 frvbf_media_overflow (current_cpu, 8);
26616 if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26619 DI opval = MAKEDI (0xffffff80, 0);
26620 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26621 written |= (1 << 13);
26622 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26624 frvbf_media_overflow (current_cpu, 8);
26628 DI opval = tmp_tmp1;
26629 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26630 written |= (1 << 13);
26631 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26637 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26638 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26639 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26640 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26645 tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
26646 tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
26647 tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26648 if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26651 DI opval = MAKEDI (127, 0xffffffff);
26652 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26653 written |= (1 << 14);
26654 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26656 frvbf_media_overflow (current_cpu, 4);
26659 if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26662 DI opval = MAKEDI (0xffffff80, 0);
26663 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26664 written |= (1 << 14);
26665 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26667 frvbf_media_overflow (current_cpu, 4);
26671 DI opval = tmp_tmp1;
26672 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26673 written |= (1 << 14);
26674 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26684 abuf->written = written;
26689 /* mqcpxru: mqcpxru$pack $FRintieven,$FRintjeven,$ACC40Sk */
26692 SEM_FN_NAME (frvbf,mqcpxru) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26694 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
26695 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26696 int UNUSED written = 0;
26697 IADDR UNUSED pc = abuf->addr;
26698 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26700 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
26701 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
26702 frvbf_media_acc_not_aligned (current_cpu);
26704 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
26705 frvbf_media_register_not_aligned (current_cpu);
26713 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26714 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26715 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26716 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26721 tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
26722 tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
26723 tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26724 if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
26727 DI opval = MAKEDI (255, 0xffffffff);
26728 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26729 written |= (1 << 13);
26730 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26732 frvbf_media_overflow (current_cpu, 8);
26735 if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
26738 DI opval = MAKEDI (0, 0);
26739 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26740 written |= (1 << 13);
26741 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26743 frvbf_media_overflow (current_cpu, 8);
26747 DI opval = tmp_tmp1;
26748 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26749 written |= (1 << 13);
26750 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26756 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26757 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26758 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26759 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26764 tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
26765 tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
26766 tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26767 if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
26770 DI opval = MAKEDI (255, 0xffffffff);
26771 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26772 written |= (1 << 14);
26773 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26775 frvbf_media_overflow (current_cpu, 4);
26778 if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
26781 DI opval = MAKEDI (0, 0);
26782 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26783 written |= (1 << 14);
26784 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26786 frvbf_media_overflow (current_cpu, 4);
26790 DI opval = tmp_tmp1;
26791 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26792 written |= (1 << 14);
26793 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26803 abuf->written = written;
26808 /* mqcpxis: mqcpxis$pack $FRintieven,$FRintjeven,$ACC40Sk */
26811 SEM_FN_NAME (frvbf,mqcpxis) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26813 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
26814 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26815 int UNUSED written = 0;
26816 IADDR UNUSED pc = abuf->addr;
26817 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26819 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
26820 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
26821 frvbf_media_acc_not_aligned (current_cpu);
26823 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
26824 frvbf_media_register_not_aligned (current_cpu);
26832 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26833 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26834 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26835 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26840 tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
26841 tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
26842 tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
26843 if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26846 DI opval = MAKEDI (127, 0xffffffff);
26847 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26848 written |= (1 << 13);
26849 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26851 frvbf_media_overflow (current_cpu, 8);
26854 if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26857 DI opval = MAKEDI (0xffffff80, 0);
26858 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26859 written |= (1 << 13);
26860 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26862 frvbf_media_overflow (current_cpu, 8);
26866 DI opval = tmp_tmp1;
26867 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26868 written |= (1 << 13);
26869 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26875 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26876 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26877 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26878 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26883 tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
26884 tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
26885 tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
26886 if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26889 DI opval = MAKEDI (127, 0xffffffff);
26890 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26891 written |= (1 << 14);
26892 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26894 frvbf_media_overflow (current_cpu, 4);
26897 if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26900 DI opval = MAKEDI (0xffffff80, 0);
26901 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26902 written |= (1 << 14);
26903 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26905 frvbf_media_overflow (current_cpu, 4);
26909 DI opval = tmp_tmp1;
26910 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26911 written |= (1 << 14);
26912 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26922 abuf->written = written;
26927 /* mqcpxiu: mqcpxiu$pack $FRintieven,$FRintjeven,$ACC40Sk */
26930 SEM_FN_NAME (frvbf,mqcpxiu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26932 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
26933 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26934 int UNUSED written = 0;
26935 IADDR UNUSED pc = abuf->addr;
26936 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26938 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
26939 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
26940 frvbf_media_acc_not_aligned (current_cpu);
26942 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
26943 frvbf_media_register_not_aligned (current_cpu);
26951 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26952 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26953 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26954 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26959 tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
26960 tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
26961 tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
26962 if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
26965 DI opval = MAKEDI (255, 0xffffffff);
26966 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26967 written |= (1 << 13);
26968 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26970 frvbf_media_overflow (current_cpu, 8);
26973 if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
26976 DI opval = MAKEDI (0, 0);
26977 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26978 written |= (1 << 13);
26979 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26981 frvbf_media_overflow (current_cpu, 8);
26985 DI opval = tmp_tmp1;
26986 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26987 written |= (1 << 13);
26988 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26994 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26995 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26996 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26997 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
27002 tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
27003 tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
27004 tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
27005 if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
27008 DI opval = MAKEDI (255, 0xffffffff);
27009 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
27010 written |= (1 << 14);
27011 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
27013 frvbf_media_overflow (current_cpu, 4);
27016 if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
27019 DI opval = MAKEDI (0, 0);
27020 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
27021 written |= (1 << 14);
27022 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
27024 frvbf_media_overflow (current_cpu, 4);
27028 DI opval = tmp_tmp1;
27029 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
27030 written |= (1 << 14);
27031 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
27041 abuf->written = written;
27046 /* mexpdhw: mexpdhw$pack $FRinti,$u6,$FRintk */
27049 SEM_FN_NAME (frvbf,mexpdhw) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27051 #define FLD(f) abuf->fields.sfmt_cmexpdhw.f
27052 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27053 int UNUSED written = 0;
27054 IADDR UNUSED pc = abuf->addr;
27055 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27059 if (ANDSI (FLD (f_u6), 1)) {
27060 tmp_tmp = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
27062 tmp_tmp = GET_H_FR_HI (((FLD (f_FRi)) + (0)));
27065 UHI opval = tmp_tmp;
27066 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27067 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27070 UHI opval = tmp_tmp;
27071 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27072 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27080 /* cmexpdhw: cmexpdhw$pack $FRinti,$u6,$FRintk,$CCi,$cond */
27083 SEM_FN_NAME (frvbf,cmexpdhw) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27085 #define FLD(f) abuf->fields.sfmt_cmexpdhw.f
27086 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27087 int UNUSED written = 0;
27088 IADDR UNUSED pc = abuf->addr;
27089 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27091 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
27094 if (ANDSI (FLD (f_u6), 1)) {
27095 tmp_tmp = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
27097 tmp_tmp = GET_H_FR_HI (((FLD (f_FRi)) + (0)));
27100 UHI opval = tmp_tmp;
27101 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27102 written |= (1 << 7);
27103 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27106 UHI opval = tmp_tmp;
27107 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27108 written |= (1 << 8);
27109 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27114 abuf->written = written;
27119 /* mexpdhd: mexpdhd$pack $FRinti,$u6,$FRintkeven */
27122 SEM_FN_NAME (frvbf,mexpdhd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27124 #define FLD(f) abuf->fields.sfmt_cmexpdhd.f
27125 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27126 int UNUSED written = 0;
27127 IADDR UNUSED pc = abuf->addr;
27128 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27130 if (ANDSI (FLD (f_FRk), SUBSI (2, 1))) {
27131 frvbf_media_register_not_aligned (current_cpu);
27136 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27137 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27138 written |= (1 << 6);
27139 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27141 if (ANDSI (FLD (f_u6), 1)) {
27142 tmp_tmp = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
27144 tmp_tmp = GET_H_FR_HI (((FLD (f_FRi)) + (0)));
27147 UHI opval = tmp_tmp;
27148 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27149 written |= (1 << 7);
27150 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27153 UHI opval = tmp_tmp;
27154 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27155 written |= (1 << 9);
27156 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27159 UHI opval = tmp_tmp;
27160 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
27161 written |= (1 << 8);
27162 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27165 UHI opval = tmp_tmp;
27166 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
27167 written |= (1 << 10);
27168 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27173 abuf->written = written;
27178 /* cmexpdhd: cmexpdhd$pack $FRinti,$u6,$FRintkeven,$CCi,$cond */
27181 SEM_FN_NAME (frvbf,cmexpdhd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27183 #define FLD(f) abuf->fields.sfmt_cmexpdhd.f
27184 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27185 int UNUSED written = 0;
27186 IADDR UNUSED pc = abuf->addr;
27187 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27189 if (ANDSI (FLD (f_FRk), SUBSI (2, 1))) {
27190 frvbf_media_register_not_aligned (current_cpu);
27192 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
27196 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27197 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27198 written |= (1 << 8);
27199 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27201 if (ANDSI (FLD (f_u6), 1)) {
27202 tmp_tmp = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
27204 tmp_tmp = GET_H_FR_HI (((FLD (f_FRi)) + (0)));
27207 UHI opval = tmp_tmp;
27208 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27209 written |= (1 << 9);
27210 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27213 UHI opval = tmp_tmp;
27214 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27215 written |= (1 << 11);
27216 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27219 UHI opval = tmp_tmp;
27220 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
27221 written |= (1 << 10);
27222 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27225 UHI opval = tmp_tmp;
27226 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
27227 written |= (1 << 12);
27228 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27234 abuf->written = written;
27239 /* mpackh: mpackh$pack $FRinti,$FRintj,$FRintk */
27242 SEM_FN_NAME (frvbf,mpackh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27244 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
27245 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27246 int UNUSED written = 0;
27247 IADDR UNUSED pc = abuf->addr;
27248 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27252 UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
27253 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27254 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27257 UHI opval = GET_H_FR_LO (((FLD (f_FRj)) + (0)));
27258 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27259 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27267 /* mdpackh: mdpackh$pack $FRintieven,$FRintjeven,$FRintkeven */
27270 SEM_FN_NAME (frvbf,mdpackh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27272 #define FLD(f) abuf->fields.sfmt_mdpackh.f
27273 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27274 int UNUSED written = 0;
27275 IADDR UNUSED pc = abuf->addr;
27276 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27278 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
27279 frvbf_media_register_not_aligned (current_cpu);
27283 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
27284 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
27285 written |= (1 << 10);
27286 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27289 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27290 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27291 written |= (1 << 11);
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 written |= (1 << 12);
27298 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27302 UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
27303 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27304 written |= (1 << 13);
27305 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27308 UHI opval = GET_H_FR_LO (((FLD (f_FRj)) + (0)));
27309 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27310 written |= (1 << 15);
27311 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27316 UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (1)));
27317 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
27318 written |= (1 << 14);
27319 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27322 UHI opval = GET_H_FR_LO (((FLD (f_FRj)) + (1)));
27323 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
27324 written |= (1 << 16);
27325 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27331 abuf->written = written;
27336 /* munpackh: munpackh$pack $FRinti,$FRintkeven */
27339 SEM_FN_NAME (frvbf,munpackh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27341 #define FLD(f) abuf->fields.sfmt_munpackh.f
27342 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27343 int UNUSED written = 0;
27344 IADDR UNUSED pc = abuf->addr;
27345 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27347 if (ANDSI (FLD (f_FRk), SUBSI (2, 1))) {
27348 frvbf_media_register_not_aligned (current_cpu);
27352 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
27353 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
27354 written |= (1 << 6);
27355 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27358 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27359 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27360 written |= (1 << 7);
27361 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27365 UHI opval = GET_H_FR_HI (((FLD (f_FRi)) + (0)));
27366 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27367 written |= (1 << 8);
27368 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27371 UHI opval = GET_H_FR_HI (((FLD (f_FRi)) + (0)));
27372 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27373 written |= (1 << 10);
27374 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27377 UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
27378 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (ADDSI (0, 1))), opval);
27379 written |= (1 << 9);
27380 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27383 UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
27384 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (ADDSI (0, 1))), opval);
27385 written |= (1 << 11);
27386 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27392 abuf->written = written;
27397 /* mdunpackh: mdunpackh$pack $FRintieven,$FRintk */
27400 SEM_FN_NAME (frvbf,mdunpackh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27402 #define FLD(f) abuf->fields.sfmt_mdunpackh.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);
27408 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (4, 1)))) {
27409 frvbf_media_register_not_aligned (current_cpu);
27413 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
27414 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
27415 written |= (1 << 8);
27416 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27419 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27420 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27421 written |= (1 << 9);
27422 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27426 UHI opval = GET_H_FR_HI (((FLD (f_FRi)) + (0)));
27427 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27428 written |= (1 << 10);
27429 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27432 UHI opval = GET_H_FR_HI (((FLD (f_FRi)) + (0)));
27433 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27434 written |= (1 << 14);
27435 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27438 UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
27439 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (ADDSI (0, 1))), opval);
27440 written |= (1 << 12);
27441 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27444 UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
27445 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (ADDSI (0, 1))), opval);
27446 written |= (1 << 16);
27447 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27452 UHI opval = GET_H_FR_HI (((FLD (f_FRi)) + (1)));
27453 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (2)), opval);
27454 written |= (1 << 11);
27455 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27458 UHI opval = GET_H_FR_HI (((FLD (f_FRi)) + (1)));
27459 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (2)), opval);
27460 written |= (1 << 15);
27461 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27464 UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (1)));
27465 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (ADDSI (2, 1))), opval);
27466 written |= (1 << 13);
27467 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27470 UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (1)));
27471 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (ADDSI (2, 1))), opval);
27472 written |= (1 << 17);
27473 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27479 abuf->written = written;
27484 /* mbtoh: mbtoh$pack $FRintj,$FRintkeven */
27487 SEM_FN_NAME (frvbf,mbtoh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27489 #define FLD(f) abuf->fields.sfmt_cmbtoh.f
27490 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27491 int UNUSED written = 0;
27492 IADDR UNUSED pc = abuf->addr;
27493 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27497 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27498 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27499 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27502 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27503 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27504 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27506 if (ANDSI (FLD (f_FRk), SUBSI (2, 1))) {
27507 frvbf_media_register_not_aligned (current_cpu);
27511 UHI opval = GET_H_FR_3 (((FLD (f_FRj)) + (0)));
27512 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27513 written |= (1 << 10);
27514 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27517 UHI opval = GET_H_FR_2 (((FLD (f_FRj)) + (0)));
27518 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27519 written |= (1 << 12);
27520 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27523 UHI opval = GET_H_FR_1 (((FLD (f_FRj)) + (0)));
27524 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
27525 written |= (1 << 11);
27526 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27529 UHI opval = GET_H_FR_0 (((FLD (f_FRj)) + (0)));
27530 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
27531 written |= (1 << 13);
27532 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27538 abuf->written = written;
27543 /* cmbtoh: cmbtoh$pack $FRintj,$FRintkeven,$CCi,$cond */
27546 SEM_FN_NAME (frvbf,cmbtoh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27548 #define FLD(f) abuf->fields.sfmt_cmbtoh.f
27549 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27550 int UNUSED written = 0;
27551 IADDR UNUSED pc = abuf->addr;
27552 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27556 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27557 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27558 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27561 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27562 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27563 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27565 if (ANDSI (FLD (f_FRk), SUBSI (2, 1))) {
27566 frvbf_media_register_not_aligned (current_cpu);
27568 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
27571 UHI opval = GET_H_FR_3 (((FLD (f_FRj)) + (0)));
27572 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27573 written |= (1 << 12);
27574 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27577 UHI opval = GET_H_FR_2 (((FLD (f_FRj)) + (0)));
27578 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27579 written |= (1 << 14);
27580 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27583 UHI opval = GET_H_FR_1 (((FLD (f_FRj)) + (0)));
27584 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
27585 written |= (1 << 13);
27586 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27589 UHI opval = GET_H_FR_0 (((FLD (f_FRj)) + (0)));
27590 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
27591 written |= (1 << 15);
27592 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27599 abuf->written = written;
27604 /* mhtob: mhtob$pack $FRintjeven,$FRintk */
27607 SEM_FN_NAME (frvbf,mhtob) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27609 #define FLD(f) abuf->fields.sfmt_cmhtob.f
27610 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27611 int UNUSED written = 0;
27612 IADDR UNUSED pc = abuf->addr;
27613 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27617 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27618 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27619 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27622 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27623 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27624 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27626 if (ANDSI (FLD (f_FRj), SUBSI (2, 1))) {
27627 frvbf_media_register_not_aligned (current_cpu);
27631 UHI opval = GET_H_FR_HI (((FLD (f_FRj)) + (0)));
27632 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_3_set, ((FLD (f_FRk)) + (0)), opval);
27633 written |= (1 << 13);
27634 TRACE_RESULT (current_cpu, abuf, "fr_3", 'x', opval);
27637 UHI opval = GET_H_FR_LO (((FLD (f_FRj)) + (0)));
27638 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_2_set, ((FLD (f_FRk)) + (0)), opval);
27639 written |= (1 << 12);
27640 TRACE_RESULT (current_cpu, abuf, "fr_2", 'x', opval);
27643 UHI opval = GET_H_FR_HI (((FLD (f_FRj)) + (1)));
27644 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_1_set, ((FLD (f_FRk)) + (0)), opval);
27645 written |= (1 << 11);
27646 TRACE_RESULT (current_cpu, abuf, "fr_1", 'x', opval);
27649 UHI opval = GET_H_FR_LO (((FLD (f_FRj)) + (1)));
27650 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_0_set, ((FLD (f_FRk)) + (0)), opval);
27651 written |= (1 << 10);
27652 TRACE_RESULT (current_cpu, abuf, "fr_0", 'x', opval);
27658 abuf->written = written;
27663 /* cmhtob: cmhtob$pack $FRintjeven,$FRintk,$CCi,$cond */
27666 SEM_FN_NAME (frvbf,cmhtob) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27668 #define FLD(f) abuf->fields.sfmt_cmhtob.f
27669 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27670 int UNUSED written = 0;
27671 IADDR UNUSED pc = abuf->addr;
27672 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27676 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27677 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27678 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27681 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27682 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27683 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27685 if (ANDSI (FLD (f_FRj), SUBSI (2, 1))) {
27686 frvbf_media_register_not_aligned (current_cpu);
27688 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
27691 UHI opval = GET_H_FR_HI (((FLD (f_FRj)) + (0)));
27692 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_3_set, ((FLD (f_FRk)) + (0)), opval);
27693 written |= (1 << 15);
27694 TRACE_RESULT (current_cpu, abuf, "fr_3", 'x', opval);
27697 UHI opval = GET_H_FR_LO (((FLD (f_FRj)) + (0)));
27698 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_2_set, ((FLD (f_FRk)) + (0)), opval);
27699 written |= (1 << 14);
27700 TRACE_RESULT (current_cpu, abuf, "fr_2", 'x', opval);
27703 UHI opval = GET_H_FR_HI (((FLD (f_FRj)) + (1)));
27704 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_1_set, ((FLD (f_FRk)) + (0)), opval);
27705 written |= (1 << 13);
27706 TRACE_RESULT (current_cpu, abuf, "fr_1", 'x', opval);
27709 UHI opval = GET_H_FR_LO (((FLD (f_FRj)) + (1)));
27710 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_0_set, ((FLD (f_FRk)) + (0)), opval);
27711 written |= (1 << 12);
27712 TRACE_RESULT (current_cpu, abuf, "fr_0", 'x', opval);
27719 abuf->written = written;
27724 /* mbtohe: mbtohe$pack $FRintj,$FRintk */
27727 SEM_FN_NAME (frvbf,mbtohe) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27729 #define FLD(f) abuf->fields.sfmt_cmbtohe.f
27730 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27731 int UNUSED written = 0;
27732 IADDR UNUSED pc = abuf->addr;
27733 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27737 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27738 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27739 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27742 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27743 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27744 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27746 if (ANDSI (FLD (f_FRk), SUBSI (4, 1))) {
27747 frvbf_media_register_not_aligned (current_cpu);
27751 UHI opval = GET_H_FR_3 (((FLD (f_FRj)) + (0)));
27752 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27753 written |= (1 << 10);
27754 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27757 UHI opval = GET_H_FR_3 (((FLD (f_FRj)) + (0)));
27758 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27759 written |= (1 << 14);
27760 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27763 UHI opval = GET_H_FR_2 (((FLD (f_FRj)) + (0)));
27764 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
27765 written |= (1 << 11);
27766 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27769 UHI opval = GET_H_FR_2 (((FLD (f_FRj)) + (0)));
27770 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
27771 written |= (1 << 15);
27772 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27775 UHI opval = GET_H_FR_1 (((FLD (f_FRj)) + (0)));
27776 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (2)), opval);
27777 written |= (1 << 12);
27778 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27781 UHI opval = GET_H_FR_1 (((FLD (f_FRj)) + (0)));
27782 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (2)), opval);
27783 written |= (1 << 16);
27784 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27787 UHI opval = GET_H_FR_0 (((FLD (f_FRj)) + (0)));
27788 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (3)), opval);
27789 written |= (1 << 13);
27790 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27793 UHI opval = GET_H_FR_0 (((FLD (f_FRj)) + (0)));
27794 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (3)), opval);
27795 written |= (1 << 17);
27796 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27802 abuf->written = written;
27807 /* cmbtohe: cmbtohe$pack $FRintj,$FRintk,$CCi,$cond */
27810 SEM_FN_NAME (frvbf,cmbtohe) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27812 #define FLD(f) abuf->fields.sfmt_cmbtohe.f
27813 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27814 int UNUSED written = 0;
27815 IADDR UNUSED pc = abuf->addr;
27816 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27820 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27821 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27822 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27825 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27826 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27827 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27829 if (ANDSI (FLD (f_FRk), SUBSI (4, 1))) {
27830 frvbf_media_register_not_aligned (current_cpu);
27832 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
27835 UHI opval = GET_H_FR_3 (((FLD (f_FRj)) + (0)));
27836 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27837 written |= (1 << 12);
27838 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27841 UHI opval = GET_H_FR_3 (((FLD (f_FRj)) + (0)));
27842 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27843 written |= (1 << 16);
27844 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27847 UHI opval = GET_H_FR_2 (((FLD (f_FRj)) + (0)));
27848 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
27849 written |= (1 << 13);
27850 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27853 UHI opval = GET_H_FR_2 (((FLD (f_FRj)) + (0)));
27854 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
27855 written |= (1 << 17);
27856 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27859 UHI opval = GET_H_FR_1 (((FLD (f_FRj)) + (0)));
27860 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (2)), opval);
27861 written |= (1 << 14);
27862 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27865 UHI opval = GET_H_FR_1 (((FLD (f_FRj)) + (0)));
27866 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (2)), opval);
27867 written |= (1 << 18);
27868 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27871 UHI opval = GET_H_FR_0 (((FLD (f_FRj)) + (0)));
27872 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (3)), opval);
27873 written |= (1 << 15);
27874 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27877 UHI opval = GET_H_FR_0 (((FLD (f_FRj)) + (0)));
27878 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (3)), opval);
27879 written |= (1 << 19);
27880 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27887 abuf->written = written;
27892 /* mnop: mnop$pack */
27895 SEM_FN_NAME (frvbf,mnop) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27897 #define FLD(f) abuf->fields.fmt_empty.f
27898 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27899 int UNUSED written = 0;
27900 IADDR UNUSED pc = abuf->addr;
27901 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27903 ((void) 0); /*nop*/
27909 /* mclracc-0: mclracc$pack $ACC40Sk,$A0 */
27912 SEM_FN_NAME (frvbf,mclracc_0) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27914 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
27915 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27916 int UNUSED written = 0;
27917 IADDR UNUSED pc = abuf->addr;
27918 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27920 frvbf_clear_accumulators (current_cpu, FLD (f_ACC40Sk), 0);
27926 /* mclracc-1: mclracc$pack $ACC40Sk,$A1 */
27929 SEM_FN_NAME (frvbf,mclracc_1) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27931 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
27932 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27933 int UNUSED written = 0;
27934 IADDR UNUSED pc = abuf->addr;
27935 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27937 frvbf_clear_accumulators (current_cpu, FLD (f_ACC40Sk), 1);
27943 /* mrdacc: mrdacc$pack $ACC40Si,$FRintk */
27946 SEM_FN_NAME (frvbf,mrdacc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27948 #define FLD(f) abuf->fields.sfmt_mcuti.f
27949 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27950 int UNUSED written = 0;
27951 IADDR UNUSED pc = abuf->addr;
27952 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27955 SI opval = GET_H_ACC40S (FLD (f_ACC40Si));
27956 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27957 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27964 /* mrdaccg: mrdaccg$pack $ACCGi,$FRintk */
27967 SEM_FN_NAME (frvbf,mrdaccg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27969 #define FLD(f) abuf->fields.sfmt_mrdaccg.f
27970 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27971 int UNUSED written = 0;
27972 IADDR UNUSED pc = abuf->addr;
27973 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27976 SI opval = GET_H_ACCG (FLD (f_ACCGi));
27977 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27978 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27985 /* mwtacc: mwtacc$pack $FRinti,$ACC40Sk */
27988 SEM_FN_NAME (frvbf,mwtacc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27990 #define FLD(f) abuf->fields.sfmt_cmmachs.f
27991 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27992 int UNUSED written = 0;
27993 IADDR UNUSED pc = abuf->addr;
27994 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27997 DI opval = ORDI (ANDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MAKEDI (0xffffffff, 0)), GET_H_FR_INT (FLD (f_FRi)));
27998 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
27999 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
28006 /* mwtaccg: mwtaccg$pack $FRinti,$ACCGk */
28009 SEM_FN_NAME (frvbf,mwtaccg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
28011 #define FLD(f) abuf->fields.sfmt_mwtaccg.f
28012 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
28013 int UNUSED written = 0;
28014 IADDR UNUSED pc = abuf->addr;
28015 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
28018 frv_ref_SI (GET_H_ACCG (FLD (f_ACCGk)));
28020 USI opval = GET_H_FR_INT (FLD (f_FRi));
28021 sim_queue_fn_si_write (current_cpu, frvbf_h_accg_set, FLD (f_ACCGk), opval);
28022 TRACE_RESULT (current_cpu, abuf, "accg", 'x', opval);
28030 /* mcop1: mcop1$pack $FRi,$FRj,$FRk */
28033 SEM_FN_NAME (frvbf,mcop1) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
28035 #define FLD(f) abuf->fields.fmt_empty.f
28036 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
28037 int UNUSED written = 0;
28038 IADDR UNUSED pc = abuf->addr;
28039 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
28041 frvbf_media_cop (current_cpu, 1);
28047 /* mcop2: mcop2$pack $FRi,$FRj,$FRk */
28050 SEM_FN_NAME (frvbf,mcop2) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
28052 #define FLD(f) abuf->fields.fmt_empty.f
28053 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
28054 int UNUSED written = 0;
28055 IADDR UNUSED pc = abuf->addr;
28056 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
28058 frvbf_media_cop (current_cpu, 2);
28064 /* fnop: fnop$pack */
28067 SEM_FN_NAME (frvbf,fnop) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
28069 #define FLD(f) abuf->fields.fmt_empty.f
28070 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
28071 int UNUSED written = 0;
28072 IADDR UNUSED pc = abuf->addr;
28073 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
28075 ((void) 0); /*nop*/
28081 /* Table of all semantic fns. */
28083 static const struct sem_fn_desc sem_fns[] = {
28084 { FRVBF_INSN_X_INVALID, SEM_FN_NAME (frvbf,x_invalid) },
28085 { FRVBF_INSN_X_AFTER, SEM_FN_NAME (frvbf,x_after) },
28086 { FRVBF_INSN_X_BEFORE, SEM_FN_NAME (frvbf,x_before) },
28087 { FRVBF_INSN_X_CTI_CHAIN, SEM_FN_NAME (frvbf,x_cti_chain) },
28088 { FRVBF_INSN_X_CHAIN, SEM_FN_NAME (frvbf,x_chain) },
28089 { FRVBF_INSN_X_BEGIN, SEM_FN_NAME (frvbf,x_begin) },
28090 { FRVBF_INSN_ADD, SEM_FN_NAME (frvbf,add) },
28091 { FRVBF_INSN_SUB, SEM_FN_NAME (frvbf,sub) },
28092 { FRVBF_INSN_AND, SEM_FN_NAME (frvbf,and) },
28093 { FRVBF_INSN_OR, SEM_FN_NAME (frvbf,or) },
28094 { FRVBF_INSN_XOR, SEM_FN_NAME (frvbf,xor) },
28095 { FRVBF_INSN_NOT, SEM_FN_NAME (frvbf,not) },
28096 { FRVBF_INSN_SDIV, SEM_FN_NAME (frvbf,sdiv) },
28097 { FRVBF_INSN_NSDIV, SEM_FN_NAME (frvbf,nsdiv) },
28098 { FRVBF_INSN_UDIV, SEM_FN_NAME (frvbf,udiv) },
28099 { FRVBF_INSN_NUDIV, SEM_FN_NAME (frvbf,nudiv) },
28100 { FRVBF_INSN_SMUL, SEM_FN_NAME (frvbf,smul) },
28101 { FRVBF_INSN_UMUL, SEM_FN_NAME (frvbf,umul) },
28102 { FRVBF_INSN_SMU, SEM_FN_NAME (frvbf,smu) },
28103 { FRVBF_INSN_SMASS, SEM_FN_NAME (frvbf,smass) },
28104 { FRVBF_INSN_SMSSS, SEM_FN_NAME (frvbf,smsss) },
28105 { FRVBF_INSN_SLL, SEM_FN_NAME (frvbf,sll) },
28106 { FRVBF_INSN_SRL, SEM_FN_NAME (frvbf,srl) },
28107 { FRVBF_INSN_SRA, SEM_FN_NAME (frvbf,sra) },
28108 { FRVBF_INSN_SLASS, SEM_FN_NAME (frvbf,slass) },
28109 { FRVBF_INSN_SCUTSS, SEM_FN_NAME (frvbf,scutss) },
28110 { FRVBF_INSN_SCAN, SEM_FN_NAME (frvbf,scan) },
28111 { FRVBF_INSN_CADD, SEM_FN_NAME (frvbf,cadd) },
28112 { FRVBF_INSN_CSUB, SEM_FN_NAME (frvbf,csub) },
28113 { FRVBF_INSN_CAND, SEM_FN_NAME (frvbf,cand) },
28114 { FRVBF_INSN_COR, SEM_FN_NAME (frvbf,cor) },
28115 { FRVBF_INSN_CXOR, SEM_FN_NAME (frvbf,cxor) },
28116 { FRVBF_INSN_CNOT, SEM_FN_NAME (frvbf,cnot) },
28117 { FRVBF_INSN_CSMUL, SEM_FN_NAME (frvbf,csmul) },
28118 { FRVBF_INSN_CSDIV, SEM_FN_NAME (frvbf,csdiv) },
28119 { FRVBF_INSN_CUDIV, SEM_FN_NAME (frvbf,cudiv) },
28120 { FRVBF_INSN_CSLL, SEM_FN_NAME (frvbf,csll) },
28121 { FRVBF_INSN_CSRL, SEM_FN_NAME (frvbf,csrl) },
28122 { FRVBF_INSN_CSRA, SEM_FN_NAME (frvbf,csra) },
28123 { FRVBF_INSN_CSCAN, SEM_FN_NAME (frvbf,cscan) },
28124 { FRVBF_INSN_ADDCC, SEM_FN_NAME (frvbf,addcc) },
28125 { FRVBF_INSN_SUBCC, SEM_FN_NAME (frvbf,subcc) },
28126 { FRVBF_INSN_ANDCC, SEM_FN_NAME (frvbf,andcc) },
28127 { FRVBF_INSN_ORCC, SEM_FN_NAME (frvbf,orcc) },
28128 { FRVBF_INSN_XORCC, SEM_FN_NAME (frvbf,xorcc) },
28129 { FRVBF_INSN_SLLCC, SEM_FN_NAME (frvbf,sllcc) },
28130 { FRVBF_INSN_SRLCC, SEM_FN_NAME (frvbf,srlcc) },
28131 { FRVBF_INSN_SRACC, SEM_FN_NAME (frvbf,sracc) },
28132 { FRVBF_INSN_SMULCC, SEM_FN_NAME (frvbf,smulcc) },
28133 { FRVBF_INSN_UMULCC, SEM_FN_NAME (frvbf,umulcc) },
28134 { FRVBF_INSN_CADDCC, SEM_FN_NAME (frvbf,caddcc) },
28135 { FRVBF_INSN_CSUBCC, SEM_FN_NAME (frvbf,csubcc) },
28136 { FRVBF_INSN_CSMULCC, SEM_FN_NAME (frvbf,csmulcc) },
28137 { FRVBF_INSN_CANDCC, SEM_FN_NAME (frvbf,candcc) },
28138 { FRVBF_INSN_CORCC, SEM_FN_NAME (frvbf,corcc) },
28139 { FRVBF_INSN_CXORCC, SEM_FN_NAME (frvbf,cxorcc) },
28140 { FRVBF_INSN_CSLLCC, SEM_FN_NAME (frvbf,csllcc) },
28141 { FRVBF_INSN_CSRLCC, SEM_FN_NAME (frvbf,csrlcc) },
28142 { FRVBF_INSN_CSRACC, SEM_FN_NAME (frvbf,csracc) },
28143 { FRVBF_INSN_ADDX, SEM_FN_NAME (frvbf,addx) },
28144 { FRVBF_INSN_SUBX, SEM_FN_NAME (frvbf,subx) },
28145 { FRVBF_INSN_ADDXCC, SEM_FN_NAME (frvbf,addxcc) },
28146 { FRVBF_INSN_SUBXCC, SEM_FN_NAME (frvbf,subxcc) },
28147 { FRVBF_INSN_ADDSS, SEM_FN_NAME (frvbf,addss) },
28148 { FRVBF_INSN_SUBSS, SEM_FN_NAME (frvbf,subss) },
28149 { FRVBF_INSN_ADDI, SEM_FN_NAME (frvbf,addi) },
28150 { FRVBF_INSN_SUBI, SEM_FN_NAME (frvbf,subi) },
28151 { FRVBF_INSN_ANDI, SEM_FN_NAME (frvbf,andi) },
28152 { FRVBF_INSN_ORI, SEM_FN_NAME (frvbf,ori) },
28153 { FRVBF_INSN_XORI, SEM_FN_NAME (frvbf,xori) },
28154 { FRVBF_INSN_SDIVI, SEM_FN_NAME (frvbf,sdivi) },
28155 { FRVBF_INSN_NSDIVI, SEM_FN_NAME (frvbf,nsdivi) },
28156 { FRVBF_INSN_UDIVI, SEM_FN_NAME (frvbf,udivi) },
28157 { FRVBF_INSN_NUDIVI, SEM_FN_NAME (frvbf,nudivi) },
28158 { FRVBF_INSN_SMULI, SEM_FN_NAME (frvbf,smuli) },
28159 { FRVBF_INSN_UMULI, SEM_FN_NAME (frvbf,umuli) },
28160 { FRVBF_INSN_SLLI, SEM_FN_NAME (frvbf,slli) },
28161 { FRVBF_INSN_SRLI, SEM_FN_NAME (frvbf,srli) },
28162 { FRVBF_INSN_SRAI, SEM_FN_NAME (frvbf,srai) },
28163 { FRVBF_INSN_SCANI, SEM_FN_NAME (frvbf,scani) },
28164 { FRVBF_INSN_ADDICC, SEM_FN_NAME (frvbf,addicc) },
28165 { FRVBF_INSN_SUBICC, SEM_FN_NAME (frvbf,subicc) },
28166 { FRVBF_INSN_ANDICC, SEM_FN_NAME (frvbf,andicc) },
28167 { FRVBF_INSN_ORICC, SEM_FN_NAME (frvbf,oricc) },
28168 { FRVBF_INSN_XORICC, SEM_FN_NAME (frvbf,xoricc) },
28169 { FRVBF_INSN_SMULICC, SEM_FN_NAME (frvbf,smulicc) },
28170 { FRVBF_INSN_UMULICC, SEM_FN_NAME (frvbf,umulicc) },
28171 { FRVBF_INSN_SLLICC, SEM_FN_NAME (frvbf,sllicc) },
28172 { FRVBF_INSN_SRLICC, SEM_FN_NAME (frvbf,srlicc) },
28173 { FRVBF_INSN_SRAICC, SEM_FN_NAME (frvbf,sraicc) },
28174 { FRVBF_INSN_ADDXI, SEM_FN_NAME (frvbf,addxi) },
28175 { FRVBF_INSN_SUBXI, SEM_FN_NAME (frvbf,subxi) },
28176 { FRVBF_INSN_ADDXICC, SEM_FN_NAME (frvbf,addxicc) },
28177 { FRVBF_INSN_SUBXICC, SEM_FN_NAME (frvbf,subxicc) },
28178 { FRVBF_INSN_CMPB, SEM_FN_NAME (frvbf,cmpb) },
28179 { FRVBF_INSN_CMPBA, SEM_FN_NAME (frvbf,cmpba) },
28180 { FRVBF_INSN_SETLO, SEM_FN_NAME (frvbf,setlo) },
28181 { FRVBF_INSN_SETHI, SEM_FN_NAME (frvbf,sethi) },
28182 { FRVBF_INSN_SETLOS, SEM_FN_NAME (frvbf,setlos) },
28183 { FRVBF_INSN_LDSB, SEM_FN_NAME (frvbf,ldsb) },
28184 { FRVBF_INSN_LDUB, SEM_FN_NAME (frvbf,ldub) },
28185 { FRVBF_INSN_LDSH, SEM_FN_NAME (frvbf,ldsh) },
28186 { FRVBF_INSN_LDUH, SEM_FN_NAME (frvbf,lduh) },
28187 { FRVBF_INSN_LD, SEM_FN_NAME (frvbf,ld) },
28188 { FRVBF_INSN_LDBF, SEM_FN_NAME (frvbf,ldbf) },
28189 { FRVBF_INSN_LDHF, SEM_FN_NAME (frvbf,ldhf) },
28190 { FRVBF_INSN_LDF, SEM_FN_NAME (frvbf,ldf) },
28191 { FRVBF_INSN_LDC, SEM_FN_NAME (frvbf,ldc) },
28192 { FRVBF_INSN_NLDSB, SEM_FN_NAME (frvbf,nldsb) },
28193 { FRVBF_INSN_NLDUB, SEM_FN_NAME (frvbf,nldub) },
28194 { FRVBF_INSN_NLDSH, SEM_FN_NAME (frvbf,nldsh) },
28195 { FRVBF_INSN_NLDUH, SEM_FN_NAME (frvbf,nlduh) },
28196 { FRVBF_INSN_NLD, SEM_FN_NAME (frvbf,nld) },
28197 { FRVBF_INSN_NLDBF, SEM_FN_NAME (frvbf,nldbf) },
28198 { FRVBF_INSN_NLDHF, SEM_FN_NAME (frvbf,nldhf) },
28199 { FRVBF_INSN_NLDF, SEM_FN_NAME (frvbf,nldf) },
28200 { FRVBF_INSN_LDD, SEM_FN_NAME (frvbf,ldd) },
28201 { FRVBF_INSN_LDDF, SEM_FN_NAME (frvbf,lddf) },
28202 { FRVBF_INSN_LDDC, SEM_FN_NAME (frvbf,lddc) },
28203 { FRVBF_INSN_NLDD, SEM_FN_NAME (frvbf,nldd) },
28204 { FRVBF_INSN_NLDDF, SEM_FN_NAME (frvbf,nlddf) },
28205 { FRVBF_INSN_LDQ, SEM_FN_NAME (frvbf,ldq) },
28206 { FRVBF_INSN_LDQF, SEM_FN_NAME (frvbf,ldqf) },
28207 { FRVBF_INSN_LDQC, SEM_FN_NAME (frvbf,ldqc) },
28208 { FRVBF_INSN_NLDQ, SEM_FN_NAME (frvbf,nldq) },
28209 { FRVBF_INSN_NLDQF, SEM_FN_NAME (frvbf,nldqf) },
28210 { FRVBF_INSN_LDSBU, SEM_FN_NAME (frvbf,ldsbu) },
28211 { FRVBF_INSN_LDUBU, SEM_FN_NAME (frvbf,ldubu) },
28212 { FRVBF_INSN_LDSHU, SEM_FN_NAME (frvbf,ldshu) },
28213 { FRVBF_INSN_LDUHU, SEM_FN_NAME (frvbf,lduhu) },
28214 { FRVBF_INSN_LDU, SEM_FN_NAME (frvbf,ldu) },
28215 { FRVBF_INSN_NLDSBU, SEM_FN_NAME (frvbf,nldsbu) },
28216 { FRVBF_INSN_NLDUBU, SEM_FN_NAME (frvbf,nldubu) },
28217 { FRVBF_INSN_NLDSHU, SEM_FN_NAME (frvbf,nldshu) },
28218 { FRVBF_INSN_NLDUHU, SEM_FN_NAME (frvbf,nlduhu) },
28219 { FRVBF_INSN_NLDU, SEM_FN_NAME (frvbf,nldu) },
28220 { FRVBF_INSN_LDBFU, SEM_FN_NAME (frvbf,ldbfu) },
28221 { FRVBF_INSN_LDHFU, SEM_FN_NAME (frvbf,ldhfu) },
28222 { FRVBF_INSN_LDFU, SEM_FN_NAME (frvbf,ldfu) },
28223 { FRVBF_INSN_LDCU, SEM_FN_NAME (frvbf,ldcu) },
28224 { FRVBF_INSN_NLDBFU, SEM_FN_NAME (frvbf,nldbfu) },
28225 { FRVBF_INSN_NLDHFU, SEM_FN_NAME (frvbf,nldhfu) },
28226 { FRVBF_INSN_NLDFU, SEM_FN_NAME (frvbf,nldfu) },
28227 { FRVBF_INSN_LDDU, SEM_FN_NAME (frvbf,lddu) },
28228 { FRVBF_INSN_NLDDU, SEM_FN_NAME (frvbf,nlddu) },
28229 { FRVBF_INSN_LDDFU, SEM_FN_NAME (frvbf,lddfu) },
28230 { FRVBF_INSN_LDDCU, SEM_FN_NAME (frvbf,lddcu) },
28231 { FRVBF_INSN_NLDDFU, SEM_FN_NAME (frvbf,nlddfu) },
28232 { FRVBF_INSN_LDQU, SEM_FN_NAME (frvbf,ldqu) },
28233 { FRVBF_INSN_NLDQU, SEM_FN_NAME (frvbf,nldqu) },
28234 { FRVBF_INSN_LDQFU, SEM_FN_NAME (frvbf,ldqfu) },
28235 { FRVBF_INSN_LDQCU, SEM_FN_NAME (frvbf,ldqcu) },
28236 { FRVBF_INSN_NLDQFU, SEM_FN_NAME (frvbf,nldqfu) },
28237 { FRVBF_INSN_LDSBI, SEM_FN_NAME (frvbf,ldsbi) },
28238 { FRVBF_INSN_LDSHI, SEM_FN_NAME (frvbf,ldshi) },
28239 { FRVBF_INSN_LDI, SEM_FN_NAME (frvbf,ldi) },
28240 { FRVBF_INSN_LDUBI, SEM_FN_NAME (frvbf,ldubi) },
28241 { FRVBF_INSN_LDUHI, SEM_FN_NAME (frvbf,lduhi) },
28242 { FRVBF_INSN_LDBFI, SEM_FN_NAME (frvbf,ldbfi) },
28243 { FRVBF_INSN_LDHFI, SEM_FN_NAME (frvbf,ldhfi) },
28244 { FRVBF_INSN_LDFI, SEM_FN_NAME (frvbf,ldfi) },
28245 { FRVBF_INSN_NLDSBI, SEM_FN_NAME (frvbf,nldsbi) },
28246 { FRVBF_INSN_NLDUBI, SEM_FN_NAME (frvbf,nldubi) },
28247 { FRVBF_INSN_NLDSHI, SEM_FN_NAME (frvbf,nldshi) },
28248 { FRVBF_INSN_NLDUHI, SEM_FN_NAME (frvbf,nlduhi) },
28249 { FRVBF_INSN_NLDI, SEM_FN_NAME (frvbf,nldi) },
28250 { FRVBF_INSN_NLDBFI, SEM_FN_NAME (frvbf,nldbfi) },
28251 { FRVBF_INSN_NLDHFI, SEM_FN_NAME (frvbf,nldhfi) },
28252 { FRVBF_INSN_NLDFI, SEM_FN_NAME (frvbf,nldfi) },
28253 { FRVBF_INSN_LDDI, SEM_FN_NAME (frvbf,lddi) },
28254 { FRVBF_INSN_LDDFI, SEM_FN_NAME (frvbf,lddfi) },
28255 { FRVBF_INSN_NLDDI, SEM_FN_NAME (frvbf,nlddi) },
28256 { FRVBF_INSN_NLDDFI, SEM_FN_NAME (frvbf,nlddfi) },
28257 { FRVBF_INSN_LDQI, SEM_FN_NAME (frvbf,ldqi) },
28258 { FRVBF_INSN_LDQFI, SEM_FN_NAME (frvbf,ldqfi) },
28259 { FRVBF_INSN_NLDQFI, SEM_FN_NAME (frvbf,nldqfi) },
28260 { FRVBF_INSN_STB, SEM_FN_NAME (frvbf,stb) },
28261 { FRVBF_INSN_STH, SEM_FN_NAME (frvbf,sth) },
28262 { FRVBF_INSN_ST, SEM_FN_NAME (frvbf,st) },
28263 { FRVBF_INSN_STBF, SEM_FN_NAME (frvbf,stbf) },
28264 { FRVBF_INSN_STHF, SEM_FN_NAME (frvbf,sthf) },
28265 { FRVBF_INSN_STF, SEM_FN_NAME (frvbf,stf) },
28266 { FRVBF_INSN_STC, SEM_FN_NAME (frvbf,stc) },
28267 { FRVBF_INSN_RSTB, SEM_FN_NAME (frvbf,rstb) },
28268 { FRVBF_INSN_RSTH, SEM_FN_NAME (frvbf,rsth) },
28269 { FRVBF_INSN_RST, SEM_FN_NAME (frvbf,rst) },
28270 { FRVBF_INSN_RSTBF, SEM_FN_NAME (frvbf,rstbf) },
28271 { FRVBF_INSN_RSTHF, SEM_FN_NAME (frvbf,rsthf) },
28272 { FRVBF_INSN_RSTF, SEM_FN_NAME (frvbf,rstf) },
28273 { FRVBF_INSN_STD, SEM_FN_NAME (frvbf,std) },
28274 { FRVBF_INSN_STDF, SEM_FN_NAME (frvbf,stdf) },
28275 { FRVBF_INSN_STDC, SEM_FN_NAME (frvbf,stdc) },
28276 { FRVBF_INSN_RSTD, SEM_FN_NAME (frvbf,rstd) },
28277 { FRVBF_INSN_RSTDF, SEM_FN_NAME (frvbf,rstdf) },
28278 { FRVBF_INSN_STQ, SEM_FN_NAME (frvbf,stq) },
28279 { FRVBF_INSN_STQF, SEM_FN_NAME (frvbf,stqf) },
28280 { FRVBF_INSN_STQC, SEM_FN_NAME (frvbf,stqc) },
28281 { FRVBF_INSN_RSTQ, SEM_FN_NAME (frvbf,rstq) },
28282 { FRVBF_INSN_RSTQF, SEM_FN_NAME (frvbf,rstqf) },
28283 { FRVBF_INSN_STBU, SEM_FN_NAME (frvbf,stbu) },
28284 { FRVBF_INSN_STHU, SEM_FN_NAME (frvbf,sthu) },
28285 { FRVBF_INSN_STU, SEM_FN_NAME (frvbf,stu) },
28286 { FRVBF_INSN_STBFU, SEM_FN_NAME (frvbf,stbfu) },
28287 { FRVBF_INSN_STHFU, SEM_FN_NAME (frvbf,sthfu) },
28288 { FRVBF_INSN_STFU, SEM_FN_NAME (frvbf,stfu) },
28289 { FRVBF_INSN_STCU, SEM_FN_NAME (frvbf,stcu) },
28290 { FRVBF_INSN_STDU, SEM_FN_NAME (frvbf,stdu) },
28291 { FRVBF_INSN_STDFU, SEM_FN_NAME (frvbf,stdfu) },
28292 { FRVBF_INSN_STDCU, SEM_FN_NAME (frvbf,stdcu) },
28293 { FRVBF_INSN_STQU, SEM_FN_NAME (frvbf,stqu) },
28294 { FRVBF_INSN_STQFU, SEM_FN_NAME (frvbf,stqfu) },
28295 { FRVBF_INSN_STQCU, SEM_FN_NAME (frvbf,stqcu) },
28296 { FRVBF_INSN_CLDSB, SEM_FN_NAME (frvbf,cldsb) },
28297 { FRVBF_INSN_CLDUB, SEM_FN_NAME (frvbf,cldub) },
28298 { FRVBF_INSN_CLDSH, SEM_FN_NAME (frvbf,cldsh) },
28299 { FRVBF_INSN_CLDUH, SEM_FN_NAME (frvbf,clduh) },
28300 { FRVBF_INSN_CLD, SEM_FN_NAME (frvbf,cld) },
28301 { FRVBF_INSN_CLDBF, SEM_FN_NAME (frvbf,cldbf) },
28302 { FRVBF_INSN_CLDHF, SEM_FN_NAME (frvbf,cldhf) },
28303 { FRVBF_INSN_CLDF, SEM_FN_NAME (frvbf,cldf) },
28304 { FRVBF_INSN_CLDD, SEM_FN_NAME (frvbf,cldd) },
28305 { FRVBF_INSN_CLDDF, SEM_FN_NAME (frvbf,clddf) },
28306 { FRVBF_INSN_CLDQ, SEM_FN_NAME (frvbf,cldq) },
28307 { FRVBF_INSN_CLDSBU, SEM_FN_NAME (frvbf,cldsbu) },
28308 { FRVBF_INSN_CLDUBU, SEM_FN_NAME (frvbf,cldubu) },
28309 { FRVBF_INSN_CLDSHU, SEM_FN_NAME (frvbf,cldshu) },
28310 { FRVBF_INSN_CLDUHU, SEM_FN_NAME (frvbf,clduhu) },
28311 { FRVBF_INSN_CLDU, SEM_FN_NAME (frvbf,cldu) },
28312 { FRVBF_INSN_CLDBFU, SEM_FN_NAME (frvbf,cldbfu) },
28313 { FRVBF_INSN_CLDHFU, SEM_FN_NAME (frvbf,cldhfu) },
28314 { FRVBF_INSN_CLDFU, SEM_FN_NAME (frvbf,cldfu) },
28315 { FRVBF_INSN_CLDDU, SEM_FN_NAME (frvbf,clddu) },
28316 { FRVBF_INSN_CLDDFU, SEM_FN_NAME (frvbf,clddfu) },
28317 { FRVBF_INSN_CLDQU, SEM_FN_NAME (frvbf,cldqu) },
28318 { FRVBF_INSN_CSTB, SEM_FN_NAME (frvbf,cstb) },
28319 { FRVBF_INSN_CSTH, SEM_FN_NAME (frvbf,csth) },
28320 { FRVBF_INSN_CST, SEM_FN_NAME (frvbf,cst) },
28321 { FRVBF_INSN_CSTBF, SEM_FN_NAME (frvbf,cstbf) },
28322 { FRVBF_INSN_CSTHF, SEM_FN_NAME (frvbf,csthf) },
28323 { FRVBF_INSN_CSTF, SEM_FN_NAME (frvbf,cstf) },
28324 { FRVBF_INSN_CSTD, SEM_FN_NAME (frvbf,cstd) },
28325 { FRVBF_INSN_CSTDF, SEM_FN_NAME (frvbf,cstdf) },
28326 { FRVBF_INSN_CSTQ, SEM_FN_NAME (frvbf,cstq) },
28327 { FRVBF_INSN_CSTBU, SEM_FN_NAME (frvbf,cstbu) },
28328 { FRVBF_INSN_CSTHU, SEM_FN_NAME (frvbf,csthu) },
28329 { FRVBF_INSN_CSTU, SEM_FN_NAME (frvbf,cstu) },
28330 { FRVBF_INSN_CSTBFU, SEM_FN_NAME (frvbf,cstbfu) },
28331 { FRVBF_INSN_CSTHFU, SEM_FN_NAME (frvbf,csthfu) },
28332 { FRVBF_INSN_CSTFU, SEM_FN_NAME (frvbf,cstfu) },
28333 { FRVBF_INSN_CSTDU, SEM_FN_NAME (frvbf,cstdu) },
28334 { FRVBF_INSN_CSTDFU, SEM_FN_NAME (frvbf,cstdfu) },
28335 { FRVBF_INSN_STBI, SEM_FN_NAME (frvbf,stbi) },
28336 { FRVBF_INSN_STHI, SEM_FN_NAME (frvbf,sthi) },
28337 { FRVBF_INSN_STI, SEM_FN_NAME (frvbf,sti) },
28338 { FRVBF_INSN_STBFI, SEM_FN_NAME (frvbf,stbfi) },
28339 { FRVBF_INSN_STHFI, SEM_FN_NAME (frvbf,sthfi) },
28340 { FRVBF_INSN_STFI, SEM_FN_NAME (frvbf,stfi) },
28341 { FRVBF_INSN_STDI, SEM_FN_NAME (frvbf,stdi) },
28342 { FRVBF_INSN_STDFI, SEM_FN_NAME (frvbf,stdfi) },
28343 { FRVBF_INSN_STQI, SEM_FN_NAME (frvbf,stqi) },
28344 { FRVBF_INSN_STQFI, SEM_FN_NAME (frvbf,stqfi) },
28345 { FRVBF_INSN_SWAP, SEM_FN_NAME (frvbf,swap) },
28346 { FRVBF_INSN_SWAPI, SEM_FN_NAME (frvbf,swapi) },
28347 { FRVBF_INSN_CSWAP, SEM_FN_NAME (frvbf,cswap) },
28348 { FRVBF_INSN_MOVGF, SEM_FN_NAME (frvbf,movgf) },
28349 { FRVBF_INSN_MOVFG, SEM_FN_NAME (frvbf,movfg) },
28350 { FRVBF_INSN_MOVGFD, SEM_FN_NAME (frvbf,movgfd) },
28351 { FRVBF_INSN_MOVFGD, SEM_FN_NAME (frvbf,movfgd) },
28352 { FRVBF_INSN_MOVGFQ, SEM_FN_NAME (frvbf,movgfq) },
28353 { FRVBF_INSN_MOVFGQ, SEM_FN_NAME (frvbf,movfgq) },
28354 { FRVBF_INSN_CMOVGF, SEM_FN_NAME (frvbf,cmovgf) },
28355 { FRVBF_INSN_CMOVFG, SEM_FN_NAME (frvbf,cmovfg) },
28356 { FRVBF_INSN_CMOVGFD, SEM_FN_NAME (frvbf,cmovgfd) },
28357 { FRVBF_INSN_CMOVFGD, SEM_FN_NAME (frvbf,cmovfgd) },
28358 { FRVBF_INSN_MOVGS, SEM_FN_NAME (frvbf,movgs) },
28359 { FRVBF_INSN_MOVSG, SEM_FN_NAME (frvbf,movsg) },
28360 { FRVBF_INSN_BRA, SEM_FN_NAME (frvbf,bra) },
28361 { FRVBF_INSN_BNO, SEM_FN_NAME (frvbf,bno) },
28362 { FRVBF_INSN_BEQ, SEM_FN_NAME (frvbf,beq) },
28363 { FRVBF_INSN_BNE, SEM_FN_NAME (frvbf,bne) },
28364 { FRVBF_INSN_BLE, SEM_FN_NAME (frvbf,ble) },
28365 { FRVBF_INSN_BGT, SEM_FN_NAME (frvbf,bgt) },
28366 { FRVBF_INSN_BLT, SEM_FN_NAME (frvbf,blt) },
28367 { FRVBF_INSN_BGE, SEM_FN_NAME (frvbf,bge) },
28368 { FRVBF_INSN_BLS, SEM_FN_NAME (frvbf,bls) },
28369 { FRVBF_INSN_BHI, SEM_FN_NAME (frvbf,bhi) },
28370 { FRVBF_INSN_BC, SEM_FN_NAME (frvbf,bc) },
28371 { FRVBF_INSN_BNC, SEM_FN_NAME (frvbf,bnc) },
28372 { FRVBF_INSN_BN, SEM_FN_NAME (frvbf,bn) },
28373 { FRVBF_INSN_BP, SEM_FN_NAME (frvbf,bp) },
28374 { FRVBF_INSN_BV, SEM_FN_NAME (frvbf,bv) },
28375 { FRVBF_INSN_BNV, SEM_FN_NAME (frvbf,bnv) },
28376 { FRVBF_INSN_FBRA, SEM_FN_NAME (frvbf,fbra) },
28377 { FRVBF_INSN_FBNO, SEM_FN_NAME (frvbf,fbno) },
28378 { FRVBF_INSN_FBNE, SEM_FN_NAME (frvbf,fbne) },
28379 { FRVBF_INSN_FBEQ, SEM_FN_NAME (frvbf,fbeq) },
28380 { FRVBF_INSN_FBLG, SEM_FN_NAME (frvbf,fblg) },
28381 { FRVBF_INSN_FBUE, SEM_FN_NAME (frvbf,fbue) },
28382 { FRVBF_INSN_FBUL, SEM_FN_NAME (frvbf,fbul) },
28383 { FRVBF_INSN_FBGE, SEM_FN_NAME (frvbf,fbge) },
28384 { FRVBF_INSN_FBLT, SEM_FN_NAME (frvbf,fblt) },
28385 { FRVBF_INSN_FBUGE, SEM_FN_NAME (frvbf,fbuge) },
28386 { FRVBF_INSN_FBUG, SEM_FN_NAME (frvbf,fbug) },
28387 { FRVBF_INSN_FBLE, SEM_FN_NAME (frvbf,fble) },
28388 { FRVBF_INSN_FBGT, SEM_FN_NAME (frvbf,fbgt) },
28389 { FRVBF_INSN_FBULE, SEM_FN_NAME (frvbf,fbule) },
28390 { FRVBF_INSN_FBU, SEM_FN_NAME (frvbf,fbu) },
28391 { FRVBF_INSN_FBO, SEM_FN_NAME (frvbf,fbo) },
28392 { FRVBF_INSN_BCTRLR, SEM_FN_NAME (frvbf,bctrlr) },
28393 { FRVBF_INSN_BRALR, SEM_FN_NAME (frvbf,bralr) },
28394 { FRVBF_INSN_BNOLR, SEM_FN_NAME (frvbf,bnolr) },
28395 { FRVBF_INSN_BEQLR, SEM_FN_NAME (frvbf,beqlr) },
28396 { FRVBF_INSN_BNELR, SEM_FN_NAME (frvbf,bnelr) },
28397 { FRVBF_INSN_BLELR, SEM_FN_NAME (frvbf,blelr) },
28398 { FRVBF_INSN_BGTLR, SEM_FN_NAME (frvbf,bgtlr) },
28399 { FRVBF_INSN_BLTLR, SEM_FN_NAME (frvbf,bltlr) },
28400 { FRVBF_INSN_BGELR, SEM_FN_NAME (frvbf,bgelr) },
28401 { FRVBF_INSN_BLSLR, SEM_FN_NAME (frvbf,blslr) },
28402 { FRVBF_INSN_BHILR, SEM_FN_NAME (frvbf,bhilr) },
28403 { FRVBF_INSN_BCLR, SEM_FN_NAME (frvbf,bclr) },
28404 { FRVBF_INSN_BNCLR, SEM_FN_NAME (frvbf,bnclr) },
28405 { FRVBF_INSN_BNLR, SEM_FN_NAME (frvbf,bnlr) },
28406 { FRVBF_INSN_BPLR, SEM_FN_NAME (frvbf,bplr) },
28407 { FRVBF_INSN_BVLR, SEM_FN_NAME (frvbf,bvlr) },
28408 { FRVBF_INSN_BNVLR, SEM_FN_NAME (frvbf,bnvlr) },
28409 { FRVBF_INSN_FBRALR, SEM_FN_NAME (frvbf,fbralr) },
28410 { FRVBF_INSN_FBNOLR, SEM_FN_NAME (frvbf,fbnolr) },
28411 { FRVBF_INSN_FBEQLR, SEM_FN_NAME (frvbf,fbeqlr) },
28412 { FRVBF_INSN_FBNELR, SEM_FN_NAME (frvbf,fbnelr) },
28413 { FRVBF_INSN_FBLGLR, SEM_FN_NAME (frvbf,fblglr) },
28414 { FRVBF_INSN_FBUELR, SEM_FN_NAME (frvbf,fbuelr) },
28415 { FRVBF_INSN_FBULLR, SEM_FN_NAME (frvbf,fbullr) },
28416 { FRVBF_INSN_FBGELR, SEM_FN_NAME (frvbf,fbgelr) },
28417 { FRVBF_INSN_FBLTLR, SEM_FN_NAME (frvbf,fbltlr) },
28418 { FRVBF_INSN_FBUGELR, SEM_FN_NAME (frvbf,fbugelr) },
28419 { FRVBF_INSN_FBUGLR, SEM_FN_NAME (frvbf,fbuglr) },
28420 { FRVBF_INSN_FBLELR, SEM_FN_NAME (frvbf,fblelr) },
28421 { FRVBF_INSN_FBGTLR, SEM_FN_NAME (frvbf,fbgtlr) },
28422 { FRVBF_INSN_FBULELR, SEM_FN_NAME (frvbf,fbulelr) },
28423 { FRVBF_INSN_FBULR, SEM_FN_NAME (frvbf,fbulr) },
28424 { FRVBF_INSN_FBOLR, SEM_FN_NAME (frvbf,fbolr) },
28425 { FRVBF_INSN_BCRALR, SEM_FN_NAME (frvbf,bcralr) },
28426 { FRVBF_INSN_BCNOLR, SEM_FN_NAME (frvbf,bcnolr) },
28427 { FRVBF_INSN_BCEQLR, SEM_FN_NAME (frvbf,bceqlr) },
28428 { FRVBF_INSN_BCNELR, SEM_FN_NAME (frvbf,bcnelr) },
28429 { FRVBF_INSN_BCLELR, SEM_FN_NAME (frvbf,bclelr) },
28430 { FRVBF_INSN_BCGTLR, SEM_FN_NAME (frvbf,bcgtlr) },
28431 { FRVBF_INSN_BCLTLR, SEM_FN_NAME (frvbf,bcltlr) },
28432 { FRVBF_INSN_BCGELR, SEM_FN_NAME (frvbf,bcgelr) },
28433 { FRVBF_INSN_BCLSLR, SEM_FN_NAME (frvbf,bclslr) },
28434 { FRVBF_INSN_BCHILR, SEM_FN_NAME (frvbf,bchilr) },
28435 { FRVBF_INSN_BCCLR, SEM_FN_NAME (frvbf,bcclr) },
28436 { FRVBF_INSN_BCNCLR, SEM_FN_NAME (frvbf,bcnclr) },
28437 { FRVBF_INSN_BCNLR, SEM_FN_NAME (frvbf,bcnlr) },
28438 { FRVBF_INSN_BCPLR, SEM_FN_NAME (frvbf,bcplr) },
28439 { FRVBF_INSN_BCVLR, SEM_FN_NAME (frvbf,bcvlr) },
28440 { FRVBF_INSN_BCNVLR, SEM_FN_NAME (frvbf,bcnvlr) },
28441 { FRVBF_INSN_FCBRALR, SEM_FN_NAME (frvbf,fcbralr) },
28442 { FRVBF_INSN_FCBNOLR, SEM_FN_NAME (frvbf,fcbnolr) },
28443 { FRVBF_INSN_FCBEQLR, SEM_FN_NAME (frvbf,fcbeqlr) },
28444 { FRVBF_INSN_FCBNELR, SEM_FN_NAME (frvbf,fcbnelr) },
28445 { FRVBF_INSN_FCBLGLR, SEM_FN_NAME (frvbf,fcblglr) },
28446 { FRVBF_INSN_FCBUELR, SEM_FN_NAME (frvbf,fcbuelr) },
28447 { FRVBF_INSN_FCBULLR, SEM_FN_NAME (frvbf,fcbullr) },
28448 { FRVBF_INSN_FCBGELR, SEM_FN_NAME (frvbf,fcbgelr) },
28449 { FRVBF_INSN_FCBLTLR, SEM_FN_NAME (frvbf,fcbltlr) },
28450 { FRVBF_INSN_FCBUGELR, SEM_FN_NAME (frvbf,fcbugelr) },
28451 { FRVBF_INSN_FCBUGLR, SEM_FN_NAME (frvbf,fcbuglr) },
28452 { FRVBF_INSN_FCBLELR, SEM_FN_NAME (frvbf,fcblelr) },
28453 { FRVBF_INSN_FCBGTLR, SEM_FN_NAME (frvbf,fcbgtlr) },
28454 { FRVBF_INSN_FCBULELR, SEM_FN_NAME (frvbf,fcbulelr) },
28455 { FRVBF_INSN_FCBULR, SEM_FN_NAME (frvbf,fcbulr) },
28456 { FRVBF_INSN_FCBOLR, SEM_FN_NAME (frvbf,fcbolr) },
28457 { FRVBF_INSN_JMPL, SEM_FN_NAME (frvbf,jmpl) },
28458 { FRVBF_INSN_CALLL, SEM_FN_NAME (frvbf,calll) },
28459 { FRVBF_INSN_JMPIL, SEM_FN_NAME (frvbf,jmpil) },
28460 { FRVBF_INSN_CALLIL, SEM_FN_NAME (frvbf,callil) },
28461 { FRVBF_INSN_CALL, SEM_FN_NAME (frvbf,call) },
28462 { FRVBF_INSN_RETT, SEM_FN_NAME (frvbf,rett) },
28463 { FRVBF_INSN_REI, SEM_FN_NAME (frvbf,rei) },
28464 { FRVBF_INSN_TRA, SEM_FN_NAME (frvbf,tra) },
28465 { FRVBF_INSN_TNO, SEM_FN_NAME (frvbf,tno) },
28466 { FRVBF_INSN_TEQ, SEM_FN_NAME (frvbf,teq) },
28467 { FRVBF_INSN_TNE, SEM_FN_NAME (frvbf,tne) },
28468 { FRVBF_INSN_TLE, SEM_FN_NAME (frvbf,tle) },
28469 { FRVBF_INSN_TGT, SEM_FN_NAME (frvbf,tgt) },
28470 { FRVBF_INSN_TLT, SEM_FN_NAME (frvbf,tlt) },
28471 { FRVBF_INSN_TGE, SEM_FN_NAME (frvbf,tge) },
28472 { FRVBF_INSN_TLS, SEM_FN_NAME (frvbf,tls) },
28473 { FRVBF_INSN_THI, SEM_FN_NAME (frvbf,thi) },
28474 { FRVBF_INSN_TC, SEM_FN_NAME (frvbf,tc) },
28475 { FRVBF_INSN_TNC, SEM_FN_NAME (frvbf,tnc) },
28476 { FRVBF_INSN_TN, SEM_FN_NAME (frvbf,tn) },
28477 { FRVBF_INSN_TP, SEM_FN_NAME (frvbf,tp) },
28478 { FRVBF_INSN_TV, SEM_FN_NAME (frvbf,tv) },
28479 { FRVBF_INSN_TNV, SEM_FN_NAME (frvbf,tnv) },
28480 { FRVBF_INSN_FTRA, SEM_FN_NAME (frvbf,ftra) },
28481 { FRVBF_INSN_FTNO, SEM_FN_NAME (frvbf,ftno) },
28482 { FRVBF_INSN_FTNE, SEM_FN_NAME (frvbf,ftne) },
28483 { FRVBF_INSN_FTEQ, SEM_FN_NAME (frvbf,fteq) },
28484 { FRVBF_INSN_FTLG, SEM_FN_NAME (frvbf,ftlg) },
28485 { FRVBF_INSN_FTUE, SEM_FN_NAME (frvbf,ftue) },
28486 { FRVBF_INSN_FTUL, SEM_FN_NAME (frvbf,ftul) },
28487 { FRVBF_INSN_FTGE, SEM_FN_NAME (frvbf,ftge) },
28488 { FRVBF_INSN_FTLT, SEM_FN_NAME (frvbf,ftlt) },
28489 { FRVBF_INSN_FTUGE, SEM_FN_NAME (frvbf,ftuge) },
28490 { FRVBF_INSN_FTUG, SEM_FN_NAME (frvbf,ftug) },
28491 { FRVBF_INSN_FTLE, SEM_FN_NAME (frvbf,ftle) },
28492 { FRVBF_INSN_FTGT, SEM_FN_NAME (frvbf,ftgt) },
28493 { FRVBF_INSN_FTULE, SEM_FN_NAME (frvbf,ftule) },
28494 { FRVBF_INSN_FTU, SEM_FN_NAME (frvbf,ftu) },
28495 { FRVBF_INSN_FTO, SEM_FN_NAME (frvbf,fto) },
28496 { FRVBF_INSN_TIRA, SEM_FN_NAME (frvbf,tira) },
28497 { FRVBF_INSN_TINO, SEM_FN_NAME (frvbf,tino) },
28498 { FRVBF_INSN_TIEQ, SEM_FN_NAME (frvbf,tieq) },
28499 { FRVBF_INSN_TINE, SEM_FN_NAME (frvbf,tine) },
28500 { FRVBF_INSN_TILE, SEM_FN_NAME (frvbf,tile) },
28501 { FRVBF_INSN_TIGT, SEM_FN_NAME (frvbf,tigt) },
28502 { FRVBF_INSN_TILT, SEM_FN_NAME (frvbf,tilt) },
28503 { FRVBF_INSN_TIGE, SEM_FN_NAME (frvbf,tige) },
28504 { FRVBF_INSN_TILS, SEM_FN_NAME (frvbf,tils) },
28505 { FRVBF_INSN_TIHI, SEM_FN_NAME (frvbf,tihi) },
28506 { FRVBF_INSN_TIC, SEM_FN_NAME (frvbf,tic) },
28507 { FRVBF_INSN_TINC, SEM_FN_NAME (frvbf,tinc) },
28508 { FRVBF_INSN_TIN, SEM_FN_NAME (frvbf,tin) },
28509 { FRVBF_INSN_TIP, SEM_FN_NAME (frvbf,tip) },
28510 { FRVBF_INSN_TIV, SEM_FN_NAME (frvbf,tiv) },
28511 { FRVBF_INSN_TINV, SEM_FN_NAME (frvbf,tinv) },
28512 { FRVBF_INSN_FTIRA, SEM_FN_NAME (frvbf,ftira) },
28513 { FRVBF_INSN_FTINO, SEM_FN_NAME (frvbf,ftino) },
28514 { FRVBF_INSN_FTINE, SEM_FN_NAME (frvbf,ftine) },
28515 { FRVBF_INSN_FTIEQ, SEM_FN_NAME (frvbf,ftieq) },
28516 { FRVBF_INSN_FTILG, SEM_FN_NAME (frvbf,ftilg) },
28517 { FRVBF_INSN_FTIUE, SEM_FN_NAME (frvbf,ftiue) },
28518 { FRVBF_INSN_FTIUL, SEM_FN_NAME (frvbf,ftiul) },
28519 { FRVBF_INSN_FTIGE, SEM_FN_NAME (frvbf,ftige) },
28520 { FRVBF_INSN_FTILT, SEM_FN_NAME (frvbf,ftilt) },
28521 { FRVBF_INSN_FTIUGE, SEM_FN_NAME (frvbf,ftiuge) },
28522 { FRVBF_INSN_FTIUG, SEM_FN_NAME (frvbf,ftiug) },
28523 { FRVBF_INSN_FTILE, SEM_FN_NAME (frvbf,ftile) },
28524 { FRVBF_INSN_FTIGT, SEM_FN_NAME (frvbf,ftigt) },
28525 { FRVBF_INSN_FTIULE, SEM_FN_NAME (frvbf,ftiule) },
28526 { FRVBF_INSN_FTIU, SEM_FN_NAME (frvbf,ftiu) },
28527 { FRVBF_INSN_FTIO, SEM_FN_NAME (frvbf,ftio) },
28528 { FRVBF_INSN_BREAK, SEM_FN_NAME (frvbf,break) },
28529 { FRVBF_INSN_MTRAP, SEM_FN_NAME (frvbf,mtrap) },
28530 { FRVBF_INSN_ANDCR, SEM_FN_NAME (frvbf,andcr) },
28531 { FRVBF_INSN_ORCR, SEM_FN_NAME (frvbf,orcr) },
28532 { FRVBF_INSN_XORCR, SEM_FN_NAME (frvbf,xorcr) },
28533 { FRVBF_INSN_NANDCR, SEM_FN_NAME (frvbf,nandcr) },
28534 { FRVBF_INSN_NORCR, SEM_FN_NAME (frvbf,norcr) },
28535 { FRVBF_INSN_ANDNCR, SEM_FN_NAME (frvbf,andncr) },
28536 { FRVBF_INSN_ORNCR, SEM_FN_NAME (frvbf,orncr) },
28537 { FRVBF_INSN_NANDNCR, SEM_FN_NAME (frvbf,nandncr) },
28538 { FRVBF_INSN_NORNCR, SEM_FN_NAME (frvbf,norncr) },
28539 { FRVBF_INSN_NOTCR, SEM_FN_NAME (frvbf,notcr) },
28540 { FRVBF_INSN_CKRA, SEM_FN_NAME (frvbf,ckra) },
28541 { FRVBF_INSN_CKNO, SEM_FN_NAME (frvbf,ckno) },
28542 { FRVBF_INSN_CKEQ, SEM_FN_NAME (frvbf,ckeq) },
28543 { FRVBF_INSN_CKNE, SEM_FN_NAME (frvbf,ckne) },
28544 { FRVBF_INSN_CKLE, SEM_FN_NAME (frvbf,ckle) },
28545 { FRVBF_INSN_CKGT, SEM_FN_NAME (frvbf,ckgt) },
28546 { FRVBF_INSN_CKLT, SEM_FN_NAME (frvbf,cklt) },
28547 { FRVBF_INSN_CKGE, SEM_FN_NAME (frvbf,ckge) },
28548 { FRVBF_INSN_CKLS, SEM_FN_NAME (frvbf,ckls) },
28549 { FRVBF_INSN_CKHI, SEM_FN_NAME (frvbf,ckhi) },
28550 { FRVBF_INSN_CKC, SEM_FN_NAME (frvbf,ckc) },
28551 { FRVBF_INSN_CKNC, SEM_FN_NAME (frvbf,cknc) },
28552 { FRVBF_INSN_CKN, SEM_FN_NAME (frvbf,ckn) },
28553 { FRVBF_INSN_CKP, SEM_FN_NAME (frvbf,ckp) },
28554 { FRVBF_INSN_CKV, SEM_FN_NAME (frvbf,ckv) },
28555 { FRVBF_INSN_CKNV, SEM_FN_NAME (frvbf,cknv) },
28556 { FRVBF_INSN_FCKRA, SEM_FN_NAME (frvbf,fckra) },
28557 { FRVBF_INSN_FCKNO, SEM_FN_NAME (frvbf,fckno) },
28558 { FRVBF_INSN_FCKNE, SEM_FN_NAME (frvbf,fckne) },
28559 { FRVBF_INSN_FCKEQ, SEM_FN_NAME (frvbf,fckeq) },
28560 { FRVBF_INSN_FCKLG, SEM_FN_NAME (frvbf,fcklg) },
28561 { FRVBF_INSN_FCKUE, SEM_FN_NAME (frvbf,fckue) },
28562 { FRVBF_INSN_FCKUL, SEM_FN_NAME (frvbf,fckul) },
28563 { FRVBF_INSN_FCKGE, SEM_FN_NAME (frvbf,fckge) },
28564 { FRVBF_INSN_FCKLT, SEM_FN_NAME (frvbf,fcklt) },
28565 { FRVBF_INSN_FCKUGE, SEM_FN_NAME (frvbf,fckuge) },
28566 { FRVBF_INSN_FCKUG, SEM_FN_NAME (frvbf,fckug) },
28567 { FRVBF_INSN_FCKLE, SEM_FN_NAME (frvbf,fckle) },
28568 { FRVBF_INSN_FCKGT, SEM_FN_NAME (frvbf,fckgt) },
28569 { FRVBF_INSN_FCKULE, SEM_FN_NAME (frvbf,fckule) },
28570 { FRVBF_INSN_FCKU, SEM_FN_NAME (frvbf,fcku) },
28571 { FRVBF_INSN_FCKO, SEM_FN_NAME (frvbf,fcko) },
28572 { FRVBF_INSN_CCKRA, SEM_FN_NAME (frvbf,cckra) },
28573 { FRVBF_INSN_CCKNO, SEM_FN_NAME (frvbf,cckno) },
28574 { FRVBF_INSN_CCKEQ, SEM_FN_NAME (frvbf,cckeq) },
28575 { FRVBF_INSN_CCKNE, SEM_FN_NAME (frvbf,cckne) },
28576 { FRVBF_INSN_CCKLE, SEM_FN_NAME (frvbf,cckle) },
28577 { FRVBF_INSN_CCKGT, SEM_FN_NAME (frvbf,cckgt) },
28578 { FRVBF_INSN_CCKLT, SEM_FN_NAME (frvbf,ccklt) },
28579 { FRVBF_INSN_CCKGE, SEM_FN_NAME (frvbf,cckge) },
28580 { FRVBF_INSN_CCKLS, SEM_FN_NAME (frvbf,cckls) },
28581 { FRVBF_INSN_CCKHI, SEM_FN_NAME (frvbf,cckhi) },
28582 { FRVBF_INSN_CCKC, SEM_FN_NAME (frvbf,cckc) },
28583 { FRVBF_INSN_CCKNC, SEM_FN_NAME (frvbf,ccknc) },
28584 { FRVBF_INSN_CCKN, SEM_FN_NAME (frvbf,cckn) },
28585 { FRVBF_INSN_CCKP, SEM_FN_NAME (frvbf,cckp) },
28586 { FRVBF_INSN_CCKV, SEM_FN_NAME (frvbf,cckv) },
28587 { FRVBF_INSN_CCKNV, SEM_FN_NAME (frvbf,ccknv) },
28588 { FRVBF_INSN_CFCKRA, SEM_FN_NAME (frvbf,cfckra) },
28589 { FRVBF_INSN_CFCKNO, SEM_FN_NAME (frvbf,cfckno) },
28590 { FRVBF_INSN_CFCKNE, SEM_FN_NAME (frvbf,cfckne) },
28591 { FRVBF_INSN_CFCKEQ, SEM_FN_NAME (frvbf,cfckeq) },
28592 { FRVBF_INSN_CFCKLG, SEM_FN_NAME (frvbf,cfcklg) },
28593 { FRVBF_INSN_CFCKUE, SEM_FN_NAME (frvbf,cfckue) },
28594 { FRVBF_INSN_CFCKUL, SEM_FN_NAME (frvbf,cfckul) },
28595 { FRVBF_INSN_CFCKGE, SEM_FN_NAME (frvbf,cfckge) },
28596 { FRVBF_INSN_CFCKLT, SEM_FN_NAME (frvbf,cfcklt) },
28597 { FRVBF_INSN_CFCKUGE, SEM_FN_NAME (frvbf,cfckuge) },
28598 { FRVBF_INSN_CFCKUG, SEM_FN_NAME (frvbf,cfckug) },
28599 { FRVBF_INSN_CFCKLE, SEM_FN_NAME (frvbf,cfckle) },
28600 { FRVBF_INSN_CFCKGT, SEM_FN_NAME (frvbf,cfckgt) },
28601 { FRVBF_INSN_CFCKULE, SEM_FN_NAME (frvbf,cfckule) },
28602 { FRVBF_INSN_CFCKU, SEM_FN_NAME (frvbf,cfcku) },
28603 { FRVBF_INSN_CFCKO, SEM_FN_NAME (frvbf,cfcko) },
28604 { FRVBF_INSN_CJMPL, SEM_FN_NAME (frvbf,cjmpl) },
28605 { FRVBF_INSN_CCALLL, SEM_FN_NAME (frvbf,ccalll) },
28606 { FRVBF_INSN_ICI, SEM_FN_NAME (frvbf,ici) },
28607 { FRVBF_INSN_DCI, SEM_FN_NAME (frvbf,dci) },
28608 { FRVBF_INSN_ICEI, SEM_FN_NAME (frvbf,icei) },
28609 { FRVBF_INSN_DCEI, SEM_FN_NAME (frvbf,dcei) },
28610 { FRVBF_INSN_DCF, SEM_FN_NAME (frvbf,dcf) },
28611 { FRVBF_INSN_DCEF, SEM_FN_NAME (frvbf,dcef) },
28612 { FRVBF_INSN_WITLB, SEM_FN_NAME (frvbf,witlb) },
28613 { FRVBF_INSN_WDTLB, SEM_FN_NAME (frvbf,wdtlb) },
28614 { FRVBF_INSN_ITLBI, SEM_FN_NAME (frvbf,itlbi) },
28615 { FRVBF_INSN_DTLBI, SEM_FN_NAME (frvbf,dtlbi) },
28616 { FRVBF_INSN_ICPL, SEM_FN_NAME (frvbf,icpl) },
28617 { FRVBF_INSN_DCPL, SEM_FN_NAME (frvbf,dcpl) },
28618 { FRVBF_INSN_ICUL, SEM_FN_NAME (frvbf,icul) },
28619 { FRVBF_INSN_DCUL, SEM_FN_NAME (frvbf,dcul) },
28620 { FRVBF_INSN_BAR, SEM_FN_NAME (frvbf,bar) },
28621 { FRVBF_INSN_MEMBAR, SEM_FN_NAME (frvbf,membar) },
28622 { FRVBF_INSN_COP1, SEM_FN_NAME (frvbf,cop1) },
28623 { FRVBF_INSN_COP2, SEM_FN_NAME (frvbf,cop2) },
28624 { FRVBF_INSN_CLRGR, SEM_FN_NAME (frvbf,clrgr) },
28625 { FRVBF_INSN_CLRFR, SEM_FN_NAME (frvbf,clrfr) },
28626 { FRVBF_INSN_CLRGA, SEM_FN_NAME (frvbf,clrga) },
28627 { FRVBF_INSN_CLRFA, SEM_FN_NAME (frvbf,clrfa) },
28628 { FRVBF_INSN_COMMITGR, SEM_FN_NAME (frvbf,commitgr) },
28629 { FRVBF_INSN_COMMITFR, SEM_FN_NAME (frvbf,commitfr) },
28630 { FRVBF_INSN_COMMITGA, SEM_FN_NAME (frvbf,commitga) },
28631 { FRVBF_INSN_COMMITFA, SEM_FN_NAME (frvbf,commitfa) },
28632 { FRVBF_INSN_FITOS, SEM_FN_NAME (frvbf,fitos) },
28633 { FRVBF_INSN_FSTOI, SEM_FN_NAME (frvbf,fstoi) },
28634 { FRVBF_INSN_FITOD, SEM_FN_NAME (frvbf,fitod) },
28635 { FRVBF_INSN_FDTOI, SEM_FN_NAME (frvbf,fdtoi) },
28636 { FRVBF_INSN_FDITOS, SEM_FN_NAME (frvbf,fditos) },
28637 { FRVBF_INSN_FDSTOI, SEM_FN_NAME (frvbf,fdstoi) },
28638 { FRVBF_INSN_NFDITOS, SEM_FN_NAME (frvbf,nfditos) },
28639 { FRVBF_INSN_NFDSTOI, SEM_FN_NAME (frvbf,nfdstoi) },
28640 { FRVBF_INSN_CFITOS, SEM_FN_NAME (frvbf,cfitos) },
28641 { FRVBF_INSN_CFSTOI, SEM_FN_NAME (frvbf,cfstoi) },
28642 { FRVBF_INSN_NFITOS, SEM_FN_NAME (frvbf,nfitos) },
28643 { FRVBF_INSN_NFSTOI, SEM_FN_NAME (frvbf,nfstoi) },
28644 { FRVBF_INSN_FMOVS, SEM_FN_NAME (frvbf,fmovs) },
28645 { FRVBF_INSN_FMOVD, SEM_FN_NAME (frvbf,fmovd) },
28646 { FRVBF_INSN_FDMOVS, SEM_FN_NAME (frvbf,fdmovs) },
28647 { FRVBF_INSN_CFMOVS, SEM_FN_NAME (frvbf,cfmovs) },
28648 { FRVBF_INSN_FNEGS, SEM_FN_NAME (frvbf,fnegs) },
28649 { FRVBF_INSN_FNEGD, SEM_FN_NAME (frvbf,fnegd) },
28650 { FRVBF_INSN_FDNEGS, SEM_FN_NAME (frvbf,fdnegs) },
28651 { FRVBF_INSN_CFNEGS, SEM_FN_NAME (frvbf,cfnegs) },
28652 { FRVBF_INSN_FABSS, SEM_FN_NAME (frvbf,fabss) },
28653 { FRVBF_INSN_FABSD, SEM_FN_NAME (frvbf,fabsd) },
28654 { FRVBF_INSN_FDABSS, SEM_FN_NAME (frvbf,fdabss) },
28655 { FRVBF_INSN_CFABSS, SEM_FN_NAME (frvbf,cfabss) },
28656 { FRVBF_INSN_FSQRTS, SEM_FN_NAME (frvbf,fsqrts) },
28657 { FRVBF_INSN_FDSQRTS, SEM_FN_NAME (frvbf,fdsqrts) },
28658 { FRVBF_INSN_NFDSQRTS, SEM_FN_NAME (frvbf,nfdsqrts) },
28659 { FRVBF_INSN_FSQRTD, SEM_FN_NAME (frvbf,fsqrtd) },
28660 { FRVBF_INSN_CFSQRTS, SEM_FN_NAME (frvbf,cfsqrts) },
28661 { FRVBF_INSN_NFSQRTS, SEM_FN_NAME (frvbf,nfsqrts) },
28662 { FRVBF_INSN_FADDS, SEM_FN_NAME (frvbf,fadds) },
28663 { FRVBF_INSN_FSUBS, SEM_FN_NAME (frvbf,fsubs) },
28664 { FRVBF_INSN_FMULS, SEM_FN_NAME (frvbf,fmuls) },
28665 { FRVBF_INSN_FDIVS, SEM_FN_NAME (frvbf,fdivs) },
28666 { FRVBF_INSN_FADDD, SEM_FN_NAME (frvbf,faddd) },
28667 { FRVBF_INSN_FSUBD, SEM_FN_NAME (frvbf,fsubd) },
28668 { FRVBF_INSN_FMULD, SEM_FN_NAME (frvbf,fmuld) },
28669 { FRVBF_INSN_FDIVD, SEM_FN_NAME (frvbf,fdivd) },
28670 { FRVBF_INSN_CFADDS, SEM_FN_NAME (frvbf,cfadds) },
28671 { FRVBF_INSN_CFSUBS, SEM_FN_NAME (frvbf,cfsubs) },
28672 { FRVBF_INSN_CFMULS, SEM_FN_NAME (frvbf,cfmuls) },
28673 { FRVBF_INSN_CFDIVS, SEM_FN_NAME (frvbf,cfdivs) },
28674 { FRVBF_INSN_NFADDS, SEM_FN_NAME (frvbf,nfadds) },
28675 { FRVBF_INSN_NFSUBS, SEM_FN_NAME (frvbf,nfsubs) },
28676 { FRVBF_INSN_NFMULS, SEM_FN_NAME (frvbf,nfmuls) },
28677 { FRVBF_INSN_NFDIVS, SEM_FN_NAME (frvbf,nfdivs) },
28678 { FRVBF_INSN_FCMPS, SEM_FN_NAME (frvbf,fcmps) },
28679 { FRVBF_INSN_FCMPD, SEM_FN_NAME (frvbf,fcmpd) },
28680 { FRVBF_INSN_CFCMPS, SEM_FN_NAME (frvbf,cfcmps) },
28681 { FRVBF_INSN_FDCMPS, SEM_FN_NAME (frvbf,fdcmps) },
28682 { FRVBF_INSN_FMADDS, SEM_FN_NAME (frvbf,fmadds) },
28683 { FRVBF_INSN_FMSUBS, SEM_FN_NAME (frvbf,fmsubs) },
28684 { FRVBF_INSN_FMADDD, SEM_FN_NAME (frvbf,fmaddd) },
28685 { FRVBF_INSN_FMSUBD, SEM_FN_NAME (frvbf,fmsubd) },
28686 { FRVBF_INSN_FDMADDS, SEM_FN_NAME (frvbf,fdmadds) },
28687 { FRVBF_INSN_NFDMADDS, SEM_FN_NAME (frvbf,nfdmadds) },
28688 { FRVBF_INSN_CFMADDS, SEM_FN_NAME (frvbf,cfmadds) },
28689 { FRVBF_INSN_CFMSUBS, SEM_FN_NAME (frvbf,cfmsubs) },
28690 { FRVBF_INSN_NFMADDS, SEM_FN_NAME (frvbf,nfmadds) },
28691 { FRVBF_INSN_NFMSUBS, SEM_FN_NAME (frvbf,nfmsubs) },
28692 { FRVBF_INSN_FMAS, SEM_FN_NAME (frvbf,fmas) },
28693 { FRVBF_INSN_FMSS, SEM_FN_NAME (frvbf,fmss) },
28694 { FRVBF_INSN_FDMAS, SEM_FN_NAME (frvbf,fdmas) },
28695 { FRVBF_INSN_FDMSS, SEM_FN_NAME (frvbf,fdmss) },
28696 { FRVBF_INSN_NFDMAS, SEM_FN_NAME (frvbf,nfdmas) },
28697 { FRVBF_INSN_NFDMSS, SEM_FN_NAME (frvbf,nfdmss) },
28698 { FRVBF_INSN_CFMAS, SEM_FN_NAME (frvbf,cfmas) },
28699 { FRVBF_INSN_CFMSS, SEM_FN_NAME (frvbf,cfmss) },
28700 { FRVBF_INSN_FMAD, SEM_FN_NAME (frvbf,fmad) },
28701 { FRVBF_INSN_FMSD, SEM_FN_NAME (frvbf,fmsd) },
28702 { FRVBF_INSN_NFMAS, SEM_FN_NAME (frvbf,nfmas) },
28703 { FRVBF_INSN_NFMSS, SEM_FN_NAME (frvbf,nfmss) },
28704 { FRVBF_INSN_FDADDS, SEM_FN_NAME (frvbf,fdadds) },
28705 { FRVBF_INSN_FDSUBS, SEM_FN_NAME (frvbf,fdsubs) },
28706 { FRVBF_INSN_FDMULS, SEM_FN_NAME (frvbf,fdmuls) },
28707 { FRVBF_INSN_FDDIVS, SEM_FN_NAME (frvbf,fddivs) },
28708 { FRVBF_INSN_FDSADS, SEM_FN_NAME (frvbf,fdsads) },
28709 { FRVBF_INSN_FDMULCS, SEM_FN_NAME (frvbf,fdmulcs) },
28710 { FRVBF_INSN_NFDMULCS, SEM_FN_NAME (frvbf,nfdmulcs) },
28711 { FRVBF_INSN_NFDADDS, SEM_FN_NAME (frvbf,nfdadds) },
28712 { FRVBF_INSN_NFDSUBS, SEM_FN_NAME (frvbf,nfdsubs) },
28713 { FRVBF_INSN_NFDMULS, SEM_FN_NAME (frvbf,nfdmuls) },
28714 { FRVBF_INSN_NFDDIVS, SEM_FN_NAME (frvbf,nfddivs) },
28715 { FRVBF_INSN_NFDSADS, SEM_FN_NAME (frvbf,nfdsads) },
28716 { FRVBF_INSN_NFDCMPS, SEM_FN_NAME (frvbf,nfdcmps) },
28717 { FRVBF_INSN_MHSETLOS, SEM_FN_NAME (frvbf,mhsetlos) },
28718 { FRVBF_INSN_MHSETHIS, SEM_FN_NAME (frvbf,mhsethis) },
28719 { FRVBF_INSN_MHDSETS, SEM_FN_NAME (frvbf,mhdsets) },
28720 { FRVBF_INSN_MHSETLOH, SEM_FN_NAME (frvbf,mhsetloh) },
28721 { FRVBF_INSN_MHSETHIH, SEM_FN_NAME (frvbf,mhsethih) },
28722 { FRVBF_INSN_MHDSETH, SEM_FN_NAME (frvbf,mhdseth) },
28723 { FRVBF_INSN_MAND, SEM_FN_NAME (frvbf,mand) },
28724 { FRVBF_INSN_MOR, SEM_FN_NAME (frvbf,mor) },
28725 { FRVBF_INSN_MXOR, SEM_FN_NAME (frvbf,mxor) },
28726 { FRVBF_INSN_CMAND, SEM_FN_NAME (frvbf,cmand) },
28727 { FRVBF_INSN_CMOR, SEM_FN_NAME (frvbf,cmor) },
28728 { FRVBF_INSN_CMXOR, SEM_FN_NAME (frvbf,cmxor) },
28729 { FRVBF_INSN_MNOT, SEM_FN_NAME (frvbf,mnot) },
28730 { FRVBF_INSN_CMNOT, SEM_FN_NAME (frvbf,cmnot) },
28731 { FRVBF_INSN_MROTLI, SEM_FN_NAME (frvbf,mrotli) },
28732 { FRVBF_INSN_MROTRI, SEM_FN_NAME (frvbf,mrotri) },
28733 { FRVBF_INSN_MWCUT, SEM_FN_NAME (frvbf,mwcut) },
28734 { FRVBF_INSN_MWCUTI, SEM_FN_NAME (frvbf,mwcuti) },
28735 { FRVBF_INSN_MCUT, SEM_FN_NAME (frvbf,mcut) },
28736 { FRVBF_INSN_MCUTI, SEM_FN_NAME (frvbf,mcuti) },
28737 { FRVBF_INSN_MCUTSS, SEM_FN_NAME (frvbf,mcutss) },
28738 { FRVBF_INSN_MCUTSSI, SEM_FN_NAME (frvbf,mcutssi) },
28739 { FRVBF_INSN_MDCUTSSI, SEM_FN_NAME (frvbf,mdcutssi) },
28740 { FRVBF_INSN_MAVEH, SEM_FN_NAME (frvbf,maveh) },
28741 { FRVBF_INSN_MSLLHI, SEM_FN_NAME (frvbf,msllhi) },
28742 { FRVBF_INSN_MSRLHI, SEM_FN_NAME (frvbf,msrlhi) },
28743 { FRVBF_INSN_MSRAHI, SEM_FN_NAME (frvbf,msrahi) },
28744 { FRVBF_INSN_MDROTLI, SEM_FN_NAME (frvbf,mdrotli) },
28745 { FRVBF_INSN_MCPLHI, SEM_FN_NAME (frvbf,mcplhi) },
28746 { FRVBF_INSN_MCPLI, SEM_FN_NAME (frvbf,mcpli) },
28747 { FRVBF_INSN_MSATHS, SEM_FN_NAME (frvbf,msaths) },
28748 { FRVBF_INSN_MQSATHS, SEM_FN_NAME (frvbf,mqsaths) },
28749 { FRVBF_INSN_MSATHU, SEM_FN_NAME (frvbf,msathu) },
28750 { FRVBF_INSN_MCMPSH, SEM_FN_NAME (frvbf,mcmpsh) },
28751 { FRVBF_INSN_MCMPUH, SEM_FN_NAME (frvbf,mcmpuh) },
28752 { FRVBF_INSN_MABSHS, SEM_FN_NAME (frvbf,mabshs) },
28753 { FRVBF_INSN_MADDHSS, SEM_FN_NAME (frvbf,maddhss) },
28754 { FRVBF_INSN_MADDHUS, SEM_FN_NAME (frvbf,maddhus) },
28755 { FRVBF_INSN_MSUBHSS, SEM_FN_NAME (frvbf,msubhss) },
28756 { FRVBF_INSN_MSUBHUS, SEM_FN_NAME (frvbf,msubhus) },
28757 { FRVBF_INSN_CMADDHSS, SEM_FN_NAME (frvbf,cmaddhss) },
28758 { FRVBF_INSN_CMADDHUS, SEM_FN_NAME (frvbf,cmaddhus) },
28759 { FRVBF_INSN_CMSUBHSS, SEM_FN_NAME (frvbf,cmsubhss) },
28760 { FRVBF_INSN_CMSUBHUS, SEM_FN_NAME (frvbf,cmsubhus) },
28761 { FRVBF_INSN_MQADDHSS, SEM_FN_NAME (frvbf,mqaddhss) },
28762 { FRVBF_INSN_MQADDHUS, SEM_FN_NAME (frvbf,mqaddhus) },
28763 { FRVBF_INSN_MQSUBHSS, SEM_FN_NAME (frvbf,mqsubhss) },
28764 { FRVBF_INSN_MQSUBHUS, SEM_FN_NAME (frvbf,mqsubhus) },
28765 { FRVBF_INSN_CMQADDHSS, SEM_FN_NAME (frvbf,cmqaddhss) },
28766 { FRVBF_INSN_CMQADDHUS, SEM_FN_NAME (frvbf,cmqaddhus) },
28767 { FRVBF_INSN_CMQSUBHSS, SEM_FN_NAME (frvbf,cmqsubhss) },
28768 { FRVBF_INSN_CMQSUBHUS, SEM_FN_NAME (frvbf,cmqsubhus) },
28769 { FRVBF_INSN_MADDACCS, SEM_FN_NAME (frvbf,maddaccs) },
28770 { FRVBF_INSN_MSUBACCS, SEM_FN_NAME (frvbf,msubaccs) },
28771 { FRVBF_INSN_MDADDACCS, SEM_FN_NAME (frvbf,mdaddaccs) },
28772 { FRVBF_INSN_MDSUBACCS, SEM_FN_NAME (frvbf,mdsubaccs) },
28773 { FRVBF_INSN_MASACCS, SEM_FN_NAME (frvbf,masaccs) },
28774 { FRVBF_INSN_MDASACCS, SEM_FN_NAME (frvbf,mdasaccs) },
28775 { FRVBF_INSN_MMULHS, SEM_FN_NAME (frvbf,mmulhs) },
28776 { FRVBF_INSN_MMULHU, SEM_FN_NAME (frvbf,mmulhu) },
28777 { FRVBF_INSN_MMULXHS, SEM_FN_NAME (frvbf,mmulxhs) },
28778 { FRVBF_INSN_MMULXHU, SEM_FN_NAME (frvbf,mmulxhu) },
28779 { FRVBF_INSN_CMMULHS, SEM_FN_NAME (frvbf,cmmulhs) },
28780 { FRVBF_INSN_CMMULHU, SEM_FN_NAME (frvbf,cmmulhu) },
28781 { FRVBF_INSN_MQMULHS, SEM_FN_NAME (frvbf,mqmulhs) },
28782 { FRVBF_INSN_MQMULHU, SEM_FN_NAME (frvbf,mqmulhu) },
28783 { FRVBF_INSN_MQMULXHS, SEM_FN_NAME (frvbf,mqmulxhs) },
28784 { FRVBF_INSN_MQMULXHU, SEM_FN_NAME (frvbf,mqmulxhu) },
28785 { FRVBF_INSN_CMQMULHS, SEM_FN_NAME (frvbf,cmqmulhs) },
28786 { FRVBF_INSN_CMQMULHU, SEM_FN_NAME (frvbf,cmqmulhu) },
28787 { FRVBF_INSN_MMACHS, SEM_FN_NAME (frvbf,mmachs) },
28788 { FRVBF_INSN_MMACHU, SEM_FN_NAME (frvbf,mmachu) },
28789 { FRVBF_INSN_MMRDHS, SEM_FN_NAME (frvbf,mmrdhs) },
28790 { FRVBF_INSN_MMRDHU, SEM_FN_NAME (frvbf,mmrdhu) },
28791 { FRVBF_INSN_CMMACHS, SEM_FN_NAME (frvbf,cmmachs) },
28792 { FRVBF_INSN_CMMACHU, SEM_FN_NAME (frvbf,cmmachu) },
28793 { FRVBF_INSN_MQMACHS, SEM_FN_NAME (frvbf,mqmachs) },
28794 { FRVBF_INSN_MQMACHU, SEM_FN_NAME (frvbf,mqmachu) },
28795 { FRVBF_INSN_CMQMACHS, SEM_FN_NAME (frvbf,cmqmachs) },
28796 { FRVBF_INSN_CMQMACHU, SEM_FN_NAME (frvbf,cmqmachu) },
28797 { FRVBF_INSN_MQXMACHS, SEM_FN_NAME (frvbf,mqxmachs) },
28798 { FRVBF_INSN_MQXMACXHS, SEM_FN_NAME (frvbf,mqxmacxhs) },
28799 { FRVBF_INSN_MQMACXHS, SEM_FN_NAME (frvbf,mqmacxhs) },
28800 { FRVBF_INSN_MCPXRS, SEM_FN_NAME (frvbf,mcpxrs) },
28801 { FRVBF_INSN_MCPXRU, SEM_FN_NAME (frvbf,mcpxru) },
28802 { FRVBF_INSN_MCPXIS, SEM_FN_NAME (frvbf,mcpxis) },
28803 { FRVBF_INSN_MCPXIU, SEM_FN_NAME (frvbf,mcpxiu) },
28804 { FRVBF_INSN_CMCPXRS, SEM_FN_NAME (frvbf,cmcpxrs) },
28805 { FRVBF_INSN_CMCPXRU, SEM_FN_NAME (frvbf,cmcpxru) },
28806 { FRVBF_INSN_CMCPXIS, SEM_FN_NAME (frvbf,cmcpxis) },
28807 { FRVBF_INSN_CMCPXIU, SEM_FN_NAME (frvbf,cmcpxiu) },
28808 { FRVBF_INSN_MQCPXRS, SEM_FN_NAME (frvbf,mqcpxrs) },
28809 { FRVBF_INSN_MQCPXRU, SEM_FN_NAME (frvbf,mqcpxru) },
28810 { FRVBF_INSN_MQCPXIS, SEM_FN_NAME (frvbf,mqcpxis) },
28811 { FRVBF_INSN_MQCPXIU, SEM_FN_NAME (frvbf,mqcpxiu) },
28812 { FRVBF_INSN_MEXPDHW, SEM_FN_NAME (frvbf,mexpdhw) },
28813 { FRVBF_INSN_CMEXPDHW, SEM_FN_NAME (frvbf,cmexpdhw) },
28814 { FRVBF_INSN_MEXPDHD, SEM_FN_NAME (frvbf,mexpdhd) },
28815 { FRVBF_INSN_CMEXPDHD, SEM_FN_NAME (frvbf,cmexpdhd) },
28816 { FRVBF_INSN_MPACKH, SEM_FN_NAME (frvbf,mpackh) },
28817 { FRVBF_INSN_MDPACKH, SEM_FN_NAME (frvbf,mdpackh) },
28818 { FRVBF_INSN_MUNPACKH, SEM_FN_NAME (frvbf,munpackh) },
28819 { FRVBF_INSN_MDUNPACKH, SEM_FN_NAME (frvbf,mdunpackh) },
28820 { FRVBF_INSN_MBTOH, SEM_FN_NAME (frvbf,mbtoh) },
28821 { FRVBF_INSN_CMBTOH, SEM_FN_NAME (frvbf,cmbtoh) },
28822 { FRVBF_INSN_MHTOB, SEM_FN_NAME (frvbf,mhtob) },
28823 { FRVBF_INSN_CMHTOB, SEM_FN_NAME (frvbf,cmhtob) },
28824 { FRVBF_INSN_MBTOHE, SEM_FN_NAME (frvbf,mbtohe) },
28825 { FRVBF_INSN_CMBTOHE, SEM_FN_NAME (frvbf,cmbtohe) },
28826 { FRVBF_INSN_MNOP, SEM_FN_NAME (frvbf,mnop) },
28827 { FRVBF_INSN_MCLRACC_0, SEM_FN_NAME (frvbf,mclracc_0) },
28828 { FRVBF_INSN_MCLRACC_1, SEM_FN_NAME (frvbf,mclracc_1) },
28829 { FRVBF_INSN_MRDACC, SEM_FN_NAME (frvbf,mrdacc) },
28830 { FRVBF_INSN_MRDACCG, SEM_FN_NAME (frvbf,mrdaccg) },
28831 { FRVBF_INSN_MWTACC, SEM_FN_NAME (frvbf,mwtacc) },
28832 { FRVBF_INSN_MWTACCG, SEM_FN_NAME (frvbf,mwtaccg) },
28833 { FRVBF_INSN_MCOP1, SEM_FN_NAME (frvbf,mcop1) },
28834 { FRVBF_INSN_MCOP2, SEM_FN_NAME (frvbf,mcop2) },
28835 { FRVBF_INSN_FNOP, SEM_FN_NAME (frvbf,fnop) },
28839 /* Add the semantic fns to IDESC_TABLE. */
28842 SEM_FN_NAME (frvbf,init_idesc_table) (SIM_CPU *current_cpu)
28844 IDESC *idesc_table = CPU_IDESC (current_cpu);
28845 const struct sem_fn_desc *sf;
28846 int mach_num = MACH_NUM (CPU_MACH (current_cpu));
28848 for (sf = &sem_fns[0]; sf->fn != 0; ++sf)
28850 const CGEN_INSN *insn = idesc_table[sf->index].idata;
28851 int valid_p = (CGEN_INSN_VIRTUAL_P (insn)
28852 || CGEN_INSN_MACH_HAS_P (insn, mach_num));
28855 idesc_table[sf->index].sem_fast = sf->fn;
28857 idesc_table[sf->index].sem_fast = SEM_FN_NAME (frvbf,x_invalid);
28860 idesc_table[sf->index].sem_full = sf->fn;
28862 idesc_table[sf->index].sem_full = SEM_FN_NAME (frvbf,x_invalid);