1 /* Simulator instruction semantics for frvbf.
3 THIS FILE IS MACHINE GENERATED WITH CGEN.
5 Copyright 1996-2005 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 3 of the License, or
12 (at your option) any later version.
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
20 along with this program. If not, see <http://www.gnu.org/licenses/>.
24 #define WANT_CPU frvbf
25 #define WANT_CPU_FRVBF
32 #if defined (__STDC__) || defined (ALMOST_STDC) || defined (HAVE_STRINGIZE)
33 #define GET_ATTR(cpu, num, attr) CGEN_ATTR_VALUE (NULL, abuf->idesc->attrs, CGEN_INSN_##attr)
35 #define GET_ATTR(cpu, num, attr) CGEN_ATTR_VALUE (NULL, abuf->idesc->attrs, CGEN_INSN_/**/attr)
38 /* This is used so that we can compile two copies of the semantic code,
39 one with full feature support and one without that runs fast(er).
40 FAST_P, when desired, is defined on the command line, -DFAST_P=1. */
42 #define SEM_FN_NAME(cpu,fn) XCONCAT3 (cpu,_semf_,fn)
44 #define TRACE_RESULT(cpu, abuf, name, type, val)
46 #define SEM_FN_NAME(cpu,fn) XCONCAT3 (cpu,_sem_,fn)
49 /* x-invalid: --invalid-- */
52 SEM_FN_NAME (frvbf,x_invalid) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
54 #define FLD(f) abuf->fields.fmt_empty.f
55 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
56 int UNUSED written = 0;
57 IADDR UNUSED pc = abuf->addr;
58 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 0);
61 /* Update the recorded pc in the cpu state struct.
62 Only necessary for WITH_SCACHE case, but to avoid the
63 conditional compilation .... */
65 /* Virtual insns have zero size. Overwrite vpc with address of next insn
66 using the default-insn-bitsize spec. When executing insns in parallel
67 we may want to queue the fault and continue execution. */
68 vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
69 vpc = sim_engine_invalid_insn (current_cpu, pc, vpc);
76 /* x-after: --after-- */
79 SEM_FN_NAME (frvbf,x_after) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
81 #define FLD(f) abuf->fields.fmt_empty.f
82 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
83 int UNUSED written = 0;
84 IADDR UNUSED pc = abuf->addr;
85 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 0);
88 #if WITH_SCACHE_PBB_FRVBF
89 frvbf_pbb_after (current_cpu, sem_arg);
97 /* x-before: --before-- */
100 SEM_FN_NAME (frvbf,x_before) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
102 #define FLD(f) abuf->fields.fmt_empty.f
103 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
104 int UNUSED written = 0;
105 IADDR UNUSED pc = abuf->addr;
106 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 0);
109 #if WITH_SCACHE_PBB_FRVBF
110 frvbf_pbb_before (current_cpu, sem_arg);
118 /* x-cti-chain: --cti-chain-- */
121 SEM_FN_NAME (frvbf,x_cti_chain) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
123 #define FLD(f) abuf->fields.fmt_empty.f
124 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
125 int UNUSED written = 0;
126 IADDR UNUSED pc = abuf->addr;
127 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 0);
130 #if WITH_SCACHE_PBB_FRVBF
132 vpc = frvbf_pbb_cti_chain (current_cpu, sem_arg,
133 pbb_br_type, pbb_br_npc);
136 /* FIXME: Allow provision of explicit ifmt spec in insn spec. */
137 vpc = frvbf_pbb_cti_chain (current_cpu, sem_arg,
138 CPU_PBB_BR_TYPE (current_cpu),
139 CPU_PBB_BR_NPC (current_cpu));
148 /* x-chain: --chain-- */
151 SEM_FN_NAME (frvbf,x_chain) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
153 #define FLD(f) abuf->fields.fmt_empty.f
154 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
155 int UNUSED written = 0;
156 IADDR UNUSED pc = abuf->addr;
157 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 0);
160 #if WITH_SCACHE_PBB_FRVBF
161 vpc = frvbf_pbb_chain (current_cpu, sem_arg);
172 /* x-begin: --begin-- */
175 SEM_FN_NAME (frvbf,x_begin) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
177 #define FLD(f) abuf->fields.fmt_empty.f
178 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
179 int UNUSED written = 0;
180 IADDR UNUSED pc = abuf->addr;
181 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 0);
184 #if WITH_SCACHE_PBB_FRVBF
185 #if defined DEFINE_SWITCH || defined FAST_P
186 /* In the switch case FAST_P is a constant, allowing several optimizations
187 in any called inline functions. */
188 vpc = frvbf_pbb_begin (current_cpu, FAST_P);
190 #if 0 /* cgen engine can't handle dynamic fast/full switching yet. */
191 vpc = frvbf_pbb_begin (current_cpu, STATE_RUN_FAST_P (CPU_STATE (current_cpu)));
193 vpc = frvbf_pbb_begin (current_cpu, 0);
203 /* add: add$pack $GRi,$GRj,$GRk */
206 SEM_FN_NAME (frvbf,add) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
208 #define FLD(f) abuf->fields.sfmt_addcc.f
209 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
210 int UNUSED written = 0;
211 IADDR UNUSED pc = abuf->addr;
212 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
215 SI opval = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
216 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
217 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
224 /* sub: sub$pack $GRi,$GRj,$GRk */
227 SEM_FN_NAME (frvbf,sub) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
229 #define FLD(f) abuf->fields.sfmt_addcc.f
230 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
231 int UNUSED written = 0;
232 IADDR UNUSED pc = abuf->addr;
233 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
236 SI opval = SUBSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
237 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
238 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
245 /* and: and$pack $GRi,$GRj,$GRk */
248 SEM_FN_NAME (frvbf,and) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
250 #define FLD(f) abuf->fields.sfmt_addcc.f
251 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
252 int UNUSED written = 0;
253 IADDR UNUSED pc = abuf->addr;
254 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
257 SI opval = ANDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
258 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
259 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
266 /* or: or$pack $GRi,$GRj,$GRk */
269 SEM_FN_NAME (frvbf,or) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
271 #define FLD(f) abuf->fields.sfmt_addcc.f
272 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
273 int UNUSED written = 0;
274 IADDR UNUSED pc = abuf->addr;
275 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
278 SI opval = ORSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
279 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
280 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
287 /* xor: xor$pack $GRi,$GRj,$GRk */
290 SEM_FN_NAME (frvbf,xor) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
292 #define FLD(f) abuf->fields.sfmt_addcc.f
293 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
294 int UNUSED written = 0;
295 IADDR UNUSED pc = abuf->addr;
296 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
299 SI opval = XORSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
300 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
301 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
308 /* not: not$pack $GRj,$GRk */
311 SEM_FN_NAME (frvbf,not) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
313 #define FLD(f) abuf->fields.sfmt_scutss.f
314 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
315 int UNUSED written = 0;
316 IADDR UNUSED pc = abuf->addr;
317 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
320 SI opval = INVSI (GET_H_GR (FLD (f_GRj)));
321 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
322 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
329 /* sdiv: sdiv$pack $GRi,$GRj,$GRk */
332 SEM_FN_NAME (frvbf,sdiv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
334 #define FLD(f) abuf->fields.sfmt_addcc.f
335 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
336 int UNUSED written = 0;
337 IADDR UNUSED pc = abuf->addr;
338 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
341 frvbf_signed_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), FLD (f_GRk), 0);
349 /* nsdiv: nsdiv$pack $GRi,$GRj,$GRk */
352 SEM_FN_NAME (frvbf,nsdiv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
354 #define FLD(f) abuf->fields.sfmt_addcc.f
355 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
356 int UNUSED written = 0;
357 IADDR UNUSED pc = abuf->addr;
358 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
361 frvbf_signed_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), FLD (f_GRk), 1);
369 /* udiv: udiv$pack $GRi,$GRj,$GRk */
372 SEM_FN_NAME (frvbf,udiv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
374 #define FLD(f) abuf->fields.sfmt_addcc.f
375 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
376 int UNUSED written = 0;
377 IADDR UNUSED pc = abuf->addr;
378 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
381 frvbf_unsigned_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), FLD (f_GRk), 0);
389 /* nudiv: nudiv$pack $GRi,$GRj,$GRk */
392 SEM_FN_NAME (frvbf,nudiv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
394 #define FLD(f) abuf->fields.sfmt_addcc.f
395 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
396 int UNUSED written = 0;
397 IADDR UNUSED pc = abuf->addr;
398 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
401 frvbf_unsigned_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), FLD (f_GRk), 1);
409 /* smul: smul$pack $GRi,$GRj,$GRdoublek */
412 SEM_FN_NAME (frvbf,smul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
414 #define FLD(f) abuf->fields.sfmt_smulcc.f
415 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
416 int UNUSED written = 0;
417 IADDR UNUSED pc = abuf->addr;
418 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
421 DI opval = MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (GET_H_GR (FLD (f_GRj))));
422 sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
423 TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
430 /* umul: umul$pack $GRi,$GRj,$GRdoublek */
433 SEM_FN_NAME (frvbf,umul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
435 #define FLD(f) abuf->fields.sfmt_smulcc.f
436 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
437 int UNUSED written = 0;
438 IADDR UNUSED pc = abuf->addr;
439 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
442 DI opval = MULDI (ZEXTSIDI (GET_H_GR (FLD (f_GRi))), ZEXTSIDI (GET_H_GR (FLD (f_GRj))));
443 sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
444 TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
451 /* smu: smu$pack $GRi,$GRj */
454 SEM_FN_NAME (frvbf,smu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
456 #define FLD(f) abuf->fields.sfmt_smass.f
457 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
458 int UNUSED written = 0;
459 IADDR UNUSED pc = abuf->addr;
460 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
463 DI opval = MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (GET_H_GR (FLD (f_GRj))));
464 sim_queue_fn_di_write (current_cpu, frvbf_h_iacc0_set, ((UINT) 0), opval);
465 TRACE_RESULT (current_cpu, abuf, "iacc0", 'D', opval);
472 /* smass: smass$pack $GRi,$GRj */
475 SEM_FN_NAME (frvbf,smass) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
477 #define FLD(f) abuf->fields.sfmt_smass.f
478 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
479 int UNUSED written = 0;
480 IADDR UNUSED pc = abuf->addr;
481 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
484 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))))));
485 sim_queue_fn_di_write (current_cpu, frvbf_h_iacc0_set, ((UINT) 0), opval);
486 TRACE_RESULT (current_cpu, abuf, "iacc0", 'D', opval);
493 /* smsss: smsss$pack $GRi,$GRj */
496 SEM_FN_NAME (frvbf,smsss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
498 #define FLD(f) abuf->fields.sfmt_smass.f
499 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
500 int UNUSED written = 0;
501 IADDR UNUSED pc = abuf->addr;
502 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
505 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))))));
506 sim_queue_fn_di_write (current_cpu, frvbf_h_iacc0_set, ((UINT) 0), opval);
507 TRACE_RESULT (current_cpu, abuf, "iacc0", 'D', opval);
514 /* sll: sll$pack $GRi,$GRj,$GRk */
517 SEM_FN_NAME (frvbf,sll) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
519 #define FLD(f) abuf->fields.sfmt_addcc.f
520 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
521 int UNUSED written = 0;
522 IADDR UNUSED pc = abuf->addr;
523 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
526 SI opval = SLLSI (GET_H_GR (FLD (f_GRi)), ANDSI (GET_H_GR (FLD (f_GRj)), 31));
527 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
528 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
535 /* srl: srl$pack $GRi,$GRj,$GRk */
538 SEM_FN_NAME (frvbf,srl) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
540 #define FLD(f) abuf->fields.sfmt_addcc.f
541 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
542 int UNUSED written = 0;
543 IADDR UNUSED pc = abuf->addr;
544 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
547 SI opval = SRLSI (GET_H_GR (FLD (f_GRi)), ANDSI (GET_H_GR (FLD (f_GRj)), 31));
548 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
549 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
556 /* sra: sra$pack $GRi,$GRj,$GRk */
559 SEM_FN_NAME (frvbf,sra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
561 #define FLD(f) abuf->fields.sfmt_addcc.f
562 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
563 int UNUSED written = 0;
564 IADDR UNUSED pc = abuf->addr;
565 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
568 SI opval = SRASI (GET_H_GR (FLD (f_GRi)), ANDSI (GET_H_GR (FLD (f_GRj)), 31));
569 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
570 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
577 /* slass: slass$pack $GRi,$GRj,$GRk */
580 SEM_FN_NAME (frvbf,slass) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
582 #define FLD(f) abuf->fields.sfmt_addcc.f
583 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
584 int UNUSED written = 0;
585 IADDR UNUSED pc = abuf->addr;
586 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
589 SI opval = frvbf_shift_left_arith_saturate (current_cpu, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
590 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
591 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
598 /* scutss: scutss$pack $GRj,$GRk */
601 SEM_FN_NAME (frvbf,scutss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
603 #define FLD(f) abuf->fields.sfmt_scutss.f
604 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
605 int UNUSED written = 0;
606 IADDR UNUSED pc = abuf->addr;
607 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
610 SI opval = frvbf_iacc_cut (current_cpu, GET_H_IACC0 (((UINT) 0)), GET_H_GR (FLD (f_GRj)));
611 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
612 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
619 /* scan: scan$pack $GRi,$GRj,$GRk */
622 SEM_FN_NAME (frvbf,scan) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
624 #define FLD(f) abuf->fields.sfmt_addcc.f
625 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
626 int UNUSED written = 0;
627 IADDR UNUSED pc = abuf->addr;
628 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
633 tmp_tmp1 = GET_H_GR (FLD (f_GRi));
634 tmp_tmp2 = SRASI (GET_H_GR (FLD (f_GRj)), 1);
636 SI opval = frvbf_scan_result (current_cpu, XORSI (tmp_tmp1, tmp_tmp2));
637 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
638 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
646 /* cadd: cadd$pack $GRi,$GRj,$GRk,$CCi,$cond */
649 SEM_FN_NAME (frvbf,cadd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
651 #define FLD(f) abuf->fields.sfmt_cswap.f
652 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
653 int UNUSED written = 0;
654 IADDR UNUSED pc = abuf->addr;
655 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
657 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
659 SI opval = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
660 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
662 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
666 abuf->written = written;
671 /* csub: csub$pack $GRi,$GRj,$GRk,$CCi,$cond */
674 SEM_FN_NAME (frvbf,csub) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
676 #define FLD(f) abuf->fields.sfmt_cswap.f
677 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
678 int UNUSED written = 0;
679 IADDR UNUSED pc = abuf->addr;
680 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
682 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
684 SI opval = SUBSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
685 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
687 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
691 abuf->written = written;
696 /* cand: cand$pack $GRi,$GRj,$GRk,$CCi,$cond */
699 SEM_FN_NAME (frvbf,cand) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
701 #define FLD(f) abuf->fields.sfmt_cswap.f
702 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
703 int UNUSED written = 0;
704 IADDR UNUSED pc = abuf->addr;
705 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
707 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
709 SI opval = ANDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
710 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
712 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
716 abuf->written = written;
721 /* cor: cor$pack $GRi,$GRj,$GRk,$CCi,$cond */
724 SEM_FN_NAME (frvbf,cor) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
726 #define FLD(f) abuf->fields.sfmt_cswap.f
727 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
728 int UNUSED written = 0;
729 IADDR UNUSED pc = abuf->addr;
730 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
732 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
734 SI opval = ORSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
735 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
737 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
741 abuf->written = written;
746 /* cxor: cxor$pack $GRi,$GRj,$GRk,$CCi,$cond */
749 SEM_FN_NAME (frvbf,cxor) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
751 #define FLD(f) abuf->fields.sfmt_cswap.f
752 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
753 int UNUSED written = 0;
754 IADDR UNUSED pc = abuf->addr;
755 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
757 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
759 SI opval = XORSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
760 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
762 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
766 abuf->written = written;
771 /* cnot: cnot$pack $GRj,$GRk,$CCi,$cond */
774 SEM_FN_NAME (frvbf,cnot) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
776 #define FLD(f) abuf->fields.sfmt_cswap.f
777 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
778 int UNUSED written = 0;
779 IADDR UNUSED pc = abuf->addr;
780 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
782 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
784 SI opval = INVSI (GET_H_GR (FLD (f_GRj)));
785 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
787 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
791 abuf->written = written;
796 /* csmul: csmul$pack $GRi,$GRj,$GRdoublek,$CCi,$cond */
799 SEM_FN_NAME (frvbf,csmul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
801 #define FLD(f) abuf->fields.sfmt_clddu.f
802 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
803 int UNUSED written = 0;
804 IADDR UNUSED pc = abuf->addr;
805 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
807 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
809 DI opval = MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (GET_H_GR (FLD (f_GRj))));
810 sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
812 TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
816 abuf->written = written;
821 /* csdiv: csdiv$pack $GRi,$GRj,$GRk,$CCi,$cond */
824 SEM_FN_NAME (frvbf,csdiv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
826 #define FLD(f) abuf->fields.sfmt_cswap.f
827 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
828 int UNUSED written = 0;
829 IADDR UNUSED pc = abuf->addr;
830 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
832 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
834 frvbf_signed_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), FLD (f_GRk), 0);
839 abuf->written = written;
844 /* cudiv: cudiv$pack $GRi,$GRj,$GRk,$CCi,$cond */
847 SEM_FN_NAME (frvbf,cudiv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
849 #define FLD(f) abuf->fields.sfmt_cswap.f
850 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
851 int UNUSED written = 0;
852 IADDR UNUSED pc = abuf->addr;
853 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
855 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
857 frvbf_unsigned_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), FLD (f_GRk), 0);
862 abuf->written = written;
867 /* csll: csll$pack $GRi,$GRj,$GRk,$CCi,$cond */
870 SEM_FN_NAME (frvbf,csll) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
872 #define FLD(f) abuf->fields.sfmt_cswap.f
873 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
874 int UNUSED written = 0;
875 IADDR UNUSED pc = abuf->addr;
876 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
878 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
880 SI opval = SLLSI (GET_H_GR (FLD (f_GRi)), ANDSI (GET_H_GR (FLD (f_GRj)), 31));
881 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
883 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
887 abuf->written = written;
892 /* csrl: csrl$pack $GRi,$GRj,$GRk,$CCi,$cond */
895 SEM_FN_NAME (frvbf,csrl) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
897 #define FLD(f) abuf->fields.sfmt_cswap.f
898 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
899 int UNUSED written = 0;
900 IADDR UNUSED pc = abuf->addr;
901 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
903 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
905 SI opval = SRLSI (GET_H_GR (FLD (f_GRi)), ANDSI (GET_H_GR (FLD (f_GRj)), 31));
906 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
908 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
912 abuf->written = written;
917 /* csra: csra$pack $GRi,$GRj,$GRk,$CCi,$cond */
920 SEM_FN_NAME (frvbf,csra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
922 #define FLD(f) abuf->fields.sfmt_cswap.f
923 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
924 int UNUSED written = 0;
925 IADDR UNUSED pc = abuf->addr;
926 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
928 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
930 SI opval = SRASI (GET_H_GR (FLD (f_GRi)), ANDSI (GET_H_GR (FLD (f_GRj)), 31));
931 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
933 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
937 abuf->written = written;
942 /* cscan: cscan$pack $GRi,$GRj,$GRk,$CCi,$cond */
945 SEM_FN_NAME (frvbf,cscan) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
947 #define FLD(f) abuf->fields.sfmt_cswap.f
948 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
949 int UNUSED written = 0;
950 IADDR UNUSED pc = abuf->addr;
951 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
953 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
957 tmp_tmp1 = GET_H_GR (FLD (f_GRi));
958 tmp_tmp2 = SRASI (GET_H_GR (FLD (f_GRj)), 1);
960 SI opval = frvbf_scan_result (current_cpu, XORSI (tmp_tmp1, tmp_tmp2));
961 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
963 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
968 abuf->written = written;
973 /* addcc: addcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
976 SEM_FN_NAME (frvbf,addcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
978 #define FLD(f) abuf->fields.sfmt_addcc.f
979 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
980 int UNUSED written = 0;
981 IADDR UNUSED pc = abuf->addr;
982 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
988 tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
989 tmp_tmp = ADDOFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0);
990 if (EQBI (tmp_tmp, 0)) {
991 tmp_cc = ANDQI (tmp_cc, 13);
993 tmp_cc = ORQI (tmp_cc, 2);
995 tmp_tmp = ADDCFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0);
996 if (EQBI (tmp_tmp, 0)) {
997 tmp_cc = ANDQI (tmp_cc, 14);
999 tmp_cc = ORQI (tmp_cc, 1);
1001 tmp_result = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
1002 if (EQSI (tmp_result, 0)) {
1003 tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1005 if (LTSI (tmp_result, 0)) {
1006 tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1008 tmp_cc = ANDQI (tmp_cc, 3);
1012 SI opval = tmp_result;
1013 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1014 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1018 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1019 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1027 /* subcc: subcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1030 SEM_FN_NAME (frvbf,subcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1032 #define FLD(f) abuf->fields.sfmt_addcc.f
1033 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1034 int UNUSED written = 0;
1035 IADDR UNUSED pc = abuf->addr;
1036 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1042 tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
1043 tmp_tmp = SUBOFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0);
1044 if (EQBI (tmp_tmp, 0)) {
1045 tmp_cc = ANDQI (tmp_cc, 13);
1047 tmp_cc = ORQI (tmp_cc, 2);
1049 tmp_tmp = SUBCFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0);
1050 if (EQBI (tmp_tmp, 0)) {
1051 tmp_cc = ANDQI (tmp_cc, 14);
1053 tmp_cc = ORQI (tmp_cc, 1);
1055 tmp_result = SUBSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
1056 if (EQSI (tmp_result, 0)) {
1057 tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1059 if (LTSI (tmp_result, 0)) {
1060 tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1062 tmp_cc = ANDQI (tmp_cc, 3);
1066 SI opval = tmp_result;
1067 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1068 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1072 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1073 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1081 /* andcc: andcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1084 SEM_FN_NAME (frvbf,andcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1086 #define FLD(f) abuf->fields.sfmt_addcc.f
1087 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1088 int UNUSED written = 0;
1089 IADDR UNUSED pc = abuf->addr;
1090 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1094 tmp_tmp = ANDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
1097 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1098 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1100 if (EQSI (tmp_tmp, 0)) {
1102 UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 7), 4);
1103 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1104 written |= (1 << 4);
1105 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1108 if (LTSI (tmp_tmp, 0)) {
1110 UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 11), 8);
1111 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1112 written |= (1 << 4);
1113 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1117 UQI opval = ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 3);
1118 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1119 written |= (1 << 4);
1120 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1126 abuf->written = written;
1131 /* orcc: orcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1134 SEM_FN_NAME (frvbf,orcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1136 #define FLD(f) abuf->fields.sfmt_addcc.f
1137 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1138 int UNUSED written = 0;
1139 IADDR UNUSED pc = abuf->addr;
1140 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1144 tmp_tmp = ORSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
1147 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1148 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1150 if (EQSI (tmp_tmp, 0)) {
1152 UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 7), 4);
1153 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1154 written |= (1 << 4);
1155 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1158 if (LTSI (tmp_tmp, 0)) {
1160 UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 11), 8);
1161 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1162 written |= (1 << 4);
1163 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1167 UQI opval = ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 3);
1168 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1169 written |= (1 << 4);
1170 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1176 abuf->written = written;
1181 /* xorcc: xorcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1184 SEM_FN_NAME (frvbf,xorcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1186 #define FLD(f) abuf->fields.sfmt_addcc.f
1187 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1188 int UNUSED written = 0;
1189 IADDR UNUSED pc = abuf->addr;
1190 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1194 tmp_tmp = XORSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
1197 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1198 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1200 if (EQSI (tmp_tmp, 0)) {
1202 UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 7), 4);
1203 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1204 written |= (1 << 4);
1205 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1208 if (LTSI (tmp_tmp, 0)) {
1210 UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 11), 8);
1211 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1212 written |= (1 << 4);
1213 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1217 UQI opval = ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 3);
1218 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1219 written |= (1 << 4);
1220 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1226 abuf->written = written;
1231 /* sllcc: sllcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1234 SEM_FN_NAME (frvbf,sllcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1236 #define FLD(f) abuf->fields.sfmt_addcc.f
1237 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1238 int UNUSED written = 0;
1239 IADDR UNUSED pc = abuf->addr;
1240 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1246 tmp_shift = ANDSI (GET_H_GR (FLD (f_GRj)), 31);
1247 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)]));
1248 tmp_tmp = SLLSI (GET_H_GR (FLD (f_GRi)), tmp_shift);
1251 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1252 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1254 if (EQSI (tmp_tmp, 0)) {
1255 tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1257 if (LTSI (tmp_tmp, 0)) {
1258 tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1260 tmp_cc = ANDQI (tmp_cc, 3);
1265 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1266 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1274 /* srlcc: srlcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1277 SEM_FN_NAME (frvbf,srlcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1279 #define FLD(f) abuf->fields.sfmt_addcc.f
1280 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1281 int UNUSED written = 0;
1282 IADDR UNUSED pc = abuf->addr;
1283 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1289 tmp_shift = ANDSI (GET_H_GR (FLD (f_GRj)), 31);
1290 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)]));
1291 tmp_tmp = SRLSI (GET_H_GR (FLD (f_GRi)), tmp_shift);
1294 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1295 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1297 if (EQSI (tmp_tmp, 0)) {
1298 tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1300 if (LTSI (tmp_tmp, 0)) {
1301 tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1303 tmp_cc = ANDQI (tmp_cc, 3);
1308 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1309 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1317 /* sracc: sracc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1320 SEM_FN_NAME (frvbf,sracc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1322 #define FLD(f) abuf->fields.sfmt_addcc.f
1323 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1324 int UNUSED written = 0;
1325 IADDR UNUSED pc = abuf->addr;
1326 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1332 tmp_shift = ANDSI (GET_H_GR (FLD (f_GRj)), 31);
1333 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)]));
1334 tmp_tmp = SRASI (GET_H_GR (FLD (f_GRi)), tmp_shift);
1337 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1338 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1340 if (EQSI (tmp_tmp, 0)) {
1341 tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1343 if (LTSI (tmp_tmp, 0)) {
1344 tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1346 tmp_cc = ANDQI (tmp_cc, 3);
1351 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1352 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1360 /* smulcc: smulcc$pack $GRi,$GRj,$GRdoublek,$ICCi_1 */
1363 SEM_FN_NAME (frvbf,smulcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1365 #define FLD(f) abuf->fields.sfmt_smulcc.f
1366 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1367 int UNUSED written = 0;
1368 IADDR UNUSED pc = abuf->addr;
1369 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1374 tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
1375 tmp_tmp = MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (GET_H_GR (FLD (f_GRj))));
1376 if (EQDI (SRLDI (tmp_tmp, 63), 0)) {
1377 tmp_cc = ANDQI (tmp_cc, 7);
1379 tmp_cc = ORQI (tmp_cc, 8);
1381 if (EQBI (EQDI (tmp_tmp, 0), 0)) {
1382 tmp_cc = ANDQI (tmp_cc, 11);
1384 tmp_cc = ORQI (tmp_cc, 4);
1388 sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
1389 TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
1393 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1394 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1402 /* umulcc: umulcc$pack $GRi,$GRj,$GRdoublek,$ICCi_1 */
1405 SEM_FN_NAME (frvbf,umulcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1407 #define FLD(f) abuf->fields.sfmt_smulcc.f
1408 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1409 int UNUSED written = 0;
1410 IADDR UNUSED pc = abuf->addr;
1411 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1416 tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
1417 tmp_tmp = MULDI (ZEXTSIDI (GET_H_GR (FLD (f_GRi))), ZEXTSIDI (GET_H_GR (FLD (f_GRj))));
1418 if (EQDI (SRLDI (tmp_tmp, 63), 0)) {
1419 tmp_cc = ANDQI (tmp_cc, 7);
1421 tmp_cc = ORQI (tmp_cc, 8);
1423 if (EQBI (EQDI (tmp_tmp, 0), 0)) {
1424 tmp_cc = ANDQI (tmp_cc, 11);
1426 tmp_cc = ORQI (tmp_cc, 4);
1430 sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
1431 TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
1435 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1436 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1444 /* caddcc: caddcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1447 SEM_FN_NAME (frvbf,caddcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1449 #define FLD(f) abuf->fields.sfmt_caddcc.f
1450 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1451 int UNUSED written = 0;
1452 IADDR UNUSED pc = abuf->addr;
1453 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1455 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1460 tmp_cc = CPU (h_iccr[((FLD (f_CCi)) & (3))]);
1461 tmp_tmp = ADDOFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0);
1462 if (EQBI (tmp_tmp, 0)) {
1463 tmp_cc = ANDQI (tmp_cc, 13);
1465 tmp_cc = ORQI (tmp_cc, 2);
1467 tmp_tmp = ADDCFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0);
1468 if (EQBI (tmp_tmp, 0)) {
1469 tmp_cc = ANDQI (tmp_cc, 14);
1471 tmp_cc = ORQI (tmp_cc, 1);
1473 tmp_result = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
1474 if (EQSI (tmp_result, 0)) {
1475 tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1477 if (LTSI (tmp_result, 0)) {
1478 tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1480 tmp_cc = ANDQI (tmp_cc, 3);
1484 SI opval = tmp_result;
1485 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1486 written |= (1 << 6);
1487 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1491 sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1492 written |= (1 << 7);
1493 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1498 abuf->written = written;
1503 /* csubcc: csubcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1506 SEM_FN_NAME (frvbf,csubcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1508 #define FLD(f) abuf->fields.sfmt_caddcc.f
1509 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1510 int UNUSED written = 0;
1511 IADDR UNUSED pc = abuf->addr;
1512 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1514 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1519 tmp_cc = CPU (h_iccr[((FLD (f_CCi)) & (3))]);
1520 tmp_tmp = SUBOFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0);
1521 if (EQBI (tmp_tmp, 0)) {
1522 tmp_cc = ANDQI (tmp_cc, 13);
1524 tmp_cc = ORQI (tmp_cc, 2);
1526 tmp_tmp = SUBCFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0);
1527 if (EQBI (tmp_tmp, 0)) {
1528 tmp_cc = ANDQI (tmp_cc, 14);
1530 tmp_cc = ORQI (tmp_cc, 1);
1532 tmp_result = SUBSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
1533 if (EQSI (tmp_result, 0)) {
1534 tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1536 if (LTSI (tmp_result, 0)) {
1537 tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1539 tmp_cc = ANDQI (tmp_cc, 3);
1543 SI opval = tmp_result;
1544 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1545 written |= (1 << 6);
1546 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1550 sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1551 written |= (1 << 7);
1552 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1557 abuf->written = written;
1562 /* csmulcc: csmulcc$pack $GRi,$GRj,$GRdoublek,$CCi,$cond */
1565 SEM_FN_NAME (frvbf,csmulcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1567 #define FLD(f) abuf->fields.sfmt_csmulcc.f
1568 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1569 int UNUSED written = 0;
1570 IADDR UNUSED pc = abuf->addr;
1571 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1573 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1577 tmp_cc = CPU (h_iccr[((FLD (f_CCi)) & (3))]);
1578 tmp_tmp = MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (GET_H_GR (FLD (f_GRj))));
1579 if (EQDI (SRLDI (tmp_tmp, 63), 0)) {
1580 tmp_cc = ANDQI (tmp_cc, 7);
1582 tmp_cc = ORQI (tmp_cc, 8);
1584 if (EQBI (EQDI (tmp_tmp, 0), 0)) {
1585 tmp_cc = ANDQI (tmp_cc, 11);
1587 tmp_cc = ORQI (tmp_cc, 4);
1591 sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
1592 written |= (1 << 6);
1593 TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
1597 sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1598 written |= (1 << 7);
1599 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1604 abuf->written = written;
1609 /* candcc: candcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1612 SEM_FN_NAME (frvbf,candcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1614 #define FLD(f) abuf->fields.sfmt_caddcc.f
1615 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1616 int UNUSED written = 0;
1617 IADDR UNUSED pc = abuf->addr;
1618 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1620 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1623 tmp_tmp = ANDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
1626 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1627 written |= (1 << 6);
1628 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1630 if (EQSI (tmp_tmp, 0)) {
1632 UQI opval = ORQI (ANDQI (CPU (h_iccr[((FLD (f_CCi)) & (3))]), 7), 4);
1633 sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1634 written |= (1 << 7);
1635 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1638 if (LTSI (tmp_tmp, 0)) {
1640 UQI opval = ORQI (ANDQI (CPU (h_iccr[((FLD (f_CCi)) & (3))]), 11), 8);
1641 sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1642 written |= (1 << 7);
1643 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1647 UQI opval = ANDQI (CPU (h_iccr[((FLD (f_CCi)) & (3))]), 3);
1648 sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1649 written |= (1 << 7);
1650 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1657 abuf->written = written;
1662 /* corcc: corcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1665 SEM_FN_NAME (frvbf,corcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1667 #define FLD(f) abuf->fields.sfmt_caddcc.f
1668 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1669 int UNUSED written = 0;
1670 IADDR UNUSED pc = abuf->addr;
1671 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1673 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1676 tmp_tmp = ORSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
1679 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1680 written |= (1 << 6);
1681 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1683 if (EQSI (tmp_tmp, 0)) {
1685 UQI opval = ORQI (ANDQI (CPU (h_iccr[((FLD (f_CCi)) & (3))]), 7), 4);
1686 sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1687 written |= (1 << 7);
1688 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1691 if (LTSI (tmp_tmp, 0)) {
1693 UQI opval = ORQI (ANDQI (CPU (h_iccr[((FLD (f_CCi)) & (3))]), 11), 8);
1694 sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1695 written |= (1 << 7);
1696 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1700 UQI opval = ANDQI (CPU (h_iccr[((FLD (f_CCi)) & (3))]), 3);
1701 sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1702 written |= (1 << 7);
1703 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1710 abuf->written = written;
1715 /* cxorcc: cxorcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1718 SEM_FN_NAME (frvbf,cxorcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1720 #define FLD(f) abuf->fields.sfmt_caddcc.f
1721 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1722 int UNUSED written = 0;
1723 IADDR UNUSED pc = abuf->addr;
1724 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1726 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1729 tmp_tmp = XORSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
1732 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1733 written |= (1 << 6);
1734 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1736 if (EQSI (tmp_tmp, 0)) {
1738 UQI opval = ORQI (ANDQI (CPU (h_iccr[((FLD (f_CCi)) & (3))]), 7), 4);
1739 sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1740 written |= (1 << 7);
1741 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1744 if (LTSI (tmp_tmp, 0)) {
1746 UQI opval = ORQI (ANDQI (CPU (h_iccr[((FLD (f_CCi)) & (3))]), 11), 8);
1747 sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1748 written |= (1 << 7);
1749 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1753 UQI opval = ANDQI (CPU (h_iccr[((FLD (f_CCi)) & (3))]), 3);
1754 sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1755 written |= (1 << 7);
1756 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1763 abuf->written = written;
1768 /* csllcc: csllcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1771 SEM_FN_NAME (frvbf,csllcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1773 #define FLD(f) abuf->fields.sfmt_caddcc.f
1774 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1775 int UNUSED written = 0;
1776 IADDR UNUSED pc = abuf->addr;
1777 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1779 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1784 tmp_shift = ANDSI (GET_H_GR (FLD (f_GRj)), 31);
1785 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))]));
1786 tmp_tmp = SLLSI (GET_H_GR (FLD (f_GRi)), tmp_shift);
1789 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1790 written |= (1 << 6);
1791 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1793 if (EQSI (tmp_tmp, 0)) {
1794 tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1796 if (LTSI (tmp_tmp, 0)) {
1797 tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1799 tmp_cc = ANDQI (tmp_cc, 3);
1804 sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1805 written |= (1 << 7);
1806 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1811 abuf->written = written;
1816 /* csrlcc: csrlcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1819 SEM_FN_NAME (frvbf,csrlcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1821 #define FLD(f) abuf->fields.sfmt_caddcc.f
1822 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1823 int UNUSED written = 0;
1824 IADDR UNUSED pc = abuf->addr;
1825 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1827 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1832 tmp_shift = ANDSI (GET_H_GR (FLD (f_GRj)), 31);
1833 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))]));
1834 tmp_tmp = SRLSI (GET_H_GR (FLD (f_GRi)), tmp_shift);
1837 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1838 written |= (1 << 6);
1839 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1841 if (EQSI (tmp_tmp, 0)) {
1842 tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1844 if (LTSI (tmp_tmp, 0)) {
1845 tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1847 tmp_cc = ANDQI (tmp_cc, 3);
1852 sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1853 written |= (1 << 7);
1854 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1859 abuf->written = written;
1864 /* csracc: csracc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1867 SEM_FN_NAME (frvbf,csracc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1869 #define FLD(f) abuf->fields.sfmt_caddcc.f
1870 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1871 int UNUSED written = 0;
1872 IADDR UNUSED pc = abuf->addr;
1873 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1875 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1880 tmp_shift = ANDSI (GET_H_GR (FLD (f_GRj)), 31);
1881 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))]));
1882 tmp_tmp = SRASI (GET_H_GR (FLD (f_GRi)), tmp_shift);
1885 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1886 written |= (1 << 6);
1887 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1889 if (EQSI (tmp_tmp, 0)) {
1890 tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1892 if (LTSI (tmp_tmp, 0)) {
1893 tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1895 tmp_cc = ANDQI (tmp_cc, 3);
1900 sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1901 written |= (1 << 7);
1902 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1907 abuf->written = written;
1912 /* addx: addx$pack $GRi,$GRj,$GRk,$ICCi_1 */
1915 SEM_FN_NAME (frvbf,addx) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1917 #define FLD(f) abuf->fields.sfmt_addcc.f
1918 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1919 int UNUSED written = 0;
1920 IADDR UNUSED pc = abuf->addr;
1921 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1924 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)));
1925 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1926 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1933 /* subx: subx$pack $GRi,$GRj,$GRk,$ICCi_1 */
1936 SEM_FN_NAME (frvbf,subx) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1938 #define FLD(f) abuf->fields.sfmt_addcc.f
1939 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1940 int UNUSED written = 0;
1941 IADDR UNUSED pc = abuf->addr;
1942 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1945 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)));
1946 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1947 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1954 /* addxcc: addxcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1957 SEM_FN_NAME (frvbf,addxcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1959 #define FLD(f) abuf->fields.sfmt_addcc.f
1960 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1961 int UNUSED written = 0;
1962 IADDR UNUSED pc = abuf->addr;
1963 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1968 tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
1969 tmp_tmp = ADDCSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), TRUNCQIBI (ANDQI (tmp_cc, 1)));
1970 if (EQSI (ADDOFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), TRUNCQIBI (ANDQI (tmp_cc, 1))), 0)) {
1971 tmp_cc = ANDQI (tmp_cc, 13);
1973 tmp_cc = ORQI (tmp_cc, 2);
1975 if (EQSI (ADDCFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), TRUNCQIBI (ANDQI (tmp_cc, 1))), 0)) {
1976 tmp_cc = ANDQI (tmp_cc, 14);
1978 tmp_cc = ORQI (tmp_cc, 1);
1980 if (EQSI (tmp_tmp, 0)) {
1981 tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1983 if (LTSI (tmp_tmp, 0)) {
1984 tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1986 tmp_cc = ANDQI (tmp_cc, 3);
1991 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1992 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1996 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1997 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2005 /* subxcc: subxcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
2008 SEM_FN_NAME (frvbf,subxcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2010 #define FLD(f) abuf->fields.sfmt_addcc.f
2011 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2012 int UNUSED written = 0;
2013 IADDR UNUSED pc = abuf->addr;
2014 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2019 tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
2020 tmp_tmp = SUBCSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), TRUNCQIBI (ANDQI (tmp_cc, 1)));
2021 if (EQSI (SUBOFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), TRUNCQIBI (ANDQI (tmp_cc, 1))), 0)) {
2022 tmp_cc = ANDQI (tmp_cc, 13);
2024 tmp_cc = ORQI (tmp_cc, 2);
2026 if (EQSI (SUBCFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), TRUNCQIBI (ANDQI (tmp_cc, 1))), 0)) {
2027 tmp_cc = ANDQI (tmp_cc, 14);
2029 tmp_cc = ORQI (tmp_cc, 1);
2031 if (EQSI (tmp_tmp, 0)) {
2032 tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
2034 if (LTSI (tmp_tmp, 0)) {
2035 tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
2037 tmp_cc = ANDQI (tmp_cc, 3);
2042 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2043 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2047 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2048 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2056 /* addss: addss$pack $GRi,$GRj,$GRk */
2059 SEM_FN_NAME (frvbf,addss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2061 #define FLD(f) abuf->fields.sfmt_addcc.f
2062 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2063 int UNUSED written = 0;
2064 IADDR UNUSED pc = abuf->addr;
2065 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2069 SI opval = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
2070 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2071 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2073 if (ADDOFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0)) {
2075 SI opval = (GTSI (GET_H_GR (FLD (f_GRi)), 0)) ? (2147483647) : (LTSI (GET_H_GR (FLD (f_GRi)), 0)) ? (0x80000000) : (0);
2076 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2077 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2086 /* subss: subss$pack $GRi,$GRj,$GRk */
2089 SEM_FN_NAME (frvbf,subss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2091 #define FLD(f) abuf->fields.sfmt_addcc.f
2092 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2093 int UNUSED written = 0;
2094 IADDR UNUSED pc = abuf->addr;
2095 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2099 SI opval = SUBSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
2100 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2101 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2103 if (SUBOFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0)) {
2105 SI opval = (GTSI (GET_H_GR (FLD (f_GRi)), 0)) ? (2147483647) : (LTSI (GET_H_GR (FLD (f_GRi)), 0)) ? (0x80000000) : (0);
2106 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2107 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2116 /* addi: addi$pack $GRi,$s12,$GRk */
2119 SEM_FN_NAME (frvbf,addi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2121 #define FLD(f) abuf->fields.sfmt_swapi.f
2122 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2123 int UNUSED written = 0;
2124 IADDR UNUSED pc = abuf->addr;
2125 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2128 SI opval = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
2129 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2130 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2137 /* subi: subi$pack $GRi,$s12,$GRk */
2140 SEM_FN_NAME (frvbf,subi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2142 #define FLD(f) abuf->fields.sfmt_swapi.f
2143 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2144 int UNUSED written = 0;
2145 IADDR UNUSED pc = abuf->addr;
2146 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2149 SI opval = SUBSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
2150 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2151 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2158 /* andi: andi$pack $GRi,$s12,$GRk */
2161 SEM_FN_NAME (frvbf,andi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2163 #define FLD(f) abuf->fields.sfmt_swapi.f
2164 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2165 int UNUSED written = 0;
2166 IADDR UNUSED pc = abuf->addr;
2167 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2170 SI opval = ANDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
2171 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2172 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2179 /* ori: ori$pack $GRi,$s12,$GRk */
2182 SEM_FN_NAME (frvbf,ori) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2184 #define FLD(f) abuf->fields.sfmt_swapi.f
2185 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2186 int UNUSED written = 0;
2187 IADDR UNUSED pc = abuf->addr;
2188 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2191 SI opval = ORSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
2192 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2193 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2200 /* xori: xori$pack $GRi,$s12,$GRk */
2203 SEM_FN_NAME (frvbf,xori) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2205 #define FLD(f) abuf->fields.sfmt_swapi.f
2206 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2207 int UNUSED written = 0;
2208 IADDR UNUSED pc = abuf->addr;
2209 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2212 SI opval = XORSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
2213 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2214 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2221 /* sdivi: sdivi$pack $GRi,$s12,$GRk */
2224 SEM_FN_NAME (frvbf,sdivi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2226 #define FLD(f) abuf->fields.sfmt_swapi.f
2227 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2228 int UNUSED written = 0;
2229 IADDR UNUSED pc = abuf->addr;
2230 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2233 frvbf_signed_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), FLD (f_d12), FLD (f_GRk), 0);
2241 /* nsdivi: nsdivi$pack $GRi,$s12,$GRk */
2244 SEM_FN_NAME (frvbf,nsdivi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2246 #define FLD(f) abuf->fields.sfmt_swapi.f
2247 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2248 int UNUSED written = 0;
2249 IADDR UNUSED pc = abuf->addr;
2250 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2253 frvbf_signed_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), FLD (f_d12), FLD (f_GRk), 1);
2261 /* udivi: udivi$pack $GRi,$s12,$GRk */
2264 SEM_FN_NAME (frvbf,udivi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2266 #define FLD(f) abuf->fields.sfmt_swapi.f
2267 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2268 int UNUSED written = 0;
2269 IADDR UNUSED pc = abuf->addr;
2270 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2273 frvbf_unsigned_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), FLD (f_d12), FLD (f_GRk), 0);
2281 /* nudivi: nudivi$pack $GRi,$s12,$GRk */
2284 SEM_FN_NAME (frvbf,nudivi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2286 #define FLD(f) abuf->fields.sfmt_swapi.f
2287 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2288 int UNUSED written = 0;
2289 IADDR UNUSED pc = abuf->addr;
2290 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2293 frvbf_unsigned_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), FLD (f_d12), FLD (f_GRk), 1);
2301 /* smuli: smuli$pack $GRi,$s12,$GRdoublek */
2304 SEM_FN_NAME (frvbf,smuli) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2306 #define FLD(f) abuf->fields.sfmt_smuli.f
2307 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2308 int UNUSED written = 0;
2309 IADDR UNUSED pc = abuf->addr;
2310 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2313 DI opval = MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (FLD (f_d12)));
2314 sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
2315 TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
2322 /* umuli: umuli$pack $GRi,$s12,$GRdoublek */
2325 SEM_FN_NAME (frvbf,umuli) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2327 #define FLD(f) abuf->fields.sfmt_smuli.f
2328 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2329 int UNUSED written = 0;
2330 IADDR UNUSED pc = abuf->addr;
2331 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2334 DI opval = MULDI (ZEXTSIDI (GET_H_GR (FLD (f_GRi))), ZEXTSIDI (FLD (f_d12)));
2335 sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
2336 TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
2343 /* slli: slli$pack $GRi,$s12,$GRk */
2346 SEM_FN_NAME (frvbf,slli) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2348 #define FLD(f) abuf->fields.sfmt_swapi.f
2349 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2350 int UNUSED written = 0;
2351 IADDR UNUSED pc = abuf->addr;
2352 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2355 SI opval = SLLSI (GET_H_GR (FLD (f_GRi)), ANDSI (FLD (f_d12), 31));
2356 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2357 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2364 /* srli: srli$pack $GRi,$s12,$GRk */
2367 SEM_FN_NAME (frvbf,srli) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2369 #define FLD(f) abuf->fields.sfmt_swapi.f
2370 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2371 int UNUSED written = 0;
2372 IADDR UNUSED pc = abuf->addr;
2373 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2376 SI opval = SRLSI (GET_H_GR (FLD (f_GRi)), ANDSI (FLD (f_d12), 31));
2377 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2378 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2385 /* srai: srai$pack $GRi,$s12,$GRk */
2388 SEM_FN_NAME (frvbf,srai) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2390 #define FLD(f) abuf->fields.sfmt_swapi.f
2391 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2392 int UNUSED written = 0;
2393 IADDR UNUSED pc = abuf->addr;
2394 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2397 SI opval = SRASI (GET_H_GR (FLD (f_GRi)), ANDSI (FLD (f_d12), 31));
2398 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2399 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2406 /* scani: scani$pack $GRi,$s12,$GRk */
2409 SEM_FN_NAME (frvbf,scani) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2411 #define FLD(f) abuf->fields.sfmt_swapi.f
2412 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2413 int UNUSED written = 0;
2414 IADDR UNUSED pc = abuf->addr;
2415 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2420 tmp_tmp1 = GET_H_GR (FLD (f_GRi));
2421 tmp_tmp2 = SRASI (FLD (f_d12), 1);
2423 SI opval = frvbf_scan_result (current_cpu, XORSI (tmp_tmp1, tmp_tmp2));
2424 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2425 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2433 /* addicc: addicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2436 SEM_FN_NAME (frvbf,addicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2438 #define FLD(f) abuf->fields.sfmt_addicc.f
2439 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2440 int UNUSED written = 0;
2441 IADDR UNUSED pc = abuf->addr;
2442 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2448 tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
2449 tmp_tmp = ADDOFSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), 0);
2450 if (EQBI (tmp_tmp, 0)) {
2451 tmp_cc = ANDQI (tmp_cc, 13);
2453 tmp_cc = ORQI (tmp_cc, 2);
2455 tmp_tmp = ADDCFSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), 0);
2456 if (EQBI (tmp_tmp, 0)) {
2457 tmp_cc = ANDQI (tmp_cc, 14);
2459 tmp_cc = ORQI (tmp_cc, 1);
2461 tmp_result = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10));
2462 if (EQSI (tmp_result, 0)) {
2463 tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
2465 if (LTSI (tmp_result, 0)) {
2466 tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
2468 tmp_cc = ANDQI (tmp_cc, 3);
2472 SI opval = tmp_result;
2473 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2474 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2478 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2479 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2487 /* subicc: subicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2490 SEM_FN_NAME (frvbf,subicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2492 #define FLD(f) abuf->fields.sfmt_addicc.f
2493 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2494 int UNUSED written = 0;
2495 IADDR UNUSED pc = abuf->addr;
2496 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2502 tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
2503 tmp_tmp = SUBOFSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), 0);
2504 if (EQBI (tmp_tmp, 0)) {
2505 tmp_cc = ANDQI (tmp_cc, 13);
2507 tmp_cc = ORQI (tmp_cc, 2);
2509 tmp_tmp = SUBCFSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), 0);
2510 if (EQBI (tmp_tmp, 0)) {
2511 tmp_cc = ANDQI (tmp_cc, 14);
2513 tmp_cc = ORQI (tmp_cc, 1);
2515 tmp_result = SUBSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10));
2516 if (EQSI (tmp_result, 0)) {
2517 tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
2519 if (LTSI (tmp_result, 0)) {
2520 tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
2522 tmp_cc = ANDQI (tmp_cc, 3);
2526 SI opval = tmp_result;
2527 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2528 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2532 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2533 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2541 /* andicc: andicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2544 SEM_FN_NAME (frvbf,andicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2546 #define FLD(f) abuf->fields.sfmt_addicc.f
2547 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2548 int UNUSED written = 0;
2549 IADDR UNUSED pc = abuf->addr;
2550 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2554 tmp_tmp = ANDSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10));
2557 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2558 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2560 if (EQSI (tmp_tmp, 0)) {
2562 UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 7), 4);
2563 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2564 written |= (1 << 4);
2565 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2568 if (LTSI (tmp_tmp, 0)) {
2570 UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 11), 8);
2571 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2572 written |= (1 << 4);
2573 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2577 UQI opval = ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 3);
2578 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2579 written |= (1 << 4);
2580 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2586 abuf->written = written;
2591 /* oricc: oricc$pack $GRi,$s10,$GRk,$ICCi_1 */
2594 SEM_FN_NAME (frvbf,oricc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2596 #define FLD(f) abuf->fields.sfmt_addicc.f
2597 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2598 int UNUSED written = 0;
2599 IADDR UNUSED pc = abuf->addr;
2600 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2604 tmp_tmp = ORSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10));
2607 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2608 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2610 if (EQSI (tmp_tmp, 0)) {
2612 UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 7), 4);
2613 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2614 written |= (1 << 4);
2615 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2618 if (LTSI (tmp_tmp, 0)) {
2620 UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 11), 8);
2621 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2622 written |= (1 << 4);
2623 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2627 UQI opval = ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 3);
2628 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2629 written |= (1 << 4);
2630 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2636 abuf->written = written;
2641 /* xoricc: xoricc$pack $GRi,$s10,$GRk,$ICCi_1 */
2644 SEM_FN_NAME (frvbf,xoricc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2646 #define FLD(f) abuf->fields.sfmt_addicc.f
2647 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2648 int UNUSED written = 0;
2649 IADDR UNUSED pc = abuf->addr;
2650 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2654 tmp_tmp = XORSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10));
2657 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2658 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2660 if (EQSI (tmp_tmp, 0)) {
2662 UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 7), 4);
2663 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2664 written |= (1 << 4);
2665 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2668 if (LTSI (tmp_tmp, 0)) {
2670 UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 11), 8);
2671 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2672 written |= (1 << 4);
2673 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2677 UQI opval = ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 3);
2678 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2679 written |= (1 << 4);
2680 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2686 abuf->written = written;
2691 /* smulicc: smulicc$pack $GRi,$s10,$GRdoublek,$ICCi_1 */
2694 SEM_FN_NAME (frvbf,smulicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2696 #define FLD(f) abuf->fields.sfmt_smulicc.f
2697 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2698 int UNUSED written = 0;
2699 IADDR UNUSED pc = abuf->addr;
2700 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2705 tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
2706 tmp_tmp = MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (FLD (f_s10)));
2707 if (EQDI (SRLDI (tmp_tmp, 63), 0)) {
2708 tmp_cc = ANDQI (tmp_cc, 7);
2710 tmp_cc = ORQI (tmp_cc, 8);
2712 if (EQBI (EQDI (tmp_tmp, 0), 0)) {
2713 tmp_cc = ANDQI (tmp_cc, 11);
2715 tmp_cc = ORQI (tmp_cc, 4);
2719 sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
2720 TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
2724 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2725 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2733 /* umulicc: umulicc$pack $GRi,$s10,$GRdoublek,$ICCi_1 */
2736 SEM_FN_NAME (frvbf,umulicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2738 #define FLD(f) abuf->fields.sfmt_smulicc.f
2739 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2740 int UNUSED written = 0;
2741 IADDR UNUSED pc = abuf->addr;
2742 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2747 tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
2748 tmp_tmp = MULDI (ZEXTSIDI (GET_H_GR (FLD (f_GRi))), ZEXTSIDI (FLD (f_s10)));
2749 if (EQDI (SRLDI (tmp_tmp, 63), 0)) {
2750 tmp_cc = ANDQI (tmp_cc, 7);
2752 tmp_cc = ORQI (tmp_cc, 8);
2754 if (EQBI (EQDI (tmp_tmp, 0), 0)) {
2755 tmp_cc = ANDQI (tmp_cc, 11);
2757 tmp_cc = ORQI (tmp_cc, 4);
2761 sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
2762 TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
2766 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2767 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2775 /* sllicc: sllicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2778 SEM_FN_NAME (frvbf,sllicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2780 #define FLD(f) abuf->fields.sfmt_addicc.f
2781 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2782 int UNUSED written = 0;
2783 IADDR UNUSED pc = abuf->addr;
2784 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2790 tmp_shift = ANDSI (FLD (f_s10), 31);
2791 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)]));
2792 tmp_tmp = SLLSI (GET_H_GR (FLD (f_GRi)), tmp_shift);
2795 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2796 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2798 if (EQSI (tmp_tmp, 0)) {
2799 tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
2801 if (LTSI (tmp_tmp, 0)) {
2802 tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
2804 tmp_cc = ANDQI (tmp_cc, 3);
2809 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2810 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2818 /* srlicc: srlicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2821 SEM_FN_NAME (frvbf,srlicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2823 #define FLD(f) abuf->fields.sfmt_addicc.f
2824 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2825 int UNUSED written = 0;
2826 IADDR UNUSED pc = abuf->addr;
2827 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2833 tmp_shift = ANDSI (FLD (f_s10), 31);
2834 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)]));
2835 tmp_tmp = SRLSI (GET_H_GR (FLD (f_GRi)), tmp_shift);
2838 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2839 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2841 if (EQSI (tmp_tmp, 0)) {
2842 tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
2844 if (LTSI (tmp_tmp, 0)) {
2845 tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
2847 tmp_cc = ANDQI (tmp_cc, 3);
2852 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2853 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2861 /* sraicc: sraicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2864 SEM_FN_NAME (frvbf,sraicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2866 #define FLD(f) abuf->fields.sfmt_addicc.f
2867 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2868 int UNUSED written = 0;
2869 IADDR UNUSED pc = abuf->addr;
2870 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2876 tmp_shift = ANDSI (FLD (f_s10), 31);
2877 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)]));
2878 tmp_tmp = SRASI (GET_H_GR (FLD (f_GRi)), tmp_shift);
2881 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2882 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2884 if (EQSI (tmp_tmp, 0)) {
2885 tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
2887 if (LTSI (tmp_tmp, 0)) {
2888 tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
2890 tmp_cc = ANDQI (tmp_cc, 3);
2895 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2896 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2904 /* addxi: addxi$pack $GRi,$s10,$GRk,$ICCi_1 */
2907 SEM_FN_NAME (frvbf,addxi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2909 #define FLD(f) abuf->fields.sfmt_addicc.f
2910 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2911 int UNUSED written = 0;
2912 IADDR UNUSED pc = abuf->addr;
2913 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2916 SI opval = ADDCSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 1)));
2917 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2918 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2925 /* subxi: subxi$pack $GRi,$s10,$GRk,$ICCi_1 */
2928 SEM_FN_NAME (frvbf,subxi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2930 #define FLD(f) abuf->fields.sfmt_addicc.f
2931 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2932 int UNUSED written = 0;
2933 IADDR UNUSED pc = abuf->addr;
2934 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2937 SI opval = SUBCSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 1)));
2938 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2939 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2946 /* addxicc: addxicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2949 SEM_FN_NAME (frvbf,addxicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2951 #define FLD(f) abuf->fields.sfmt_addicc.f
2952 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2953 int UNUSED written = 0;
2954 IADDR UNUSED pc = abuf->addr;
2955 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2960 tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
2961 tmp_tmp = ADDCSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), TRUNCQIBI (ANDQI (tmp_cc, 1)));
2962 if (EQSI (ADDOFSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), TRUNCQIBI (ANDQI (tmp_cc, 1))), 0)) {
2963 tmp_cc = ANDQI (tmp_cc, 13);
2965 tmp_cc = ORQI (tmp_cc, 2);
2967 if (EQSI (ADDCFSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), TRUNCQIBI (ANDQI (tmp_cc, 1))), 0)) {
2968 tmp_cc = ANDQI (tmp_cc, 14);
2970 tmp_cc = ORQI (tmp_cc, 1);
2972 if (EQSI (tmp_tmp, 0)) {
2973 tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
2975 if (LTSI (tmp_tmp, 0)) {
2976 tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
2978 tmp_cc = ANDQI (tmp_cc, 3);
2983 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2984 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2988 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2989 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2997 /* subxicc: subxicc$pack $GRi,$s10,$GRk,$ICCi_1 */
3000 SEM_FN_NAME (frvbf,subxicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3002 #define FLD(f) abuf->fields.sfmt_addicc.f
3003 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3004 int UNUSED written = 0;
3005 IADDR UNUSED pc = abuf->addr;
3006 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3011 tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
3012 tmp_tmp = SUBCSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), TRUNCQIBI (ANDQI (tmp_cc, 1)));
3013 if (EQSI (SUBOFSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), TRUNCQIBI (ANDQI (tmp_cc, 1))), 0)) {
3014 tmp_cc = ANDQI (tmp_cc, 13);
3016 tmp_cc = ORQI (tmp_cc, 2);
3018 if (EQSI (SUBCFSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), TRUNCQIBI (ANDQI (tmp_cc, 1))), 0)) {
3019 tmp_cc = ANDQI (tmp_cc, 14);
3021 tmp_cc = ORQI (tmp_cc, 1);
3023 if (EQSI (tmp_tmp, 0)) {
3024 tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
3026 if (LTSI (tmp_tmp, 0)) {
3027 tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
3029 tmp_cc = ANDQI (tmp_cc, 3);
3034 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3035 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3039 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
3040 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
3048 /* cmpb: cmpb$pack $GRi,$GRj,$ICCi_1 */
3051 SEM_FN_NAME (frvbf,cmpb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3053 #define FLD(f) abuf->fields.sfmt_smulcc.f
3054 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3055 int UNUSED written = 0;
3056 IADDR UNUSED pc = abuf->addr;
3057 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3061 if (EQBI (EQSI (ANDSI (GET_H_GR (FLD (f_GRi)), 0xff000000), ANDSI (GET_H_GR (FLD (f_GRj)), 0xff000000)), 0)) {
3062 tmp_cc = ANDQI (tmp_cc, 7);
3064 tmp_cc = ORQI (tmp_cc, 8);
3066 if (EQBI (EQSI (ANDSI (GET_H_GR (FLD (f_GRi)), 16711680), ANDSI (GET_H_GR (FLD (f_GRj)), 16711680)), 0)) {
3067 tmp_cc = ANDQI (tmp_cc, 11);
3069 tmp_cc = ORQI (tmp_cc, 4);
3071 if (EQBI (EQSI (ANDSI (GET_H_GR (FLD (f_GRi)), 65280), ANDSI (GET_H_GR (FLD (f_GRj)), 65280)), 0)) {
3072 tmp_cc = ANDQI (tmp_cc, 13);
3074 tmp_cc = ORQI (tmp_cc, 2);
3076 if (EQBI (EQSI (ANDSI (GET_H_GR (FLD (f_GRi)), 255), ANDSI (GET_H_GR (FLD (f_GRj)), 255)), 0)) {
3077 tmp_cc = ANDQI (tmp_cc, 14);
3079 tmp_cc = ORQI (tmp_cc, 1);
3083 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
3084 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
3092 /* cmpba: cmpba$pack $GRi,$GRj,$ICCi_1 */
3095 SEM_FN_NAME (frvbf,cmpba) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3097 #define FLD(f) abuf->fields.sfmt_smulcc.f
3098 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3099 int UNUSED written = 0;
3100 IADDR UNUSED pc = abuf->addr;
3101 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3106 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)) {
3107 tmp_cc = ANDQI (tmp_cc, 14);
3109 tmp_cc = ORQI (tmp_cc, 1);
3113 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
3114 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
3122 /* setlo: setlo$pack $ulo16,$GRklo */
3125 SEM_FN_NAME (frvbf,setlo) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3127 #define FLD(f) abuf->fields.sfmt_setlo.f
3128 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3129 int UNUSED written = 0;
3130 IADDR UNUSED pc = abuf->addr;
3131 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3134 UHI opval = FLD (f_u16);
3135 sim_queue_fn_hi_write (current_cpu, frvbf_h_gr_lo_set, FLD (f_GRk), opval);
3136 TRACE_RESULT (current_cpu, abuf, "gr_lo", 'x', opval);
3143 /* sethi: sethi$pack $uhi16,$GRkhi */
3146 SEM_FN_NAME (frvbf,sethi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3148 #define FLD(f) abuf->fields.sfmt_sethi.f
3149 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3150 int UNUSED written = 0;
3151 IADDR UNUSED pc = abuf->addr;
3152 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3155 UHI opval = FLD (f_u16);
3156 sim_queue_fn_hi_write (current_cpu, frvbf_h_gr_hi_set, FLD (f_GRk), opval);
3157 TRACE_RESULT (current_cpu, abuf, "gr_hi", 'x', opval);
3164 /* setlos: setlos$pack $slo16,$GRk */
3167 SEM_FN_NAME (frvbf,setlos) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3169 #define FLD(f) abuf->fields.sfmt_setlos.f
3170 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3171 int UNUSED written = 0;
3172 IADDR UNUSED pc = abuf->addr;
3173 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3176 SI opval = FLD (f_s16);
3177 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3178 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3185 /* ldsb: ldsb$pack @($GRi,$GRj),$GRk */
3188 SEM_FN_NAME (frvbf,ldsb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3190 #define FLD(f) abuf->fields.sfmt_addcc.f
3191 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3192 int UNUSED written = 0;
3193 IADDR UNUSED pc = abuf->addr;
3194 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3197 SI opval = frvbf_read_mem_QI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3198 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3199 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3206 /* ldub: ldub$pack @($GRi,$GRj),$GRk */
3209 SEM_FN_NAME (frvbf,ldub) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3211 #define FLD(f) abuf->fields.sfmt_addcc.f
3212 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3213 int UNUSED written = 0;
3214 IADDR UNUSED pc = abuf->addr;
3215 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3218 SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3219 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3220 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3227 /* ldsh: ldsh$pack @($GRi,$GRj),$GRk */
3230 SEM_FN_NAME (frvbf,ldsh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3232 #define FLD(f) abuf->fields.sfmt_addcc.f
3233 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3234 int UNUSED written = 0;
3235 IADDR UNUSED pc = abuf->addr;
3236 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3239 SI opval = frvbf_read_mem_HI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3240 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3241 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3248 /* lduh: lduh$pack @($GRi,$GRj),$GRk */
3251 SEM_FN_NAME (frvbf,lduh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3253 #define FLD(f) abuf->fields.sfmt_addcc.f
3254 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3255 int UNUSED written = 0;
3256 IADDR UNUSED pc = abuf->addr;
3257 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3260 SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3261 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3262 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3269 /* ld: ld$pack $ldann($GRi,$GRj),$GRk */
3272 SEM_FN_NAME (frvbf,ld) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3274 #define FLD(f) abuf->fields.sfmt_addcc.f
3275 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3276 int UNUSED written = 0;
3277 IADDR UNUSED pc = abuf->addr;
3278 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3281 SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3282 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3283 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3290 /* ldbf: ldbf$pack @($GRi,$GRj),$FRintk */
3293 SEM_FN_NAME (frvbf,ldbf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3295 #define FLD(f) abuf->fields.sfmt_cldbfu.f
3296 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3297 int UNUSED written = 0;
3298 IADDR UNUSED pc = abuf->addr;
3299 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3302 SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3303 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
3304 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
3311 /* ldhf: ldhf$pack @($GRi,$GRj),$FRintk */
3314 SEM_FN_NAME (frvbf,ldhf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3316 #define FLD(f) abuf->fields.sfmt_cldbfu.f
3317 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3318 int UNUSED written = 0;
3319 IADDR UNUSED pc = abuf->addr;
3320 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3323 SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3324 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
3325 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
3332 /* ldf: ldf$pack @($GRi,$GRj),$FRintk */
3335 SEM_FN_NAME (frvbf,ldf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3337 #define FLD(f) abuf->fields.sfmt_cldbfu.f
3338 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3339 int UNUSED written = 0;
3340 IADDR UNUSED pc = abuf->addr;
3341 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3344 SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3345 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
3346 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
3353 /* ldc: ldc$pack @($GRi,$GRj),$CPRk */
3356 SEM_FN_NAME (frvbf,ldc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3358 #define FLD(f) abuf->fields.sfmt_ldcu.f
3359 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3360 int UNUSED written = 0;
3361 IADDR UNUSED pc = abuf->addr;
3362 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3365 SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3366 sim_queue_si_write (current_cpu, & CPU (h_cpr[FLD (f_CPRk)]), opval);
3367 TRACE_RESULT (current_cpu, abuf, "cpr", 'x', opval);
3374 /* nldsb: nldsb$pack @($GRi,$GRj),$GRk */
3377 SEM_FN_NAME (frvbf,nldsb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3379 #define FLD(f) abuf->fields.sfmt_addcc.f
3380 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3381 int UNUSED written = 0;
3382 IADDR UNUSED pc = abuf->addr;
3383 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3387 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 1, 0);
3390 SI opval = frvbf_read_mem_QI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3391 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3392 written |= (1 << 6);
3393 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3398 abuf->written = written;
3403 /* nldub: nldub$pack @($GRi,$GRj),$GRk */
3406 SEM_FN_NAME (frvbf,nldub) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3408 #define FLD(f) abuf->fields.sfmt_addcc.f
3409 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3410 int UNUSED written = 0;
3411 IADDR UNUSED pc = abuf->addr;
3412 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3416 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 0, 0);
3419 SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3420 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3421 written |= (1 << 6);
3422 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3427 abuf->written = written;
3432 /* nldsh: nldsh$pack @($GRi,$GRj),$GRk */
3435 SEM_FN_NAME (frvbf,nldsh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3437 #define FLD(f) abuf->fields.sfmt_addcc.f
3438 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3439 int UNUSED written = 0;
3440 IADDR UNUSED pc = abuf->addr;
3441 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3445 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 3, 0);
3448 SI opval = frvbf_read_mem_HI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3449 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3450 written |= (1 << 6);
3451 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3456 abuf->written = written;
3461 /* nlduh: nlduh$pack @($GRi,$GRj),$GRk */
3464 SEM_FN_NAME (frvbf,nlduh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3466 #define FLD(f) abuf->fields.sfmt_addcc.f
3467 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3468 int UNUSED written = 0;
3469 IADDR UNUSED pc = abuf->addr;
3470 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3474 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 2, 0);
3477 SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3478 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3479 written |= (1 << 6);
3480 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3485 abuf->written = written;
3490 /* nld: nld$pack @($GRi,$GRj),$GRk */
3493 SEM_FN_NAME (frvbf,nld) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3495 #define FLD(f) abuf->fields.sfmt_addcc.f
3496 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3497 int UNUSED written = 0;
3498 IADDR UNUSED pc = abuf->addr;
3499 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3503 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 4, 0);
3506 SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3507 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3508 written |= (1 << 6);
3509 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3514 abuf->written = written;
3519 /* nldbf: nldbf$pack @($GRi,$GRj),$FRintk */
3522 SEM_FN_NAME (frvbf,nldbf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3524 #define FLD(f) abuf->fields.sfmt_cldbfu.f
3525 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3526 int UNUSED written = 0;
3527 IADDR UNUSED pc = abuf->addr;
3528 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3532 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 0, 1);
3535 SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3536 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
3537 written |= (1 << 6);
3538 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
3543 abuf->written = written;
3548 /* nldhf: nldhf$pack @($GRi,$GRj),$FRintk */
3551 SEM_FN_NAME (frvbf,nldhf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3553 #define FLD(f) abuf->fields.sfmt_cldbfu.f
3554 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3555 int UNUSED written = 0;
3556 IADDR UNUSED pc = abuf->addr;
3557 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3561 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 2, 1);
3564 SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3565 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
3566 written |= (1 << 6);
3567 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
3572 abuf->written = written;
3577 /* nldf: nldf$pack @($GRi,$GRj),$FRintk */
3580 SEM_FN_NAME (frvbf,nldf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3582 #define FLD(f) abuf->fields.sfmt_cldbfu.f
3583 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3584 int UNUSED written = 0;
3585 IADDR UNUSED pc = abuf->addr;
3586 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3590 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 4, 1);
3593 SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3594 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
3595 written |= (1 << 6);
3596 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
3601 abuf->written = written;
3606 /* ldd: ldd$pack $lddann($GRi,$GRj),$GRdoublek */
3609 SEM_FN_NAME (frvbf,ldd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3611 #define FLD(f) abuf->fields.sfmt_smulcc.f
3612 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3613 int UNUSED written = 0;
3614 IADDR UNUSED pc = abuf->addr;
3615 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3619 if (NESI (FLD (f_GRk), 0)) {
3621 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3623 DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
3624 sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
3625 written |= (1 << 4);
3626 TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
3632 abuf->written = written;
3637 /* lddf: lddf$pack @($GRi,$GRj),$FRdoublek */
3640 SEM_FN_NAME (frvbf,lddf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3642 #define FLD(f) abuf->fields.sfmt_clddfu.f
3643 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3644 int UNUSED written = 0;
3645 IADDR UNUSED pc = abuf->addr;
3646 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3651 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3653 DF opval = frvbf_read_mem_DF (current_cpu, pc, tmp_address);
3654 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
3655 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
3664 /* lddc: lddc$pack @($GRi,$GRj),$CPRdoublek */
3667 SEM_FN_NAME (frvbf,lddc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3669 #define FLD(f) abuf->fields.sfmt_lddcu.f
3670 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3671 int UNUSED written = 0;
3672 IADDR UNUSED pc = abuf->addr;
3673 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3678 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3680 DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
3681 sim_queue_fn_di_write (current_cpu, frvbf_h_cpr_double_set, FLD (f_CPRk), opval);
3682 TRACE_RESULT (current_cpu, abuf, "cpr_double", 'D', opval);
3691 /* nldd: nldd$pack @($GRi,$GRj),$GRdoublek */
3694 SEM_FN_NAME (frvbf,nldd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3696 #define FLD(f) abuf->fields.sfmt_smulcc.f
3697 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3698 int UNUSED written = 0;
3699 IADDR UNUSED pc = abuf->addr;
3700 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3706 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 5, 0);
3708 if (NESI (FLD (f_GRk), 0)) {
3710 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3712 DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
3713 sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
3714 written |= (1 << 6);
3715 TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
3723 abuf->written = written;
3728 /* nlddf: nlddf$pack @($GRi,$GRj),$FRdoublek */
3731 SEM_FN_NAME (frvbf,nlddf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3733 #define FLD(f) abuf->fields.sfmt_clddfu.f
3734 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3735 int UNUSED written = 0;
3736 IADDR UNUSED pc = abuf->addr;
3737 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3743 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 5, 1);
3746 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3748 DF opval = frvbf_read_mem_DF (current_cpu, pc, tmp_address);
3749 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
3750 written |= (1 << 6);
3751 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
3758 abuf->written = written;
3763 /* ldq: ldq$pack @($GRi,$GRj),$GRk */
3766 SEM_FN_NAME (frvbf,ldq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3768 #define FLD(f) abuf->fields.sfmt_smulcc.f
3769 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3770 int UNUSED written = 0;
3771 IADDR UNUSED pc = abuf->addr;
3772 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3777 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3778 frvbf_load_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
3786 /* ldqf: ldqf$pack @($GRi,$GRj),$FRintk */
3789 SEM_FN_NAME (frvbf,ldqf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3791 #define FLD(f) abuf->fields.sfmt_cstdfu.f
3792 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3793 int UNUSED written = 0;
3794 IADDR UNUSED pc = abuf->addr;
3795 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3800 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3801 frvbf_load_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
3809 /* ldqc: ldqc$pack @($GRi,$GRj),$CPRk */
3812 SEM_FN_NAME (frvbf,ldqc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3814 #define FLD(f) abuf->fields.sfmt_stdcu.f
3815 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3816 int UNUSED written = 0;
3817 IADDR UNUSED pc = abuf->addr;
3818 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3823 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3824 frvbf_load_quad_CPR (current_cpu, pc, tmp_address, FLD (f_CPRk));
3832 /* nldq: nldq$pack @($GRi,$GRj),$GRk */
3835 SEM_FN_NAME (frvbf,nldq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3837 #define FLD(f) abuf->fields.sfmt_smulcc.f
3838 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3839 int UNUSED written = 0;
3840 IADDR UNUSED pc = abuf->addr;
3841 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3847 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 6, 0);
3850 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3851 frvbf_load_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
3861 /* nldqf: nldqf$pack @($GRi,$GRj),$FRintk */
3864 SEM_FN_NAME (frvbf,nldqf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3866 #define FLD(f) abuf->fields.sfmt_cstdfu.f
3867 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3868 int UNUSED written = 0;
3869 IADDR UNUSED pc = abuf->addr;
3870 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3876 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 6, 1);
3879 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3880 frvbf_load_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
3890 /* ldsbu: ldsbu$pack @($GRi,$GRj),$GRk */
3893 SEM_FN_NAME (frvbf,ldsbu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3895 #define FLD(f) abuf->fields.sfmt_cldsbu.f
3896 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3897 int UNUSED written = 0;
3898 IADDR UNUSED pc = abuf->addr;
3899 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3903 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3905 SI opval = frvbf_read_mem_QI (current_cpu, pc, tmp_address);
3906 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3907 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3909 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
3912 SI opval = tmp_address;
3913 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
3914 written |= (1 << 5);
3915 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3917 frvbf_force_update (current_cpu);
3922 abuf->written = written;
3927 /* ldubu: ldubu$pack @($GRi,$GRj),$GRk */
3930 SEM_FN_NAME (frvbf,ldubu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3932 #define FLD(f) abuf->fields.sfmt_cldsbu.f
3933 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3934 int UNUSED written = 0;
3935 IADDR UNUSED pc = abuf->addr;
3936 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3940 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3942 SI opval = frvbf_read_mem_UQI (current_cpu, pc, tmp_address);
3943 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3944 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3946 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
3949 SI opval = tmp_address;
3950 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
3951 written |= (1 << 5);
3952 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3954 frvbf_force_update (current_cpu);
3959 abuf->written = written;
3964 /* ldshu: ldshu$pack @($GRi,$GRj),$GRk */
3967 SEM_FN_NAME (frvbf,ldshu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3969 #define FLD(f) abuf->fields.sfmt_cldsbu.f
3970 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3971 int UNUSED written = 0;
3972 IADDR UNUSED pc = abuf->addr;
3973 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3977 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3979 SI opval = frvbf_read_mem_HI (current_cpu, pc, tmp_address);
3980 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3981 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3983 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
3986 SI opval = tmp_address;
3987 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
3988 written |= (1 << 5);
3989 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3991 frvbf_force_update (current_cpu);
3996 abuf->written = written;
4001 /* lduhu: lduhu$pack @($GRi,$GRj),$GRk */
4004 SEM_FN_NAME (frvbf,lduhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4006 #define FLD(f) abuf->fields.sfmt_cldsbu.f
4007 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4008 int UNUSED written = 0;
4009 IADDR UNUSED pc = abuf->addr;
4010 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4014 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4016 SI opval = frvbf_read_mem_UHI (current_cpu, pc, tmp_address);
4017 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4018 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4020 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4023 SI opval = tmp_address;
4024 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4025 written |= (1 << 5);
4026 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4028 frvbf_force_update (current_cpu);
4033 abuf->written = written;
4038 /* ldu: ldu$pack @($GRi,$GRj),$GRk */
4041 SEM_FN_NAME (frvbf,ldu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4043 #define FLD(f) abuf->fields.sfmt_cldsbu.f
4044 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4045 int UNUSED written = 0;
4046 IADDR UNUSED pc = abuf->addr;
4047 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4051 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4053 SI opval = frvbf_read_mem_SI (current_cpu, pc, tmp_address);
4054 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4055 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4057 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4060 SI opval = tmp_address;
4061 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4062 written |= (1 << 5);
4063 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4065 frvbf_force_update (current_cpu);
4070 abuf->written = written;
4075 /* nldsbu: nldsbu$pack @($GRi,$GRj),$GRk */
4078 SEM_FN_NAME (frvbf,nldsbu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4080 #define FLD(f) abuf->fields.sfmt_cldsbu.f
4081 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4082 int UNUSED written = 0;
4083 IADDR UNUSED pc = abuf->addr;
4084 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4088 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 1, 0);
4092 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4094 SI opval = frvbf_read_mem_QI (current_cpu, pc, tmp_address);
4095 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4096 written |= (1 << 7);
4097 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4099 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4102 SI opval = tmp_address;
4103 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4104 written |= (1 << 6);
4105 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4107 frvbf_force_update (current_cpu);
4114 abuf->written = written;
4119 /* nldubu: nldubu$pack @($GRi,$GRj),$GRk */
4122 SEM_FN_NAME (frvbf,nldubu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4124 #define FLD(f) abuf->fields.sfmt_cldsbu.f
4125 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4126 int UNUSED written = 0;
4127 IADDR UNUSED pc = abuf->addr;
4128 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4132 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 0, 0);
4136 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4138 SI opval = frvbf_read_mem_UQI (current_cpu, pc, tmp_address);
4139 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4140 written |= (1 << 7);
4141 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4143 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4146 SI opval = tmp_address;
4147 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4148 written |= (1 << 6);
4149 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4151 frvbf_force_update (current_cpu);
4158 abuf->written = written;
4163 /* nldshu: nldshu$pack @($GRi,$GRj),$GRk */
4166 SEM_FN_NAME (frvbf,nldshu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4168 #define FLD(f) abuf->fields.sfmt_cldsbu.f
4169 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4170 int UNUSED written = 0;
4171 IADDR UNUSED pc = abuf->addr;
4172 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4176 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 3, 0);
4180 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4182 SI opval = frvbf_read_mem_HI (current_cpu, pc, tmp_address);
4183 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4184 written |= (1 << 7);
4185 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4187 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4190 SI opval = tmp_address;
4191 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4192 written |= (1 << 6);
4193 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4195 frvbf_force_update (current_cpu);
4202 abuf->written = written;
4207 /* nlduhu: nlduhu$pack @($GRi,$GRj),$GRk */
4210 SEM_FN_NAME (frvbf,nlduhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4212 #define FLD(f) abuf->fields.sfmt_cldsbu.f
4213 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4214 int UNUSED written = 0;
4215 IADDR UNUSED pc = abuf->addr;
4216 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4220 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 2, 0);
4224 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4226 SI opval = frvbf_read_mem_UHI (current_cpu, pc, tmp_address);
4227 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4228 written |= (1 << 7);
4229 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4231 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4234 SI opval = tmp_address;
4235 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4236 written |= (1 << 6);
4237 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4239 frvbf_force_update (current_cpu);
4246 abuf->written = written;
4251 /* nldu: nldu$pack @($GRi,$GRj),$GRk */
4254 SEM_FN_NAME (frvbf,nldu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4256 #define FLD(f) abuf->fields.sfmt_cldsbu.f
4257 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4258 int UNUSED written = 0;
4259 IADDR UNUSED pc = abuf->addr;
4260 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4264 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 4, 0);
4268 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4270 SI opval = frvbf_read_mem_SI (current_cpu, pc, tmp_address);
4271 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4272 written |= (1 << 7);
4273 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4275 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4278 SI opval = tmp_address;
4279 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4280 written |= (1 << 6);
4281 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4283 frvbf_force_update (current_cpu);
4290 abuf->written = written;
4295 /* ldbfu: ldbfu$pack @($GRi,$GRj),$FRintk */
4298 SEM_FN_NAME (frvbf,ldbfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4300 #define FLD(f) abuf->fields.sfmt_cldbfu.f
4301 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4302 int UNUSED written = 0;
4303 IADDR UNUSED pc = abuf->addr;
4304 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4308 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4310 SI opval = frvbf_read_mem_UQI (current_cpu, pc, tmp_address);
4311 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
4312 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
4315 SI opval = tmp_address;
4316 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4317 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4319 frvbf_force_update (current_cpu);
4326 /* ldhfu: ldhfu$pack @($GRi,$GRj),$FRintk */
4329 SEM_FN_NAME (frvbf,ldhfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4331 #define FLD(f) abuf->fields.sfmt_cldbfu.f
4332 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4333 int UNUSED written = 0;
4334 IADDR UNUSED pc = abuf->addr;
4335 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4339 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4341 SI opval = frvbf_read_mem_UHI (current_cpu, pc, tmp_address);
4342 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
4343 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
4346 SI opval = tmp_address;
4347 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4348 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4350 frvbf_force_update (current_cpu);
4357 /* ldfu: ldfu$pack @($GRi,$GRj),$FRintk */
4360 SEM_FN_NAME (frvbf,ldfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4362 #define FLD(f) abuf->fields.sfmt_cldbfu.f
4363 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4364 int UNUSED written = 0;
4365 IADDR UNUSED pc = abuf->addr;
4366 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4370 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4372 SI opval = frvbf_read_mem_SI (current_cpu, pc, tmp_address);
4373 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
4374 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
4377 SI opval = tmp_address;
4378 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4379 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4381 frvbf_force_update (current_cpu);
4388 /* ldcu: ldcu$pack @($GRi,$GRj),$CPRk */
4391 SEM_FN_NAME (frvbf,ldcu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4393 #define FLD(f) abuf->fields.sfmt_ldcu.f
4394 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4395 int UNUSED written = 0;
4396 IADDR UNUSED pc = abuf->addr;
4397 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4401 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4403 SI opval = frvbf_read_mem_SI (current_cpu, pc, tmp_address);
4404 sim_queue_si_write (current_cpu, & CPU (h_cpr[FLD (f_CPRk)]), opval);
4405 TRACE_RESULT (current_cpu, abuf, "cpr", 'x', opval);
4408 SI opval = tmp_address;
4409 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4410 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4412 frvbf_force_update (current_cpu);
4419 /* nldbfu: nldbfu$pack @($GRi,$GRj),$FRintk */
4422 SEM_FN_NAME (frvbf,nldbfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4424 #define FLD(f) abuf->fields.sfmt_cldbfu.f
4425 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4426 int UNUSED written = 0;
4427 IADDR UNUSED pc = abuf->addr;
4428 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4432 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 0, 1);
4436 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4438 SI opval = frvbf_read_mem_UQI (current_cpu, pc, tmp_address);
4439 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
4440 written |= (1 << 6);
4441 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
4444 SI opval = tmp_address;
4445 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4446 written |= (1 << 7);
4447 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4449 frvbf_force_update (current_cpu);
4454 abuf->written = written;
4459 /* nldhfu: nldhfu$pack @($GRi,$GRj),$FRintk */
4462 SEM_FN_NAME (frvbf,nldhfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4464 #define FLD(f) abuf->fields.sfmt_cldbfu.f
4465 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4466 int UNUSED written = 0;
4467 IADDR UNUSED pc = abuf->addr;
4468 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4472 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 2, 1);
4476 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4478 SI opval = frvbf_read_mem_UHI (current_cpu, pc, tmp_address);
4479 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
4480 written |= (1 << 6);
4481 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
4484 SI opval = tmp_address;
4485 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4486 written |= (1 << 7);
4487 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4489 frvbf_force_update (current_cpu);
4494 abuf->written = written;
4499 /* nldfu: nldfu$pack @($GRi,$GRj),$FRintk */
4502 SEM_FN_NAME (frvbf,nldfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4504 #define FLD(f) abuf->fields.sfmt_cldbfu.f
4505 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4506 int UNUSED written = 0;
4507 IADDR UNUSED pc = abuf->addr;
4508 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4512 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 4, 1);
4516 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4518 SI opval = frvbf_read_mem_SI (current_cpu, pc, tmp_address);
4519 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
4520 written |= (1 << 6);
4521 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
4524 SI opval = tmp_address;
4525 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4526 written |= (1 << 7);
4527 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4529 frvbf_force_update (current_cpu);
4534 abuf->written = written;
4539 /* lddu: lddu$pack @($GRi,$GRj),$GRdoublek */
4542 SEM_FN_NAME (frvbf,lddu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4544 #define FLD(f) abuf->fields.sfmt_clddu.f
4545 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4546 int UNUSED written = 0;
4547 IADDR UNUSED pc = abuf->addr;
4548 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4552 if (NESI (FLD (f_GRk), 0)) {
4554 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4556 DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
4557 sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
4558 written |= (1 << 5);
4559 TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
4563 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4566 SI opval = tmp_address;
4567 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4568 written |= (1 << 6);
4569 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4571 frvbf_force_update (current_cpu);
4576 abuf->written = written;
4581 /* nlddu: nlddu$pack @($GRi,$GRj),$GRdoublek */
4584 SEM_FN_NAME (frvbf,nlddu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4586 #define FLD(f) abuf->fields.sfmt_clddu.f
4587 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4588 int UNUSED written = 0;
4589 IADDR UNUSED pc = abuf->addr;
4590 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4594 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 5, 0);
4598 if (NESI (FLD (f_GRk), 0)) {
4600 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4602 DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
4603 sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
4604 written |= (1 << 6);
4605 TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
4609 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4612 SI opval = tmp_address;
4613 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4614 written |= (1 << 7);
4615 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4617 frvbf_force_update (current_cpu);
4624 abuf->written = written;
4629 /* lddfu: lddfu$pack @($GRi,$GRj),$FRdoublek */
4632 SEM_FN_NAME (frvbf,lddfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4634 #define FLD(f) abuf->fields.sfmt_clddfu.f
4635 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4636 int UNUSED written = 0;
4637 IADDR UNUSED pc = abuf->addr;
4638 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4643 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4645 DF opval = frvbf_read_mem_DF (current_cpu, pc, tmp_address);
4646 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
4647 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
4651 SI opval = tmp_address;
4652 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4653 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4655 frvbf_force_update (current_cpu);
4662 /* lddcu: lddcu$pack @($GRi,$GRj),$CPRdoublek */
4665 SEM_FN_NAME (frvbf,lddcu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4667 #define FLD(f) abuf->fields.sfmt_lddcu.f
4668 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4669 int UNUSED written = 0;
4670 IADDR UNUSED pc = abuf->addr;
4671 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4676 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4678 DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
4679 sim_queue_fn_di_write (current_cpu, frvbf_h_cpr_double_set, FLD (f_CPRk), opval);
4680 TRACE_RESULT (current_cpu, abuf, "cpr_double", 'D', opval);
4684 SI opval = tmp_address;
4685 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4686 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4688 frvbf_force_update (current_cpu);
4695 /* nlddfu: nlddfu$pack @($GRi,$GRj),$FRdoublek */
4698 SEM_FN_NAME (frvbf,nlddfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4700 #define FLD(f) abuf->fields.sfmt_clddfu.f
4701 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4702 int UNUSED written = 0;
4703 IADDR UNUSED pc = abuf->addr;
4704 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4708 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 5, 1);
4713 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4715 DF opval = frvbf_read_mem_DF (current_cpu, pc, tmp_address);
4716 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
4717 written |= (1 << 6);
4718 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
4722 SI opval = tmp_address;
4723 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4724 written |= (1 << 7);
4725 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4727 frvbf_force_update (current_cpu);
4732 abuf->written = written;
4737 /* ldqu: ldqu$pack @($GRi,$GRj),$GRk */
4740 SEM_FN_NAME (frvbf,ldqu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4742 #define FLD(f) abuf->fields.sfmt_cstdu.f
4743 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4744 int UNUSED written = 0;
4745 IADDR UNUSED pc = abuf->addr;
4746 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4751 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4752 frvbf_load_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
4754 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4757 SI opval = tmp_address;
4758 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4759 written |= (1 << 5);
4760 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4762 frvbf_force_update (current_cpu);
4767 abuf->written = written;
4772 /* nldqu: nldqu$pack @($GRi,$GRj),$GRk */
4775 SEM_FN_NAME (frvbf,nldqu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4777 #define FLD(f) abuf->fields.sfmt_cstdu.f
4778 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4779 int UNUSED written = 0;
4780 IADDR UNUSED pc = abuf->addr;
4781 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4785 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 6, 0);
4790 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4791 frvbf_load_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
4793 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4796 SI opval = tmp_address;
4797 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4798 written |= (1 << 6);
4799 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4801 frvbf_force_update (current_cpu);
4808 abuf->written = written;
4813 /* ldqfu: ldqfu$pack @($GRi,$GRj),$FRintk */
4816 SEM_FN_NAME (frvbf,ldqfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4818 #define FLD(f) abuf->fields.sfmt_cstdfu.f
4819 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4820 int UNUSED written = 0;
4821 IADDR UNUSED pc = abuf->addr;
4822 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4827 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4828 frvbf_load_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
4831 SI opval = tmp_address;
4832 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4833 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4835 frvbf_force_update (current_cpu);
4842 /* ldqcu: ldqcu$pack @($GRi,$GRj),$CPRk */
4845 SEM_FN_NAME (frvbf,ldqcu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4847 #define FLD(f) abuf->fields.sfmt_stdcu.f
4848 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4849 int UNUSED written = 0;
4850 IADDR UNUSED pc = abuf->addr;
4851 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4856 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4857 frvbf_load_quad_CPR (current_cpu, pc, tmp_address, FLD (f_CPRk));
4860 SI opval = tmp_address;
4861 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4862 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4864 frvbf_force_update (current_cpu);
4871 /* nldqfu: nldqfu$pack @($GRi,$GRj),$FRintk */
4874 SEM_FN_NAME (frvbf,nldqfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4876 #define FLD(f) abuf->fields.sfmt_cstdfu.f
4877 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4878 int UNUSED written = 0;
4879 IADDR UNUSED pc = abuf->addr;
4880 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4884 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 6, 1);
4889 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4890 frvbf_load_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
4893 SI opval = tmp_address;
4894 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4895 written |= (1 << 6);
4896 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4898 frvbf_force_update (current_cpu);
4903 abuf->written = written;
4908 /* ldsbi: ldsbi$pack @($GRi,$d12),$GRk */
4911 SEM_FN_NAME (frvbf,ldsbi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4913 #define FLD(f) abuf->fields.sfmt_swapi.f
4914 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4915 int UNUSED written = 0;
4916 IADDR UNUSED pc = abuf->addr;
4917 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4920 SI opval = frvbf_read_mem_QI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
4921 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4922 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4929 /* ldshi: ldshi$pack @($GRi,$d12),$GRk */
4932 SEM_FN_NAME (frvbf,ldshi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4934 #define FLD(f) abuf->fields.sfmt_swapi.f
4935 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4936 int UNUSED written = 0;
4937 IADDR UNUSED pc = abuf->addr;
4938 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4941 SI opval = frvbf_read_mem_HI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
4942 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4943 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4950 /* ldi: ldi$pack @($GRi,$d12),$GRk */
4953 SEM_FN_NAME (frvbf,ldi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4955 #define FLD(f) abuf->fields.sfmt_swapi.f
4956 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4957 int UNUSED written = 0;
4958 IADDR UNUSED pc = abuf->addr;
4959 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4962 SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
4963 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4964 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4971 /* ldubi: ldubi$pack @($GRi,$d12),$GRk */
4974 SEM_FN_NAME (frvbf,ldubi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4976 #define FLD(f) abuf->fields.sfmt_swapi.f
4977 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4978 int UNUSED written = 0;
4979 IADDR UNUSED pc = abuf->addr;
4980 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4983 SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
4984 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4985 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4992 /* lduhi: lduhi$pack @($GRi,$d12),$GRk */
4995 SEM_FN_NAME (frvbf,lduhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4997 #define FLD(f) abuf->fields.sfmt_swapi.f
4998 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4999 int UNUSED written = 0;
5000 IADDR UNUSED pc = abuf->addr;
5001 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5004 SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5005 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
5006 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5013 /* ldbfi: ldbfi$pack @($GRi,$d12),$FRintk */
5016 SEM_FN_NAME (frvbf,ldbfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5018 #define FLD(f) abuf->fields.sfmt_ldbfi.f
5019 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5020 int UNUSED written = 0;
5021 IADDR UNUSED pc = abuf->addr;
5022 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5025 SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5026 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
5027 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
5034 /* ldhfi: ldhfi$pack @($GRi,$d12),$FRintk */
5037 SEM_FN_NAME (frvbf,ldhfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5039 #define FLD(f) abuf->fields.sfmt_ldbfi.f
5040 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5041 int UNUSED written = 0;
5042 IADDR UNUSED pc = abuf->addr;
5043 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5046 SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5047 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
5048 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
5055 /* ldfi: ldfi$pack @($GRi,$d12),$FRintk */
5058 SEM_FN_NAME (frvbf,ldfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5060 #define FLD(f) abuf->fields.sfmt_ldbfi.f
5061 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5062 int UNUSED written = 0;
5063 IADDR UNUSED pc = abuf->addr;
5064 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5067 SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5068 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
5069 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
5076 /* nldsbi: nldsbi$pack @($GRi,$d12),$GRk */
5079 SEM_FN_NAME (frvbf,nldsbi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5081 #define FLD(f) abuf->fields.sfmt_swapi.f
5082 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5083 int UNUSED written = 0;
5084 IADDR UNUSED pc = abuf->addr;
5085 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5089 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_GRk), FLD (f_d12), 1, 0);
5092 SI opval = frvbf_read_mem_QI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5093 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
5094 written |= (1 << 5);
5095 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5100 abuf->written = written;
5105 /* nldubi: nldubi$pack @($GRi,$d12),$GRk */
5108 SEM_FN_NAME (frvbf,nldubi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5110 #define FLD(f) abuf->fields.sfmt_swapi.f
5111 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5112 int UNUSED written = 0;
5113 IADDR UNUSED pc = abuf->addr;
5114 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5118 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_GRk), FLD (f_d12), 0, 0);
5121 SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5122 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
5123 written |= (1 << 5);
5124 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5129 abuf->written = written;
5134 /* nldshi: nldshi$pack @($GRi,$d12),$GRk */
5137 SEM_FN_NAME (frvbf,nldshi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5139 #define FLD(f) abuf->fields.sfmt_swapi.f
5140 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5141 int UNUSED written = 0;
5142 IADDR UNUSED pc = abuf->addr;
5143 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5147 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_GRk), FLD (f_d12), 3, 0);
5150 SI opval = frvbf_read_mem_HI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5151 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
5152 written |= (1 << 5);
5153 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5158 abuf->written = written;
5163 /* nlduhi: nlduhi$pack @($GRi,$d12),$GRk */
5166 SEM_FN_NAME (frvbf,nlduhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5168 #define FLD(f) abuf->fields.sfmt_swapi.f
5169 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5170 int UNUSED written = 0;
5171 IADDR UNUSED pc = abuf->addr;
5172 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5176 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_GRk), FLD (f_d12), 2, 0);
5179 SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5180 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
5181 written |= (1 << 5);
5182 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5187 abuf->written = written;
5192 /* nldi: nldi$pack @($GRi,$d12),$GRk */
5195 SEM_FN_NAME (frvbf,nldi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5197 #define FLD(f) abuf->fields.sfmt_swapi.f
5198 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5199 int UNUSED written = 0;
5200 IADDR UNUSED pc = abuf->addr;
5201 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5205 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_GRk), FLD (f_d12), 4, 0);
5208 SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5209 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
5210 written |= (1 << 5);
5211 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5216 abuf->written = written;
5221 /* nldbfi: nldbfi$pack @($GRi,$d12),$FRintk */
5224 SEM_FN_NAME (frvbf,nldbfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5226 #define FLD(f) abuf->fields.sfmt_ldbfi.f
5227 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5228 int UNUSED written = 0;
5229 IADDR UNUSED pc = abuf->addr;
5230 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5234 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_FRk), FLD (f_d12), 0, 1);
5237 SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5238 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
5239 written |= (1 << 5);
5240 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
5245 abuf->written = written;
5250 /* nldhfi: nldhfi$pack @($GRi,$d12),$FRintk */
5253 SEM_FN_NAME (frvbf,nldhfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5255 #define FLD(f) abuf->fields.sfmt_ldbfi.f
5256 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5257 int UNUSED written = 0;
5258 IADDR UNUSED pc = abuf->addr;
5259 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5263 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_FRk), FLD (f_d12), 2, 1);
5266 SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5267 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
5268 written |= (1 << 5);
5269 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
5274 abuf->written = written;
5279 /* nldfi: nldfi$pack @($GRi,$d12),$FRintk */
5282 SEM_FN_NAME (frvbf,nldfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5284 #define FLD(f) abuf->fields.sfmt_ldbfi.f
5285 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5286 int UNUSED written = 0;
5287 IADDR UNUSED pc = abuf->addr;
5288 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5292 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_FRk), FLD (f_d12), 4, 1);
5295 SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5296 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
5297 written |= (1 << 5);
5298 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
5303 abuf->written = written;
5308 /* lddi: lddi$pack @($GRi,$d12),$GRdoublek */
5311 SEM_FN_NAME (frvbf,lddi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5313 #define FLD(f) abuf->fields.sfmt_smuli.f
5314 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5315 int UNUSED written = 0;
5316 IADDR UNUSED pc = abuf->addr;
5317 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5321 if (NESI (FLD (f_GRk), 0)) {
5323 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
5325 DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
5326 sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
5327 written |= (1 << 4);
5328 TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
5334 abuf->written = written;
5339 /* lddfi: lddfi$pack @($GRi,$d12),$FRdoublek */
5342 SEM_FN_NAME (frvbf,lddfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5344 #define FLD(f) abuf->fields.sfmt_lddfi.f
5345 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5346 int UNUSED written = 0;
5347 IADDR UNUSED pc = abuf->addr;
5348 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5353 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
5355 DF opval = frvbf_read_mem_DF (current_cpu, pc, tmp_address);
5356 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
5357 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
5366 /* nlddi: nlddi$pack @($GRi,$d12),$GRdoublek */
5369 SEM_FN_NAME (frvbf,nlddi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5371 #define FLD(f) abuf->fields.sfmt_smuli.f
5372 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5373 int UNUSED written = 0;
5374 IADDR UNUSED pc = abuf->addr;
5375 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5381 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_GRk), FLD (f_d12), 5, 0);
5383 if (NESI (FLD (f_GRk), 0)) {
5385 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
5387 DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
5388 sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
5389 written |= (1 << 5);
5390 TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
5398 abuf->written = written;
5403 /* nlddfi: nlddfi$pack @($GRi,$d12),$FRdoublek */
5406 SEM_FN_NAME (frvbf,nlddfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5408 #define FLD(f) abuf->fields.sfmt_lddfi.f
5409 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5410 int UNUSED written = 0;
5411 IADDR UNUSED pc = abuf->addr;
5412 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5418 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_FRk), FLD (f_d12), 5, 1);
5421 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
5423 DF opval = frvbf_read_mem_DF (current_cpu, pc, tmp_address);
5424 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
5425 written |= (1 << 5);
5426 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
5433 abuf->written = written;
5438 /* ldqi: ldqi$pack @($GRi,$d12),$GRk */
5441 SEM_FN_NAME (frvbf,ldqi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5443 #define FLD(f) abuf->fields.sfmt_stdi.f
5444 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5445 int UNUSED written = 0;
5446 IADDR UNUSED pc = abuf->addr;
5447 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5452 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
5453 frvbf_load_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
5461 /* ldqfi: ldqfi$pack @($GRi,$d12),$FRintk */
5464 SEM_FN_NAME (frvbf,ldqfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5466 #define FLD(f) abuf->fields.sfmt_stdfi.f
5467 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5468 int UNUSED written = 0;
5469 IADDR UNUSED pc = abuf->addr;
5470 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5475 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
5476 frvbf_load_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
5484 /* nldqfi: nldqfi$pack @($GRi,$d12),$FRintk */
5487 SEM_FN_NAME (frvbf,nldqfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5489 #define FLD(f) abuf->fields.sfmt_stdfi.f
5490 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5491 int UNUSED written = 0;
5492 IADDR UNUSED pc = abuf->addr;
5493 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5499 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_FRk), FLD (f_d12), 6, 1);
5502 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
5503 frvbf_load_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
5513 /* stb: stb$pack $GRk,@($GRi,$GRj) */
5516 SEM_FN_NAME (frvbf,stb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5518 #define FLD(f) abuf->fields.sfmt_cswap.f
5519 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5520 int UNUSED written = 0;
5521 IADDR UNUSED pc = abuf->addr;
5522 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5524 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)));
5530 /* sth: sth$pack $GRk,@($GRi,$GRj) */
5533 SEM_FN_NAME (frvbf,sth) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5535 #define FLD(f) abuf->fields.sfmt_cswap.f
5536 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5537 int UNUSED written = 0;
5538 IADDR UNUSED pc = abuf->addr;
5539 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5541 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)));
5547 /* st: st$pack $GRk,@($GRi,$GRj) */
5550 SEM_FN_NAME (frvbf,st) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5552 #define FLD(f) abuf->fields.sfmt_cswap.f
5553 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5554 int UNUSED written = 0;
5555 IADDR UNUSED pc = abuf->addr;
5556 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5558 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)));
5564 /* stbf: stbf$pack $FRintk,@($GRi,$GRj) */
5567 SEM_FN_NAME (frvbf,stbf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5569 #define FLD(f) abuf->fields.sfmt_cstbfu.f
5570 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5571 int UNUSED written = 0;
5572 IADDR UNUSED pc = abuf->addr;
5573 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5575 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)));
5581 /* sthf: sthf$pack $FRintk,@($GRi,$GRj) */
5584 SEM_FN_NAME (frvbf,sthf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5586 #define FLD(f) abuf->fields.sfmt_cstbfu.f
5587 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5588 int UNUSED written = 0;
5589 IADDR UNUSED pc = abuf->addr;
5590 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5592 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)));
5598 /* stf: stf$pack $FRintk,@($GRi,$GRj) */
5601 SEM_FN_NAME (frvbf,stf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5603 #define FLD(f) abuf->fields.sfmt_cstbfu.f
5604 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5605 int UNUSED written = 0;
5606 IADDR UNUSED pc = abuf->addr;
5607 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5609 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)));
5615 /* stc: stc$pack $CPRk,@($GRi,$GRj) */
5618 SEM_FN_NAME (frvbf,stc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5620 #define FLD(f) abuf->fields.sfmt_stcu.f
5621 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5622 int UNUSED written = 0;
5623 IADDR UNUSED pc = abuf->addr;
5624 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5626 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)]));
5632 /* std: std$pack $GRdoublek,@($GRi,$GRj) */
5635 SEM_FN_NAME (frvbf,std) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5637 #define FLD(f) abuf->fields.sfmt_cstdu.f
5638 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5639 int UNUSED written = 0;
5640 IADDR UNUSED pc = abuf->addr;
5641 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_DI (current_cpu, pc, tmp_address, GET_H_GR_DOUBLE (FLD (f_GRk)));
5655 /* stdf: stdf$pack $FRdoublek,@($GRi,$GRj) */
5658 SEM_FN_NAME (frvbf,stdf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5660 #define FLD(f) abuf->fields.sfmt_cstdfu.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);
5669 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5670 frvbf_write_mem_DF (current_cpu, pc, tmp_address, GET_H_FR_DOUBLE (FLD (f_FRk)));
5678 /* stdc: stdc$pack $CPRdoublek,@($GRi,$GRj) */
5681 SEM_FN_NAME (frvbf,stdc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5683 #define FLD(f) abuf->fields.sfmt_stdcu.f
5684 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5685 int UNUSED written = 0;
5686 IADDR UNUSED pc = abuf->addr;
5687 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5692 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5693 frvbf_write_mem_DI (current_cpu, pc, tmp_address, GET_H_CPR_DOUBLE (FLD (f_CPRk)));
5701 /* stq: stq$pack $GRk,@($GRi,$GRj) */
5704 SEM_FN_NAME (frvbf,stq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5706 #define FLD(f) abuf->fields.sfmt_smulcc.f
5707 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5708 int UNUSED written = 0;
5709 IADDR UNUSED pc = abuf->addr;
5710 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5715 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5716 frvbf_store_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
5724 /* stqf: stqf$pack $FRintk,@($GRi,$GRj) */
5727 SEM_FN_NAME (frvbf,stqf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5729 #define FLD(f) abuf->fields.sfmt_cstdfu.f
5730 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5731 int UNUSED written = 0;
5732 IADDR UNUSED pc = abuf->addr;
5733 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5738 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5739 frvbf_store_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
5747 /* stqc: stqc$pack $CPRk,@($GRi,$GRj) */
5750 SEM_FN_NAME (frvbf,stqc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5752 #define FLD(f) abuf->fields.sfmt_stdcu.f
5753 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5754 int UNUSED written = 0;
5755 IADDR UNUSED pc = abuf->addr;
5756 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5761 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5762 frvbf_store_quad_CPR (current_cpu, pc, tmp_address, FLD (f_CPRk));
5770 /* stbu: stbu$pack $GRk,@($GRi,$GRj) */
5773 SEM_FN_NAME (frvbf,stbu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5775 #define FLD(f) abuf->fields.sfmt_cstbu.f
5776 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5777 int UNUSED written = 0;
5778 IADDR UNUSED pc = abuf->addr;
5779 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5783 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5784 frvbf_write_mem_QI (current_cpu, pc, tmp_address, GET_H_GR (FLD (f_GRk)));
5786 SI opval = tmp_address;
5787 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
5788 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5796 /* sthu: sthu$pack $GRk,@($GRi,$GRj) */
5799 SEM_FN_NAME (frvbf,sthu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5801 #define FLD(f) abuf->fields.sfmt_cstbu.f
5802 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5803 int UNUSED written = 0;
5804 IADDR UNUSED pc = abuf->addr;
5805 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5809 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5810 frvbf_write_mem_HI (current_cpu, pc, tmp_address, GET_H_GR (FLD (f_GRk)));
5812 SI opval = tmp_address;
5813 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
5814 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5822 /* stu: stu$pack $GRk,@($GRi,$GRj) */
5825 SEM_FN_NAME (frvbf,stu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5827 #define FLD(f) abuf->fields.sfmt_cstbu.f
5828 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5829 int UNUSED written = 0;
5830 IADDR UNUSED pc = abuf->addr;
5831 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5835 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5836 frvbf_write_mem_WI (current_cpu, pc, tmp_address, GET_H_GR (FLD (f_GRk)));
5838 SI opval = tmp_address;
5839 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
5840 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5848 /* stbfu: stbfu$pack $FRintk,@($GRi,$GRj) */
5851 SEM_FN_NAME (frvbf,stbfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5853 #define FLD(f) abuf->fields.sfmt_cstbfu.f
5854 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5855 int UNUSED written = 0;
5856 IADDR UNUSED pc = abuf->addr;
5857 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5861 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5862 frvbf_write_mem_QI (current_cpu, pc, tmp_address, GET_H_FR_INT (FLD (f_FRk)));
5864 SI opval = tmp_address;
5865 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
5866 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5874 /* sthfu: sthfu$pack $FRintk,@($GRi,$GRj) */
5877 SEM_FN_NAME (frvbf,sthfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5879 #define FLD(f) abuf->fields.sfmt_cstbfu.f
5880 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5881 int UNUSED written = 0;
5882 IADDR UNUSED pc = abuf->addr;
5883 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5887 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5888 frvbf_write_mem_HI (current_cpu, pc, tmp_address, GET_H_FR_INT (FLD (f_FRk)));
5890 SI opval = tmp_address;
5891 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
5892 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5900 /* stfu: stfu$pack $FRintk,@($GRi,$GRj) */
5903 SEM_FN_NAME (frvbf,stfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5905 #define FLD(f) abuf->fields.sfmt_cstbfu.f
5906 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5907 int UNUSED written = 0;
5908 IADDR UNUSED pc = abuf->addr;
5909 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5913 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5914 frvbf_write_mem_SI (current_cpu, pc, tmp_address, GET_H_FR_INT (FLD (f_FRk)));
5916 SI opval = tmp_address;
5917 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
5918 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5926 /* stcu: stcu$pack $CPRk,@($GRi,$GRj) */
5929 SEM_FN_NAME (frvbf,stcu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5931 #define FLD(f) abuf->fields.sfmt_stcu.f
5932 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5933 int UNUSED written = 0;
5934 IADDR UNUSED pc = abuf->addr;
5935 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5939 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5940 frvbf_write_mem_SI (current_cpu, pc, tmp_address, CPU (h_cpr[FLD (f_CPRk)]));
5942 SI opval = tmp_address;
5943 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
5944 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5952 /* stdu: stdu$pack $GRdoublek,@($GRi,$GRj) */
5955 SEM_FN_NAME (frvbf,stdu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5957 #define FLD(f) abuf->fields.sfmt_cstdu.f
5958 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5959 int UNUSED written = 0;
5960 IADDR UNUSED pc = abuf->addr;
5961 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5966 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5967 frvbf_write_mem_DI (current_cpu, pc, tmp_address, GET_H_GR_DOUBLE (FLD (f_GRk)));
5970 SI opval = tmp_address;
5971 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
5972 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5980 /* stdfu: stdfu$pack $FRdoublek,@($GRi,$GRj) */
5983 SEM_FN_NAME (frvbf,stdfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5985 #define FLD(f) abuf->fields.sfmt_cstdfu.f
5986 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5987 int UNUSED written = 0;
5988 IADDR UNUSED pc = abuf->addr;
5989 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5994 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5995 frvbf_write_mem_DF (current_cpu, pc, tmp_address, GET_H_FR_DOUBLE (FLD (f_FRk)));
5998 SI opval = tmp_address;
5999 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6000 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6008 /* stdcu: stdcu$pack $CPRdoublek,@($GRi,$GRj) */
6011 SEM_FN_NAME (frvbf,stdcu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6013 #define FLD(f) abuf->fields.sfmt_stdcu.f
6014 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6015 int UNUSED written = 0;
6016 IADDR UNUSED pc = abuf->addr;
6017 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6022 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6023 frvbf_write_mem_DI (current_cpu, pc, tmp_address, GET_H_CPR_DOUBLE (FLD (f_CPRk)));
6026 SI opval = tmp_address;
6027 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6028 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6036 /* stqu: stqu$pack $GRk,@($GRi,$GRj) */
6039 SEM_FN_NAME (frvbf,stqu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6041 #define FLD(f) abuf->fields.sfmt_cstdu.f
6042 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6043 int UNUSED written = 0;
6044 IADDR UNUSED pc = abuf->addr;
6045 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6050 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6051 frvbf_store_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
6054 SI opval = tmp_address;
6055 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6056 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6064 /* stqfu: stqfu$pack $FRintk,@($GRi,$GRj) */
6067 SEM_FN_NAME (frvbf,stqfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6069 #define FLD(f) abuf->fields.sfmt_cstdfu.f
6070 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6071 int UNUSED written = 0;
6072 IADDR UNUSED pc = abuf->addr;
6073 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6078 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6079 frvbf_store_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
6082 SI opval = tmp_address;
6083 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6084 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6092 /* stqcu: stqcu$pack $CPRk,@($GRi,$GRj) */
6095 SEM_FN_NAME (frvbf,stqcu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6097 #define FLD(f) abuf->fields.sfmt_stdcu.f
6098 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6099 int UNUSED written = 0;
6100 IADDR UNUSED pc = abuf->addr;
6101 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6106 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6107 frvbf_store_quad_CPR (current_cpu, pc, tmp_address, FLD (f_CPRk));
6110 SI opval = tmp_address;
6111 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6112 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6120 /* cldsb: cldsb$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6123 SEM_FN_NAME (frvbf,cldsb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6125 #define FLD(f) abuf->fields.sfmt_cswap.f
6126 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6127 int UNUSED written = 0;
6128 IADDR UNUSED pc = abuf->addr;
6129 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6131 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6133 SI opval = frvbf_read_mem_QI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
6134 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6135 written |= (1 << 5);
6136 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6140 abuf->written = written;
6145 /* cldub: cldub$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6148 SEM_FN_NAME (frvbf,cldub) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6150 #define FLD(f) abuf->fields.sfmt_cswap.f
6151 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6152 int UNUSED written = 0;
6153 IADDR UNUSED pc = abuf->addr;
6154 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6156 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6158 SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
6159 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6160 written |= (1 << 5);
6161 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6165 abuf->written = written;
6170 /* cldsh: cldsh$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6173 SEM_FN_NAME (frvbf,cldsh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6175 #define FLD(f) abuf->fields.sfmt_cswap.f
6176 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6177 int UNUSED written = 0;
6178 IADDR UNUSED pc = abuf->addr;
6179 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6181 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6183 SI opval = frvbf_read_mem_HI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
6184 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6185 written |= (1 << 5);
6186 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6190 abuf->written = written;
6195 /* clduh: clduh$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6198 SEM_FN_NAME (frvbf,clduh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6200 #define FLD(f) abuf->fields.sfmt_cswap.f
6201 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6202 int UNUSED written = 0;
6203 IADDR UNUSED pc = abuf->addr;
6204 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6206 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6208 SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
6209 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6210 written |= (1 << 5);
6211 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6215 abuf->written = written;
6220 /* cld: cld$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6223 SEM_FN_NAME (frvbf,cld) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6225 #define FLD(f) abuf->fields.sfmt_cswap.f
6226 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6227 int UNUSED written = 0;
6228 IADDR UNUSED pc = abuf->addr;
6229 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6231 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6233 SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
6234 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6235 written |= (1 << 5);
6236 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6240 abuf->written = written;
6245 /* cldbf: cldbf$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6248 SEM_FN_NAME (frvbf,cldbf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6250 #define FLD(f) abuf->fields.sfmt_cldbfu.f
6251 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6252 int UNUSED written = 0;
6253 IADDR UNUSED pc = abuf->addr;
6254 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6256 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6258 SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
6259 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
6260 written |= (1 << 5);
6261 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
6265 abuf->written = written;
6270 /* cldhf: cldhf$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6273 SEM_FN_NAME (frvbf,cldhf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6275 #define FLD(f) abuf->fields.sfmt_cldbfu.f
6276 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6277 int UNUSED written = 0;
6278 IADDR UNUSED pc = abuf->addr;
6279 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6281 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6283 SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
6284 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
6285 written |= (1 << 5);
6286 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
6290 abuf->written = written;
6295 /* cldf: cldf$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6298 SEM_FN_NAME (frvbf,cldf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6300 #define FLD(f) abuf->fields.sfmt_cldbfu.f
6301 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6302 int UNUSED written = 0;
6303 IADDR UNUSED pc = abuf->addr;
6304 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6306 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6308 SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
6309 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
6310 written |= (1 << 5);
6311 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
6315 abuf->written = written;
6320 /* cldd: cldd$pack @($GRi,$GRj),$GRdoublek,$CCi,$cond */
6323 SEM_FN_NAME (frvbf,cldd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6325 #define FLD(f) abuf->fields.sfmt_clddu.f
6326 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6327 int UNUSED written = 0;
6328 IADDR UNUSED pc = abuf->addr;
6329 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6331 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6334 if (NESI (FLD (f_GRk), 0)) {
6336 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6338 DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
6339 sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
6340 written |= (1 << 6);
6341 TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
6348 abuf->written = written;
6353 /* clddf: clddf$pack @($GRi,$GRj),$FRdoublek,$CCi,$cond */
6356 SEM_FN_NAME (frvbf,clddf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6358 #define FLD(f) abuf->fields.sfmt_clddfu.f
6359 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6360 int UNUSED written = 0;
6361 IADDR UNUSED pc = abuf->addr;
6362 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6364 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6368 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6370 DF opval = frvbf_read_mem_DF (current_cpu, pc, tmp_address);
6371 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
6372 written |= (1 << 5);
6373 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
6379 abuf->written = written;
6384 /* cldq: cldq$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6387 SEM_FN_NAME (frvbf,cldq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6389 #define FLD(f) abuf->fields.sfmt_cswap.f
6390 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6391 int UNUSED written = 0;
6392 IADDR UNUSED pc = abuf->addr;
6393 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6395 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6399 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6400 frvbf_load_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
6409 /* cldsbu: cldsbu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6412 SEM_FN_NAME (frvbf,cldsbu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6414 #define FLD(f) abuf->fields.sfmt_cldsbu.f
6415 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6416 int UNUSED written = 0;
6417 IADDR UNUSED pc = abuf->addr;
6418 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6420 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6423 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6425 SI opval = frvbf_read_mem_QI (current_cpu, pc, tmp_address);
6426 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6427 written |= (1 << 8);
6428 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6430 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
6432 SI opval = tmp_address;
6433 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6434 written |= (1 << 7);
6435 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6441 abuf->written = written;
6446 /* cldubu: cldubu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6449 SEM_FN_NAME (frvbf,cldubu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6451 #define FLD(f) abuf->fields.sfmt_cldsbu.f
6452 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6453 int UNUSED written = 0;
6454 IADDR UNUSED pc = abuf->addr;
6455 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6457 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6460 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6462 SI opval = frvbf_read_mem_UQI (current_cpu, pc, tmp_address);
6463 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6464 written |= (1 << 8);
6465 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6467 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
6469 SI opval = tmp_address;
6470 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6471 written |= (1 << 7);
6472 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6478 abuf->written = written;
6483 /* cldshu: cldshu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6486 SEM_FN_NAME (frvbf,cldshu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6488 #define FLD(f) abuf->fields.sfmt_cldsbu.f
6489 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6490 int UNUSED written = 0;
6491 IADDR UNUSED pc = abuf->addr;
6492 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6494 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6497 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6499 SI opval = frvbf_read_mem_HI (current_cpu, pc, tmp_address);
6500 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6501 written |= (1 << 8);
6502 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6504 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
6506 SI opval = tmp_address;
6507 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6508 written |= (1 << 7);
6509 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6515 abuf->written = written;
6520 /* clduhu: clduhu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6523 SEM_FN_NAME (frvbf,clduhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6525 #define FLD(f) abuf->fields.sfmt_cldsbu.f
6526 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6527 int UNUSED written = 0;
6528 IADDR UNUSED pc = abuf->addr;
6529 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6531 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6534 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6536 SI opval = frvbf_read_mem_UHI (current_cpu, pc, tmp_address);
6537 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6538 written |= (1 << 8);
6539 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6541 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
6543 SI opval = tmp_address;
6544 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6545 written |= (1 << 7);
6546 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6552 abuf->written = written;
6557 /* cldu: cldu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6560 SEM_FN_NAME (frvbf,cldu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6562 #define FLD(f) abuf->fields.sfmt_cldsbu.f
6563 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6564 int UNUSED written = 0;
6565 IADDR UNUSED pc = abuf->addr;
6566 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6568 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6571 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6573 SI opval = frvbf_read_mem_SI (current_cpu, pc, tmp_address);
6574 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6575 written |= (1 << 8);
6576 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6578 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
6580 SI opval = tmp_address;
6581 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6582 written |= (1 << 7);
6583 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6589 abuf->written = written;
6594 /* cldbfu: cldbfu$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6597 SEM_FN_NAME (frvbf,cldbfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6599 #define FLD(f) abuf->fields.sfmt_cldbfu.f
6600 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6601 int UNUSED written = 0;
6602 IADDR UNUSED pc = abuf->addr;
6603 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6605 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6608 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6610 SI opval = frvbf_read_mem_UQI (current_cpu, pc, tmp_address);
6611 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
6612 written |= (1 << 5);
6613 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
6616 SI opval = tmp_address;
6617 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6618 written |= (1 << 6);
6619 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6624 abuf->written = written;
6629 /* cldhfu: cldhfu$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6632 SEM_FN_NAME (frvbf,cldhfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6634 #define FLD(f) abuf->fields.sfmt_cldbfu.f
6635 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6636 int UNUSED written = 0;
6637 IADDR UNUSED pc = abuf->addr;
6638 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6640 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6643 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6645 SI opval = frvbf_read_mem_UHI (current_cpu, pc, tmp_address);
6646 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
6647 written |= (1 << 5);
6648 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
6651 SI opval = tmp_address;
6652 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6653 written |= (1 << 6);
6654 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6659 abuf->written = written;
6664 /* cldfu: cldfu$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6667 SEM_FN_NAME (frvbf,cldfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6669 #define FLD(f) abuf->fields.sfmt_cldbfu.f
6670 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6671 int UNUSED written = 0;
6672 IADDR UNUSED pc = abuf->addr;
6673 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6675 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6678 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6680 SI opval = frvbf_read_mem_SI (current_cpu, pc, tmp_address);
6681 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
6682 written |= (1 << 5);
6683 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
6686 SI opval = tmp_address;
6687 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6688 written |= (1 << 6);
6689 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6694 abuf->written = written;
6699 /* clddu: clddu$pack @($GRi,$GRj),$GRdoublek,$CCi,$cond */
6702 SEM_FN_NAME (frvbf,clddu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6704 #define FLD(f) abuf->fields.sfmt_clddu.f
6705 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6706 int UNUSED written = 0;
6707 IADDR UNUSED pc = abuf->addr;
6708 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6710 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6713 if (NESI (FLD (f_GRk), 0)) {
6715 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6717 DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
6718 sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
6719 written |= (1 << 7);
6720 TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
6724 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
6726 SI opval = tmp_address;
6727 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6728 written |= (1 << 8);
6729 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6735 abuf->written = written;
6740 /* clddfu: clddfu$pack @($GRi,$GRj),$FRdoublek,$CCi,$cond */
6743 SEM_FN_NAME (frvbf,clddfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6745 #define FLD(f) abuf->fields.sfmt_clddfu.f
6746 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6747 int UNUSED written = 0;
6748 IADDR UNUSED pc = abuf->addr;
6749 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6751 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6755 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6757 DF opval = frvbf_read_mem_DF (current_cpu, pc, tmp_address);
6758 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
6759 written |= (1 << 5);
6760 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
6764 SI opval = tmp_address;
6765 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6766 written |= (1 << 6);
6767 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6772 abuf->written = written;
6777 /* cldqu: cldqu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6780 SEM_FN_NAME (frvbf,cldqu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6782 #define FLD(f) abuf->fields.sfmt_cstdu.f
6783 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6784 int UNUSED written = 0;
6785 IADDR UNUSED pc = abuf->addr;
6786 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6788 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6792 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6793 frvbf_load_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
6795 if (NESI (FLD (f_GRi), FLD (f_GRk))) {
6797 SI opval = tmp_address;
6798 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6799 written |= (1 << 7);
6800 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6806 abuf->written = written;
6811 /* cstb: cstb$pack $GRk,@($GRi,$GRj),$CCi,$cond */
6814 SEM_FN_NAME (frvbf,cstb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6816 #define FLD(f) abuf->fields.sfmt_cswap.f
6817 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6818 int UNUSED written = 0;
6819 IADDR UNUSED pc = abuf->addr;
6820 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6822 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6823 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)));
6830 /* csth: csth$pack $GRk,@($GRi,$GRj),$CCi,$cond */
6833 SEM_FN_NAME (frvbf,csth) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6835 #define FLD(f) abuf->fields.sfmt_cswap.f
6836 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6837 int UNUSED written = 0;
6838 IADDR UNUSED pc = abuf->addr;
6839 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6841 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6842 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)));
6849 /* cst: cst$pack $GRk,@($GRi,$GRj),$CCi,$cond */
6852 SEM_FN_NAME (frvbf,cst) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6854 #define FLD(f) abuf->fields.sfmt_cswap.f
6855 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6856 int UNUSED written = 0;
6857 IADDR UNUSED pc = abuf->addr;
6858 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6860 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6861 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)));
6868 /* cstbf: cstbf$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
6871 SEM_FN_NAME (frvbf,cstbf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6873 #define FLD(f) abuf->fields.sfmt_cstbfu.f
6874 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6875 int UNUSED written = 0;
6876 IADDR UNUSED pc = abuf->addr;
6877 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6879 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6880 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)));
6887 /* csthf: csthf$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
6890 SEM_FN_NAME (frvbf,csthf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6892 #define FLD(f) abuf->fields.sfmt_cstbfu.f
6893 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6894 int UNUSED written = 0;
6895 IADDR UNUSED pc = abuf->addr;
6896 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6898 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6899 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)));
6906 /* cstf: cstf$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
6909 SEM_FN_NAME (frvbf,cstf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6911 #define FLD(f) abuf->fields.sfmt_cstbfu.f
6912 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6913 int UNUSED written = 0;
6914 IADDR UNUSED pc = abuf->addr;
6915 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6917 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6918 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)));
6925 /* cstd: cstd$pack $GRdoublek,@($GRi,$GRj),$CCi,$cond */
6928 SEM_FN_NAME (frvbf,cstd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6930 #define FLD(f) abuf->fields.sfmt_cstdu.f
6931 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6932 int UNUSED written = 0;
6933 IADDR UNUSED pc = abuf->addr;
6934 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6936 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6940 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6941 frvbf_write_mem_DI (current_cpu, pc, tmp_address, GET_H_GR_DOUBLE (FLD (f_GRk)));
6950 /* cstdf: cstdf$pack $FRdoublek,@($GRi,$GRj),$CCi,$cond */
6953 SEM_FN_NAME (frvbf,cstdf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6955 #define FLD(f) abuf->fields.sfmt_cstdfu.f
6956 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6957 int UNUSED written = 0;
6958 IADDR UNUSED pc = abuf->addr;
6959 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6961 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6965 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6966 frvbf_write_mem_DF (current_cpu, pc, tmp_address, GET_H_FR_DOUBLE (FLD (f_FRk)));
6975 /* cstq: cstq$pack $GRk,@($GRi,$GRj),$CCi,$cond */
6978 SEM_FN_NAME (frvbf,cstq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6980 #define FLD(f) abuf->fields.sfmt_cswap.f
6981 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6982 int UNUSED written = 0;
6983 IADDR UNUSED pc = abuf->addr;
6984 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6986 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6990 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6991 frvbf_store_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
7000 /* cstbu: cstbu$pack $GRk,@($GRi,$GRj),$CCi,$cond */
7003 SEM_FN_NAME (frvbf,cstbu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7005 #define FLD(f) abuf->fields.sfmt_cstbu.f
7006 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7007 int UNUSED written = 0;
7008 IADDR UNUSED pc = abuf->addr;
7009 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7011 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7014 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7015 frvbf_write_mem_QI (current_cpu, pc, tmp_address, GET_H_GR (FLD (f_GRk)));
7017 SI opval = tmp_address;
7018 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
7019 written |= (1 << 6);
7020 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7025 abuf->written = written;
7030 /* csthu: csthu$pack $GRk,@($GRi,$GRj),$CCi,$cond */
7033 SEM_FN_NAME (frvbf,csthu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7035 #define FLD(f) abuf->fields.sfmt_cstbu.f
7036 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7037 int UNUSED written = 0;
7038 IADDR UNUSED pc = abuf->addr;
7039 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7041 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7044 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7045 frvbf_write_mem_HI (current_cpu, pc, tmp_address, GET_H_GR (FLD (f_GRk)));
7047 SI opval = tmp_address;
7048 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
7049 written |= (1 << 6);
7050 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7055 abuf->written = written;
7060 /* cstu: cstu$pack $GRk,@($GRi,$GRj),$CCi,$cond */
7063 SEM_FN_NAME (frvbf,cstu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7065 #define FLD(f) abuf->fields.sfmt_cstbu.f
7066 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7067 int UNUSED written = 0;
7068 IADDR UNUSED pc = abuf->addr;
7069 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7071 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7074 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7075 frvbf_write_mem_SI (current_cpu, pc, tmp_address, GET_H_GR (FLD (f_GRk)));
7077 SI opval = tmp_address;
7078 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
7079 written |= (1 << 6);
7080 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7085 abuf->written = written;
7090 /* cstbfu: cstbfu$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
7093 SEM_FN_NAME (frvbf,cstbfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7095 #define FLD(f) abuf->fields.sfmt_cstbfu.f
7096 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7097 int UNUSED written = 0;
7098 IADDR UNUSED pc = abuf->addr;
7099 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7101 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7104 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7105 frvbf_write_mem_QI (current_cpu, pc, tmp_address, GET_H_FR_INT (FLD (f_FRk)));
7107 SI opval = tmp_address;
7108 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
7109 written |= (1 << 6);
7110 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7115 abuf->written = written;
7120 /* csthfu: csthfu$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
7123 SEM_FN_NAME (frvbf,csthfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7125 #define FLD(f) abuf->fields.sfmt_cstbfu.f
7126 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7127 int UNUSED written = 0;
7128 IADDR UNUSED pc = abuf->addr;
7129 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7131 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7134 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7135 frvbf_write_mem_HI (current_cpu, pc, tmp_address, GET_H_FR_INT (FLD (f_FRk)));
7137 SI opval = tmp_address;
7138 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
7139 written |= (1 << 6);
7140 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7145 abuf->written = written;
7150 /* cstfu: cstfu$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
7153 SEM_FN_NAME (frvbf,cstfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7155 #define FLD(f) abuf->fields.sfmt_cstbfu.f
7156 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7157 int UNUSED written = 0;
7158 IADDR UNUSED pc = abuf->addr;
7159 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7161 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7164 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7165 frvbf_write_mem_SI (current_cpu, pc, tmp_address, GET_H_FR_INT (FLD (f_FRk)));
7167 SI opval = tmp_address;
7168 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
7169 written |= (1 << 6);
7170 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7175 abuf->written = written;
7180 /* cstdu: cstdu$pack $GRdoublek,@($GRi,$GRj),$CCi,$cond */
7183 SEM_FN_NAME (frvbf,cstdu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7185 #define FLD(f) abuf->fields.sfmt_cstdu.f
7186 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7187 int UNUSED written = 0;
7188 IADDR UNUSED pc = abuf->addr;
7189 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7191 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7195 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7196 frvbf_write_mem_DI (current_cpu, pc, tmp_address, GET_H_GR_DOUBLE (FLD (f_GRk)));
7199 SI opval = tmp_address;
7200 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
7201 written |= (1 << 6);
7202 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7207 abuf->written = written;
7212 /* cstdfu: cstdfu$pack $FRdoublek,@($GRi,$GRj),$CCi,$cond */
7215 SEM_FN_NAME (frvbf,cstdfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7217 #define FLD(f) abuf->fields.sfmt_cstdfu.f
7218 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7219 int UNUSED written = 0;
7220 IADDR UNUSED pc = abuf->addr;
7221 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7223 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7227 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7228 frvbf_write_mem_DF (current_cpu, pc, tmp_address, GET_H_FR_DOUBLE (FLD (f_FRk)));
7231 SI opval = tmp_address;
7232 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
7233 written |= (1 << 6);
7234 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7239 abuf->written = written;
7244 /* stbi: stbi$pack $GRk,@($GRi,$d12) */
7247 SEM_FN_NAME (frvbf,stbi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7249 #define FLD(f) abuf->fields.sfmt_swapi.f
7250 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7251 int UNUSED written = 0;
7252 IADDR UNUSED pc = abuf->addr;
7253 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7255 frvbf_write_mem_QI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), GET_H_GR (FLD (f_GRk)));
7261 /* sthi: sthi$pack $GRk,@($GRi,$d12) */
7264 SEM_FN_NAME (frvbf,sthi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7266 #define FLD(f) abuf->fields.sfmt_swapi.f
7267 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7268 int UNUSED written = 0;
7269 IADDR UNUSED pc = abuf->addr;
7270 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7272 frvbf_write_mem_HI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), GET_H_GR (FLD (f_GRk)));
7278 /* sti: sti$pack $GRk,@($GRi,$d12) */
7281 SEM_FN_NAME (frvbf,sti) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7283 #define FLD(f) abuf->fields.sfmt_swapi.f
7284 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7285 int UNUSED written = 0;
7286 IADDR UNUSED pc = abuf->addr;
7287 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7289 frvbf_write_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), GET_H_GR (FLD (f_GRk)));
7295 /* stbfi: stbfi$pack $FRintk,@($GRi,$d12) */
7298 SEM_FN_NAME (frvbf,stbfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7300 #define FLD(f) abuf->fields.sfmt_stbfi.f
7301 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7302 int UNUSED written = 0;
7303 IADDR UNUSED pc = abuf->addr;
7304 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7306 frvbf_write_mem_QI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), GET_H_FR_INT (FLD (f_FRk)));
7312 /* sthfi: sthfi$pack $FRintk,@($GRi,$d12) */
7315 SEM_FN_NAME (frvbf,sthfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7317 #define FLD(f) abuf->fields.sfmt_stbfi.f
7318 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7319 int UNUSED written = 0;
7320 IADDR UNUSED pc = abuf->addr;
7321 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7323 frvbf_write_mem_HI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), GET_H_FR_INT (FLD (f_FRk)));
7329 /* stfi: stfi$pack $FRintk,@($GRi,$d12) */
7332 SEM_FN_NAME (frvbf,stfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7334 #define FLD(f) abuf->fields.sfmt_stbfi.f
7335 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7336 int UNUSED written = 0;
7337 IADDR UNUSED pc = abuf->addr;
7338 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7340 frvbf_write_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), GET_H_FR_INT (FLD (f_FRk)));
7346 /* stdi: stdi$pack $GRdoublek,@($GRi,$d12) */
7349 SEM_FN_NAME (frvbf,stdi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7351 #define FLD(f) abuf->fields.sfmt_stdi.f
7352 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7353 int UNUSED written = 0;
7354 IADDR UNUSED pc = abuf->addr;
7355 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7360 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
7361 frvbf_write_mem_DI (current_cpu, pc, tmp_address, GET_H_GR_DOUBLE (FLD (f_GRk)));
7369 /* stdfi: stdfi$pack $FRdoublek,@($GRi,$d12) */
7372 SEM_FN_NAME (frvbf,stdfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7374 #define FLD(f) abuf->fields.sfmt_stdfi.f
7375 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7376 int UNUSED written = 0;
7377 IADDR UNUSED pc = abuf->addr;
7378 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7383 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
7384 frvbf_write_mem_DF (current_cpu, pc, tmp_address, GET_H_FR_DOUBLE (FLD (f_FRk)));
7392 /* stqi: stqi$pack $GRk,@($GRi,$d12) */
7395 SEM_FN_NAME (frvbf,stqi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7397 #define FLD(f) abuf->fields.sfmt_stdi.f
7398 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7399 int UNUSED written = 0;
7400 IADDR UNUSED pc = abuf->addr;
7401 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7406 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
7407 frvbf_store_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
7415 /* stqfi: stqfi$pack $FRintk,@($GRi,$d12) */
7418 SEM_FN_NAME (frvbf,stqfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7420 #define FLD(f) abuf->fields.sfmt_stdfi.f
7421 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7422 int UNUSED written = 0;
7423 IADDR UNUSED pc = abuf->addr;
7424 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7429 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
7430 frvbf_store_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
7438 /* swap: swap$pack @($GRi,$GRj),$GRk */
7441 SEM_FN_NAME (frvbf,swap) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7443 #define FLD(f) abuf->fields.sfmt_cswap.f
7444 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7445 int UNUSED written = 0;
7446 IADDR UNUSED pc = abuf->addr;
7447 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7452 tmp_tmp = GET_H_GR (FLD (f_GRk));
7453 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7454 frvbf_check_swap_address (current_cpu, tmp_address);
7456 SI opval = frvbf_read_mem_WI (current_cpu, pc, tmp_address);
7457 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
7458 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7460 frvbf_write_mem_WI (current_cpu, pc, tmp_address, tmp_tmp);
7467 /* swapi: swapi$pack @($GRi,$d12),$GRk */
7470 SEM_FN_NAME (frvbf,swapi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7472 #define FLD(f) abuf->fields.sfmt_swapi.f
7473 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7474 int UNUSED written = 0;
7475 IADDR UNUSED pc = abuf->addr;
7476 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7481 tmp_tmp = GET_H_GR (FLD (f_GRk));
7482 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
7483 frvbf_check_swap_address (current_cpu, tmp_address);
7485 SI opval = frvbf_read_mem_WI (current_cpu, pc, tmp_address);
7486 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
7487 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7489 frvbf_write_mem_WI (current_cpu, pc, tmp_address, tmp_tmp);
7496 /* cswap: cswap$pack @($GRi,$GRj),$GRk,$CCi,$cond */
7499 SEM_FN_NAME (frvbf,cswap) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7501 #define FLD(f) abuf->fields.sfmt_cswap.f
7502 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7503 int UNUSED written = 0;
7504 IADDR UNUSED pc = abuf->addr;
7505 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7507 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7511 tmp_tmp = GET_H_GR (FLD (f_GRk));
7512 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7513 frvbf_check_swap_address (current_cpu, tmp_address);
7515 SI opval = frvbf_read_mem_WI (current_cpu, pc, tmp_address);
7516 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
7517 written |= (1 << 6);
7518 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7520 frvbf_write_mem_WI (current_cpu, pc, tmp_address, tmp_tmp);
7524 abuf->written = written;
7529 /* movgf: movgf$pack $GRj,$FRintk */
7532 SEM_FN_NAME (frvbf,movgf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7534 #define FLD(f) abuf->fields.sfmt_cmovgfd.f
7535 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7536 int UNUSED written = 0;
7537 IADDR UNUSED pc = abuf->addr;
7538 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7541 SI opval = GET_H_GR (FLD (f_GRj));
7542 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
7543 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7550 /* movfg: movfg$pack $FRintk,$GRj */
7553 SEM_FN_NAME (frvbf,movfg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7555 #define FLD(f) abuf->fields.sfmt_cmovfgd.f
7556 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7557 int UNUSED written = 0;
7558 IADDR UNUSED pc = abuf->addr;
7559 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7562 SI opval = GET_H_FR_INT (FLD (f_FRk));
7563 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRj), opval);
7564 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7571 /* movgfd: movgfd$pack $GRj,$FRintk */
7574 SEM_FN_NAME (frvbf,movgfd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7576 #define FLD(f) abuf->fields.sfmt_cmovgfd.f
7577 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7578 int UNUSED written = 0;
7579 IADDR UNUSED pc = abuf->addr;
7580 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7582 if (EQSI (FLD (f_GRj), 0)) {
7586 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
7587 written |= (1 << 4);
7588 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7592 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
7593 written |= (1 << 5);
7594 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7600 SI opval = GET_H_GR (FLD (f_GRj));
7601 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
7602 written |= (1 << 4);
7603 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7606 USI opval = GET_H_GR (((FLD (f_GRj)) + (1)));
7607 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
7608 written |= (1 << 5);
7609 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7614 abuf->written = written;
7619 /* movfgd: movfgd$pack $FRintk,$GRj */
7622 SEM_FN_NAME (frvbf,movfgd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7624 #define FLD(f) abuf->fields.sfmt_cmovfgd.f
7625 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7626 int UNUSED written = 0;
7627 IADDR UNUSED pc = abuf->addr;
7628 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7630 if (NESI (FLD (f_GRj), 0)) {
7633 SI opval = GET_H_FR_INT (FLD (f_FRk));
7634 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRj), opval);
7635 written |= (1 << 4);
7636 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7639 USI opval = GET_H_FR_INT (((FLD (f_FRk)) + (1)));
7640 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, ((FLD (f_GRj)) + (1)), opval);
7641 written |= (1 << 5);
7642 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7647 abuf->written = written;
7652 /* movgfq: movgfq$pack $GRj,$FRintk */
7655 SEM_FN_NAME (frvbf,movgfq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7657 #define FLD(f) abuf->fields.sfmt_movgfq.f
7658 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7659 int UNUSED written = 0;
7660 IADDR UNUSED pc = abuf->addr;
7661 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7663 if (EQSI (FLD (f_GRj), 0)) {
7667 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
7668 written |= (1 << 6);
7669 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7673 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
7674 written |= (1 << 7);
7675 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7679 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (2)), opval);
7680 written |= (1 << 8);
7681 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7685 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (3)), opval);
7686 written |= (1 << 9);
7687 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7693 SI opval = GET_H_GR (FLD (f_GRj));
7694 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
7695 written |= (1 << 6);
7696 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7699 USI opval = GET_H_GR (((FLD (f_GRj)) + (1)));
7700 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
7701 written |= (1 << 7);
7702 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7705 USI opval = GET_H_GR (((FLD (f_GRj)) + (2)));
7706 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (2)), opval);
7707 written |= (1 << 8);
7708 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7711 USI opval = GET_H_GR (((FLD (f_GRj)) + (3)));
7712 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (3)), opval);
7713 written |= (1 << 9);
7714 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7719 abuf->written = written;
7724 /* movfgq: movfgq$pack $FRintk,$GRj */
7727 SEM_FN_NAME (frvbf,movfgq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7729 #define FLD(f) abuf->fields.sfmt_movfgq.f
7730 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7731 int UNUSED written = 0;
7732 IADDR UNUSED pc = abuf->addr;
7733 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7735 if (NESI (FLD (f_GRj), 0)) {
7738 SI opval = GET_H_FR_INT (FLD (f_FRk));
7739 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRj), opval);
7740 written |= (1 << 6);
7741 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7744 USI opval = GET_H_FR_INT (((FLD (f_FRk)) + (1)));
7745 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, ((FLD (f_GRj)) + (1)), opval);
7746 written |= (1 << 7);
7747 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7750 USI opval = GET_H_FR_INT (((FLD (f_FRk)) + (2)));
7751 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, ((FLD (f_GRj)) + (2)), opval);
7752 written |= (1 << 8);
7753 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7756 USI opval = GET_H_FR_INT (((FLD (f_FRk)) + (3)));
7757 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, ((FLD (f_GRj)) + (3)), opval);
7758 written |= (1 << 9);
7759 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7764 abuf->written = written;
7769 /* cmovgf: cmovgf$pack $GRj,$FRintk,$CCi,$cond */
7772 SEM_FN_NAME (frvbf,cmovgf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7774 #define FLD(f) abuf->fields.sfmt_cmovgfd.f
7775 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7776 int UNUSED written = 0;
7777 IADDR UNUSED pc = abuf->addr;
7778 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7780 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7782 SI opval = GET_H_GR (FLD (f_GRj));
7783 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
7784 written |= (1 << 3);
7785 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7789 abuf->written = written;
7794 /* cmovfg: cmovfg$pack $FRintk,$GRj,$CCi,$cond */
7797 SEM_FN_NAME (frvbf,cmovfg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7799 #define FLD(f) abuf->fields.sfmt_cmovfgd.f
7800 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7801 int UNUSED written = 0;
7802 IADDR UNUSED pc = abuf->addr;
7803 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7805 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7807 SI opval = GET_H_FR_INT (FLD (f_FRk));
7808 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRj), opval);
7809 written |= (1 << 3);
7810 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7814 abuf->written = written;
7819 /* cmovgfd: cmovgfd$pack $GRj,$FRintk,$CCi,$cond */
7822 SEM_FN_NAME (frvbf,cmovgfd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7824 #define FLD(f) abuf->fields.sfmt_cmovgfd.f
7825 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7826 int UNUSED written = 0;
7827 IADDR UNUSED pc = abuf->addr;
7828 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7830 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7831 if (EQSI (FLD (f_GRj), 0)) {
7835 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
7836 written |= (1 << 6);
7837 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7841 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
7842 written |= (1 << 7);
7843 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7849 SI opval = GET_H_GR (FLD (f_GRj));
7850 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
7851 written |= (1 << 6);
7852 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7855 USI opval = GET_H_GR (((FLD (f_GRj)) + (1)));
7856 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
7857 written |= (1 << 7);
7858 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7864 abuf->written = written;
7869 /* cmovfgd: cmovfgd$pack $FRintk,$GRj,$CCi,$cond */
7872 SEM_FN_NAME (frvbf,cmovfgd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7874 #define FLD(f) abuf->fields.sfmt_cmovfgd.f
7875 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7876 int UNUSED written = 0;
7877 IADDR UNUSED pc = abuf->addr;
7878 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7880 if (ANDIF (NESI (FLD (f_GRj), 0), EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2)))) {
7883 SI opval = GET_H_FR_INT (FLD (f_FRk));
7884 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRj), opval);
7885 written |= (1 << 6);
7886 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7889 USI opval = GET_H_FR_INT (((FLD (f_FRk)) + (1)));
7890 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, ((FLD (f_GRj)) + (1)), opval);
7891 written |= (1 << 7);
7892 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7897 abuf->written = written;
7902 /* movgs: movgs$pack $GRj,$spr */
7905 SEM_FN_NAME (frvbf,movgs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7907 #define FLD(f) abuf->fields.sfmt_movgs.f
7908 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7909 int UNUSED written = 0;
7910 IADDR UNUSED pc = abuf->addr;
7911 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7914 USI opval = GET_H_GR (FLD (f_GRj));
7915 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, FLD (f_spr), opval);
7916 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
7923 /* movsg: movsg$pack $spr,$GRj */
7926 SEM_FN_NAME (frvbf,movsg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7928 #define FLD(f) abuf->fields.sfmt_movsg.f
7929 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7930 int UNUSED written = 0;
7931 IADDR UNUSED pc = abuf->addr;
7932 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7935 SI opval = GET_H_SPR (FLD (f_spr));
7936 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRj), opval);
7937 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7944 /* bra: bra$pack $hint_taken$label16 */
7947 SEM_FN_NAME (frvbf,bra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7949 #define FLD(f) abuf->fields.sfmt_fbne.f
7950 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7951 int UNUSED written = 0;
7952 IADDR UNUSED pc = abuf->addr;
7953 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7956 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
7958 USI opval = FLD (i_label16);
7959 sim_queue_pc_write (current_cpu, opval);
7960 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
7968 /* bno: bno$pack$hint_not_taken */
7971 SEM_FN_NAME (frvbf,bno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7973 #define FLD(f) abuf->fields.sfmt_fbne.f
7974 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7975 int UNUSED written = 0;
7976 IADDR UNUSED pc = abuf->addr;
7977 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7979 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
7985 /* beq: beq$pack $ICCi_2,$hint,$label16 */
7988 SEM_FN_NAME (frvbf,beq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7990 #define FLD(f) abuf->fields.sfmt_beq.f
7991 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7992 int UNUSED written = 0;
7993 IADDR UNUSED pc = abuf->addr;
7994 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7997 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
7998 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2))) {
8000 USI opval = FLD (i_label16);
8001 sim_queue_pc_write (current_cpu, opval);
8002 written |= (1 << 3);
8003 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8008 abuf->written = written;
8013 /* bne: bne$pack $ICCi_2,$hint,$label16 */
8016 SEM_FN_NAME (frvbf,bne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8018 #define FLD(f) abuf->fields.sfmt_beq.f
8019 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8020 int UNUSED written = 0;
8021 IADDR UNUSED pc = abuf->addr;
8022 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8025 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8026 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
8028 USI opval = FLD (i_label16);
8029 sim_queue_pc_write (current_cpu, opval);
8030 written |= (1 << 3);
8031 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8036 abuf->written = written;
8041 /* ble: ble$pack $ICCi_2,$hint,$label16 */
8044 SEM_FN_NAME (frvbf,ble) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8046 #define FLD(f) abuf->fields.sfmt_beq.f
8047 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8048 int UNUSED written = 0;
8049 IADDR UNUSED pc = abuf->addr;
8050 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8053 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8054 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))))) {
8056 USI opval = FLD (i_label16);
8057 sim_queue_pc_write (current_cpu, opval);
8058 written |= (1 << 3);
8059 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8064 abuf->written = written;
8069 /* bgt: bgt$pack $ICCi_2,$hint,$label16 */
8072 SEM_FN_NAME (frvbf,bgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8074 #define FLD(f) abuf->fields.sfmt_beq.f
8075 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8076 int UNUSED written = 0;
8077 IADDR UNUSED pc = abuf->addr;
8078 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8081 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8082 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)))))) {
8084 USI opval = FLD (i_label16);
8085 sim_queue_pc_write (current_cpu, opval);
8086 written |= (1 << 3);
8087 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8092 abuf->written = written;
8097 /* blt: blt$pack $ICCi_2,$hint,$label16 */
8100 SEM_FN_NAME (frvbf,blt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8102 #define FLD(f) abuf->fields.sfmt_beq.f
8103 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8104 int UNUSED written = 0;
8105 IADDR UNUSED pc = abuf->addr;
8106 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8109 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8110 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)))) {
8112 USI opval = FLD (i_label16);
8113 sim_queue_pc_write (current_cpu, opval);
8114 written |= (1 << 3);
8115 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8120 abuf->written = written;
8125 /* bge: bge$pack $ICCi_2,$hint,$label16 */
8128 SEM_FN_NAME (frvbf,bge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8130 #define FLD(f) abuf->fields.sfmt_beq.f
8131 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8132 int UNUSED written = 0;
8133 IADDR UNUSED pc = abuf->addr;
8134 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8137 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8138 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))))) {
8140 USI opval = FLD (i_label16);
8141 sim_queue_pc_write (current_cpu, opval);
8142 written |= (1 << 3);
8143 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8148 abuf->written = written;
8153 /* bls: bls$pack $ICCi_2,$hint,$label16 */
8156 SEM_FN_NAME (frvbf,bls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8158 #define FLD(f) abuf->fields.sfmt_beq.f
8159 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8160 int UNUSED written = 0;
8161 IADDR UNUSED pc = abuf->addr;
8162 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8165 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8166 if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
8168 USI opval = FLD (i_label16);
8169 sim_queue_pc_write (current_cpu, opval);
8170 written |= (1 << 3);
8171 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8176 abuf->written = written;
8181 /* bhi: bhi$pack $ICCi_2,$hint,$label16 */
8184 SEM_FN_NAME (frvbf,bhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8186 #define FLD(f) abuf->fields.sfmt_beq.f
8187 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8188 int UNUSED written = 0;
8189 IADDR UNUSED pc = abuf->addr;
8190 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8193 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8194 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))))) {
8196 USI opval = FLD (i_label16);
8197 sim_queue_pc_write (current_cpu, opval);
8198 written |= (1 << 3);
8199 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8204 abuf->written = written;
8209 /* bc: bc$pack $ICCi_2,$hint,$label16 */
8212 SEM_FN_NAME (frvbf,bc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8214 #define FLD(f) abuf->fields.sfmt_beq.f
8215 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8216 int UNUSED written = 0;
8217 IADDR UNUSED pc = abuf->addr;
8218 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8221 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8222 if (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1))) {
8224 USI opval = FLD (i_label16);
8225 sim_queue_pc_write (current_cpu, opval);
8226 written |= (1 << 3);
8227 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8232 abuf->written = written;
8237 /* bnc: bnc$pack $ICCi_2,$hint,$label16 */
8240 SEM_FN_NAME (frvbf,bnc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8242 #define FLD(f) abuf->fields.sfmt_beq.f
8243 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8244 int UNUSED written = 0;
8245 IADDR UNUSED pc = abuf->addr;
8246 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8249 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8250 if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)))) {
8252 USI opval = FLD (i_label16);
8253 sim_queue_pc_write (current_cpu, opval);
8254 written |= (1 << 3);
8255 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8260 abuf->written = written;
8265 /* bn: bn$pack $ICCi_2,$hint,$label16 */
8268 SEM_FN_NAME (frvbf,bn) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8270 #define FLD(f) abuf->fields.sfmt_beq.f
8271 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8272 int UNUSED written = 0;
8273 IADDR UNUSED pc = abuf->addr;
8274 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8277 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8278 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3))) {
8280 USI opval = FLD (i_label16);
8281 sim_queue_pc_write (current_cpu, opval);
8282 written |= (1 << 3);
8283 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8288 abuf->written = written;
8293 /* bp: bp$pack $ICCi_2,$hint,$label16 */
8296 SEM_FN_NAME (frvbf,bp) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8298 #define FLD(f) abuf->fields.sfmt_beq.f
8299 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8300 int UNUSED written = 0;
8301 IADDR UNUSED pc = abuf->addr;
8302 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8305 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8306 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3)))) {
8308 USI opval = FLD (i_label16);
8309 sim_queue_pc_write (current_cpu, opval);
8310 written |= (1 << 3);
8311 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8316 abuf->written = written;
8321 /* bv: bv$pack $ICCi_2,$hint,$label16 */
8324 SEM_FN_NAME (frvbf,bv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8326 #define FLD(f) abuf->fields.sfmt_beq.f
8327 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8328 int UNUSED written = 0;
8329 IADDR UNUSED pc = abuf->addr;
8330 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8333 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8334 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1))) {
8336 USI opval = FLD (i_label16);
8337 sim_queue_pc_write (current_cpu, opval);
8338 written |= (1 << 3);
8339 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8344 abuf->written = written;
8349 /* bnv: bnv$pack $ICCi_2,$hint,$label16 */
8352 SEM_FN_NAME (frvbf,bnv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8354 #define FLD(f) abuf->fields.sfmt_beq.f
8355 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8356 int UNUSED written = 0;
8357 IADDR UNUSED pc = abuf->addr;
8358 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8361 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8362 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1)))) {
8364 USI opval = FLD (i_label16);
8365 sim_queue_pc_write (current_cpu, opval);
8366 written |= (1 << 3);
8367 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8372 abuf->written = written;
8377 /* fbra: fbra$pack $hint_taken$label16 */
8380 SEM_FN_NAME (frvbf,fbra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8382 #define FLD(f) abuf->fields.sfmt_fbne.f
8383 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8384 int UNUSED written = 0;
8385 IADDR UNUSED pc = abuf->addr;
8386 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8389 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8391 USI opval = FLD (i_label16);
8392 sim_queue_pc_write (current_cpu, opval);
8393 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8401 /* fbno: fbno$pack$hint_not_taken */
8404 SEM_FN_NAME (frvbf,fbno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8406 #define FLD(f) abuf->fields.sfmt_fbne.f
8407 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8408 int UNUSED written = 0;
8409 IADDR UNUSED pc = abuf->addr;
8410 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8412 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8418 /* fbne: fbne$pack $FCCi_2,$hint,$label16 */
8421 SEM_FN_NAME (frvbf,fbne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8423 #define FLD(f) abuf->fields.sfmt_fbne.f
8424 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8425 int UNUSED written = 0;
8426 IADDR UNUSED pc = abuf->addr;
8427 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8430 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8431 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))))) {
8433 USI opval = FLD (i_label16);
8434 sim_queue_pc_write (current_cpu, opval);
8435 written |= (1 << 3);
8436 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8441 abuf->written = written;
8446 /* fbeq: fbeq$pack $FCCi_2,$hint,$label16 */
8449 SEM_FN_NAME (frvbf,fbeq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8451 #define FLD(f) abuf->fields.sfmt_fbne.f
8452 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8453 int UNUSED written = 0;
8454 IADDR UNUSED pc = abuf->addr;
8455 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8458 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8459 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3))) {
8461 USI opval = FLD (i_label16);
8462 sim_queue_pc_write (current_cpu, opval);
8463 written |= (1 << 3);
8464 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8469 abuf->written = written;
8474 /* fblg: fblg$pack $FCCi_2,$hint,$label16 */
8477 SEM_FN_NAME (frvbf,fblg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8479 #define FLD(f) abuf->fields.sfmt_fbne.f
8480 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8481 int UNUSED written = 0;
8482 IADDR UNUSED pc = abuf->addr;
8483 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8486 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8487 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)))) {
8489 USI opval = FLD (i_label16);
8490 sim_queue_pc_write (current_cpu, opval);
8491 written |= (1 << 3);
8492 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8497 abuf->written = written;
8502 /* fbue: fbue$pack $FCCi_2,$hint,$label16 */
8505 SEM_FN_NAME (frvbf,fbue) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8507 #define FLD(f) abuf->fields.sfmt_fbne.f
8508 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8509 int UNUSED written = 0;
8510 IADDR UNUSED pc = abuf->addr;
8511 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8514 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8515 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
8517 USI opval = FLD (i_label16);
8518 sim_queue_pc_write (current_cpu, opval);
8519 written |= (1 << 3);
8520 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8525 abuf->written = written;
8530 /* fbul: fbul$pack $FCCi_2,$hint,$label16 */
8533 SEM_FN_NAME (frvbf,fbul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8535 #define FLD(f) abuf->fields.sfmt_fbne.f
8536 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8537 int UNUSED written = 0;
8538 IADDR UNUSED pc = abuf->addr;
8539 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8542 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8543 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
8545 USI opval = FLD (i_label16);
8546 sim_queue_pc_write (current_cpu, opval);
8547 written |= (1 << 3);
8548 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8553 abuf->written = written;
8558 /* fbge: fbge$pack $FCCi_2,$hint,$label16 */
8561 SEM_FN_NAME (frvbf,fbge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8563 #define FLD(f) abuf->fields.sfmt_fbne.f
8564 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8565 int UNUSED written = 0;
8566 IADDR UNUSED pc = abuf->addr;
8567 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8570 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8571 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)))) {
8573 USI opval = FLD (i_label16);
8574 sim_queue_pc_write (current_cpu, opval);
8575 written |= (1 << 3);
8576 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8581 abuf->written = written;
8586 /* fblt: fblt$pack $FCCi_2,$hint,$label16 */
8589 SEM_FN_NAME (frvbf,fblt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8591 #define FLD(f) abuf->fields.sfmt_fbne.f
8592 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8593 int UNUSED written = 0;
8594 IADDR UNUSED pc = abuf->addr;
8595 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8598 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8599 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2))) {
8601 USI opval = FLD (i_label16);
8602 sim_queue_pc_write (current_cpu, opval);
8603 written |= (1 << 3);
8604 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8609 abuf->written = written;
8614 /* fbuge: fbuge$pack $FCCi_2,$hint,$label16 */
8617 SEM_FN_NAME (frvbf,fbuge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8619 #define FLD(f) abuf->fields.sfmt_fbne.f
8620 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8621 int UNUSED written = 0;
8622 IADDR UNUSED pc = abuf->addr;
8623 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8626 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8627 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))))) {
8629 USI opval = FLD (i_label16);
8630 sim_queue_pc_write (current_cpu, opval);
8631 written |= (1 << 3);
8632 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8637 abuf->written = written;
8642 /* fbug: fbug$pack $FCCi_2,$hint,$label16 */
8645 SEM_FN_NAME (frvbf,fbug) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8647 #define FLD(f) abuf->fields.sfmt_fbne.f
8648 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8649 int UNUSED written = 0;
8650 IADDR UNUSED pc = abuf->addr;
8651 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8654 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8655 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
8657 USI opval = FLD (i_label16);
8658 sim_queue_pc_write (current_cpu, opval);
8659 written |= (1 << 3);
8660 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8665 abuf->written = written;
8670 /* fble: fble$pack $FCCi_2,$hint,$label16 */
8673 SEM_FN_NAME (frvbf,fble) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8675 #define FLD(f) abuf->fields.sfmt_fbne.f
8676 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8677 int UNUSED written = 0;
8678 IADDR UNUSED pc = abuf->addr;
8679 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8682 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8683 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)))) {
8685 USI opval = FLD (i_label16);
8686 sim_queue_pc_write (current_cpu, opval);
8687 written |= (1 << 3);
8688 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8693 abuf->written = written;
8698 /* fbgt: fbgt$pack $FCCi_2,$hint,$label16 */
8701 SEM_FN_NAME (frvbf,fbgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8703 #define FLD(f) abuf->fields.sfmt_fbne.f
8704 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8705 int UNUSED written = 0;
8706 IADDR UNUSED pc = abuf->addr;
8707 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8710 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8711 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1))) {
8713 USI opval = FLD (i_label16);
8714 sim_queue_pc_write (current_cpu, opval);
8715 written |= (1 << 3);
8716 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8721 abuf->written = written;
8726 /* fbule: fbule$pack $FCCi_2,$hint,$label16 */
8729 SEM_FN_NAME (frvbf,fbule) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8731 #define FLD(f) abuf->fields.sfmt_fbne.f
8732 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8733 int UNUSED written = 0;
8734 IADDR UNUSED pc = abuf->addr;
8735 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8738 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8739 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))))) {
8741 USI opval = FLD (i_label16);
8742 sim_queue_pc_write (current_cpu, opval);
8743 written |= (1 << 3);
8744 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8749 abuf->written = written;
8754 /* fbu: fbu$pack $FCCi_2,$hint,$label16 */
8757 SEM_FN_NAME (frvbf,fbu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8759 #define FLD(f) abuf->fields.sfmt_fbne.f
8760 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8761 int UNUSED written = 0;
8762 IADDR UNUSED pc = abuf->addr;
8763 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8766 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8767 if (TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1))) {
8769 USI opval = FLD (i_label16);
8770 sim_queue_pc_write (current_cpu, opval);
8771 written |= (1 << 3);
8772 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8777 abuf->written = written;
8782 /* fbo: fbo$pack $FCCi_2,$hint,$label16 */
8785 SEM_FN_NAME (frvbf,fbo) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8787 #define FLD(f) abuf->fields.sfmt_fbne.f
8788 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8789 int UNUSED written = 0;
8790 IADDR UNUSED pc = abuf->addr;
8791 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8794 frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8795 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))))) {
8797 USI opval = FLD (i_label16);
8798 sim_queue_pc_write (current_cpu, opval);
8799 written |= (1 << 3);
8800 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8805 abuf->written = written;
8810 /* bctrlr: bctrlr$pack $ccond,$hint */
8813 SEM_FN_NAME (frvbf,bctrlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8815 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
8816 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8817 int UNUSED written = 0;
8818 IADDR UNUSED pc = abuf->addr;
8819 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8822 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
8825 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
8827 USI opval = tmp_tmp;
8828 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
8829 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
8831 if (EQSI (FLD (f_ccond), 0)) {
8832 if (NESI (tmp_tmp, 0)) {
8834 USI opval = GET_H_SPR (((UINT) 272));
8835 sim_queue_pc_write (current_cpu, opval);
8836 written |= (1 << 5);
8837 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8841 if (EQSI (tmp_tmp, 0)) {
8843 USI opval = GET_H_SPR (((UINT) 272));
8844 sim_queue_pc_write (current_cpu, opval);
8845 written |= (1 << 5);
8846 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8853 abuf->written = written;
8858 /* bralr: bralr$pack$hint_taken */
8861 SEM_FN_NAME (frvbf,bralr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8863 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
8864 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8865 int UNUSED written = 0;
8866 IADDR UNUSED pc = abuf->addr;
8867 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8870 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
8872 USI opval = GET_H_SPR (((UINT) 272));
8873 sim_queue_pc_write (current_cpu, opval);
8874 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8882 /* bnolr: bnolr$pack$hint_not_taken */
8885 SEM_FN_NAME (frvbf,bnolr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8887 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
8888 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8889 int UNUSED written = 0;
8890 IADDR UNUSED pc = abuf->addr;
8891 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8893 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
8899 /* beqlr: beqlr$pack $ICCi_2,$hint */
8902 SEM_FN_NAME (frvbf,beqlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8904 #define FLD(f) abuf->fields.sfmt_bceqlr.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, GET_H_SPR (((UINT) 272)), FLD (f_hint));
8912 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2))) {
8914 USI opval = GET_H_SPR (((UINT) 272));
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 /* bnelr: bnelr$pack $ICCi_2,$hint */
8930 SEM_FN_NAME (frvbf,bnelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8932 #define FLD(f) abuf->fields.sfmt_bceqlr.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, GET_H_SPR (((UINT) 272)), FLD (f_hint));
8940 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
8942 USI opval = GET_H_SPR (((UINT) 272));
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 /* blelr: blelr$pack $ICCi_2,$hint */
8958 SEM_FN_NAME (frvbf,blelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8960 #define FLD(f) abuf->fields.sfmt_bceqlr.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, GET_H_SPR (((UINT) 272)), FLD (f_hint));
8968 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))))) {
8970 USI opval = GET_H_SPR (((UINT) 272));
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 /* bgtlr: bgtlr$pack $ICCi_2,$hint */
8986 SEM_FN_NAME (frvbf,bgtlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8988 #define FLD(f) abuf->fields.sfmt_bceqlr.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, GET_H_SPR (((UINT) 272)), FLD (f_hint));
8996 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)))))) {
8998 USI opval = GET_H_SPR (((UINT) 272));
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 /* bltlr: bltlr$pack $ICCi_2,$hint */
9014 SEM_FN_NAME (frvbf,bltlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9016 #define FLD(f) abuf->fields.sfmt_bceqlr.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, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9024 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)))) {
9026 USI opval = GET_H_SPR (((UINT) 272));
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 /* bgelr: bgelr$pack $ICCi_2,$hint */
9042 SEM_FN_NAME (frvbf,bgelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9044 #define FLD(f) abuf->fields.sfmt_bceqlr.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));
9052 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))))) {
9054 USI opval = GET_H_SPR (((UINT) 272));
9055 sim_queue_pc_write (current_cpu, opval);
9056 written |= (1 << 3);
9057 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9062 abuf->written = written;
9067 /* blslr: blslr$pack $ICCi_2,$hint */
9070 SEM_FN_NAME (frvbf,blslr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9072 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9073 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9074 int UNUSED written = 0;
9075 IADDR UNUSED pc = abuf->addr;
9076 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9079 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9080 if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
9082 USI opval = GET_H_SPR (((UINT) 272));
9083 sim_queue_pc_write (current_cpu, opval);
9084 written |= (1 << 3);
9085 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9090 abuf->written = written;
9095 /* bhilr: bhilr$pack $ICCi_2,$hint */
9098 SEM_FN_NAME (frvbf,bhilr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9100 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9101 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9102 int UNUSED written = 0;
9103 IADDR UNUSED pc = abuf->addr;
9104 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9107 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9108 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))))) {
9110 USI opval = GET_H_SPR (((UINT) 272));
9111 sim_queue_pc_write (current_cpu, opval);
9112 written |= (1 << 3);
9113 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9118 abuf->written = written;
9123 /* bclr: bclr$pack $ICCi_2,$hint */
9126 SEM_FN_NAME (frvbf,bclr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9128 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9129 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9130 int UNUSED written = 0;
9131 IADDR UNUSED pc = abuf->addr;
9132 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9135 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9136 if (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1))) {
9138 USI opval = GET_H_SPR (((UINT) 272));
9139 sim_queue_pc_write (current_cpu, opval);
9140 written |= (1 << 3);
9141 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9146 abuf->written = written;
9151 /* bnclr: bnclr$pack $ICCi_2,$hint */
9154 SEM_FN_NAME (frvbf,bnclr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9156 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9157 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9158 int UNUSED written = 0;
9159 IADDR UNUSED pc = abuf->addr;
9160 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9163 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9164 if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)))) {
9166 USI opval = GET_H_SPR (((UINT) 272));
9167 sim_queue_pc_write (current_cpu, opval);
9168 written |= (1 << 3);
9169 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9174 abuf->written = written;
9179 /* bnlr: bnlr$pack $ICCi_2,$hint */
9182 SEM_FN_NAME (frvbf,bnlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9184 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9185 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9186 int UNUSED written = 0;
9187 IADDR UNUSED pc = abuf->addr;
9188 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9191 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9192 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3))) {
9194 USI opval = GET_H_SPR (((UINT) 272));
9195 sim_queue_pc_write (current_cpu, opval);
9196 written |= (1 << 3);
9197 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9202 abuf->written = written;
9207 /* bplr: bplr$pack $ICCi_2,$hint */
9210 SEM_FN_NAME (frvbf,bplr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9212 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9213 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9214 int UNUSED written = 0;
9215 IADDR UNUSED pc = abuf->addr;
9216 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9219 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9220 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3)))) {
9222 USI opval = GET_H_SPR (((UINT) 272));
9223 sim_queue_pc_write (current_cpu, opval);
9224 written |= (1 << 3);
9225 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9230 abuf->written = written;
9235 /* bvlr: bvlr$pack $ICCi_2,$hint */
9238 SEM_FN_NAME (frvbf,bvlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9240 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9241 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9242 int UNUSED written = 0;
9243 IADDR UNUSED pc = abuf->addr;
9244 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9247 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9248 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1))) {
9250 USI opval = GET_H_SPR (((UINT) 272));
9251 sim_queue_pc_write (current_cpu, opval);
9252 written |= (1 << 3);
9253 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9258 abuf->written = written;
9263 /* bnvlr: bnvlr$pack $ICCi_2,$hint */
9266 SEM_FN_NAME (frvbf,bnvlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9268 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9269 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9270 int UNUSED written = 0;
9271 IADDR UNUSED pc = abuf->addr;
9272 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9275 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9276 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1)))) {
9278 USI opval = GET_H_SPR (((UINT) 272));
9279 sim_queue_pc_write (current_cpu, opval);
9280 written |= (1 << 3);
9281 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9286 abuf->written = written;
9291 /* fbralr: fbralr$pack$hint_taken */
9294 SEM_FN_NAME (frvbf,fbralr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9296 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9297 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9298 int UNUSED written = 0;
9299 IADDR UNUSED pc = abuf->addr;
9300 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9303 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9305 USI opval = GET_H_SPR (((UINT) 272));
9306 sim_queue_pc_write (current_cpu, opval);
9307 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9315 /* fbnolr: fbnolr$pack$hint_not_taken */
9318 SEM_FN_NAME (frvbf,fbnolr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9320 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9321 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9322 int UNUSED written = 0;
9323 IADDR UNUSED pc = abuf->addr;
9324 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9326 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9332 /* fbeqlr: fbeqlr$pack $FCCi_2,$hint */
9335 SEM_FN_NAME (frvbf,fbeqlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9337 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9338 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9339 int UNUSED written = 0;
9340 IADDR UNUSED pc = abuf->addr;
9341 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9344 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9345 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3))) {
9347 USI opval = GET_H_SPR (((UINT) 272));
9348 sim_queue_pc_write (current_cpu, opval);
9349 written |= (1 << 3);
9350 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9355 abuf->written = written;
9360 /* fbnelr: fbnelr$pack $FCCi_2,$hint */
9363 SEM_FN_NAME (frvbf,fbnelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9365 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9366 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9367 int UNUSED written = 0;
9368 IADDR UNUSED pc = abuf->addr;
9369 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9372 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9373 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))))) {
9375 USI opval = GET_H_SPR (((UINT) 272));
9376 sim_queue_pc_write (current_cpu, opval);
9377 written |= (1 << 3);
9378 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9383 abuf->written = written;
9388 /* fblglr: fblglr$pack $FCCi_2,$hint */
9391 SEM_FN_NAME (frvbf,fblglr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9393 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9394 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9395 int UNUSED written = 0;
9396 IADDR UNUSED pc = abuf->addr;
9397 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9400 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9401 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)))) {
9403 USI opval = GET_H_SPR (((UINT) 272));
9404 sim_queue_pc_write (current_cpu, opval);
9405 written |= (1 << 3);
9406 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9411 abuf->written = written;
9416 /* fbuelr: fbuelr$pack $FCCi_2,$hint */
9419 SEM_FN_NAME (frvbf,fbuelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9421 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9422 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9423 int UNUSED written = 0;
9424 IADDR UNUSED pc = abuf->addr;
9425 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9428 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9429 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
9431 USI opval = GET_H_SPR (((UINT) 272));
9432 sim_queue_pc_write (current_cpu, opval);
9433 written |= (1 << 3);
9434 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9439 abuf->written = written;
9444 /* fbullr: fbullr$pack $FCCi_2,$hint */
9447 SEM_FN_NAME (frvbf,fbullr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9449 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9450 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9451 int UNUSED written = 0;
9452 IADDR UNUSED pc = abuf->addr;
9453 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9456 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9457 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
9459 USI opval = GET_H_SPR (((UINT) 272));
9460 sim_queue_pc_write (current_cpu, opval);
9461 written |= (1 << 3);
9462 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9467 abuf->written = written;
9472 /* fbgelr: fbgelr$pack $FCCi_2,$hint */
9475 SEM_FN_NAME (frvbf,fbgelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9477 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9478 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9479 int UNUSED written = 0;
9480 IADDR UNUSED pc = abuf->addr;
9481 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9484 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9485 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)))) {
9487 USI opval = GET_H_SPR (((UINT) 272));
9488 sim_queue_pc_write (current_cpu, opval);
9489 written |= (1 << 3);
9490 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9495 abuf->written = written;
9500 /* fbltlr: fbltlr$pack $FCCi_2,$hint */
9503 SEM_FN_NAME (frvbf,fbltlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9505 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9506 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9507 int UNUSED written = 0;
9508 IADDR UNUSED pc = abuf->addr;
9509 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9512 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9513 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2))) {
9515 USI opval = GET_H_SPR (((UINT) 272));
9516 sim_queue_pc_write (current_cpu, opval);
9517 written |= (1 << 3);
9518 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9523 abuf->written = written;
9528 /* fbugelr: fbugelr$pack $FCCi_2,$hint */
9531 SEM_FN_NAME (frvbf,fbugelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9533 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9534 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9535 int UNUSED written = 0;
9536 IADDR UNUSED pc = abuf->addr;
9537 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9540 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9541 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))))) {
9543 USI opval = GET_H_SPR (((UINT) 272));
9544 sim_queue_pc_write (current_cpu, opval);
9545 written |= (1 << 3);
9546 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9551 abuf->written = written;
9556 /* fbuglr: fbuglr$pack $FCCi_2,$hint */
9559 SEM_FN_NAME (frvbf,fbuglr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9561 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9562 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9563 int UNUSED written = 0;
9564 IADDR UNUSED pc = abuf->addr;
9565 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9568 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9569 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
9571 USI opval = GET_H_SPR (((UINT) 272));
9572 sim_queue_pc_write (current_cpu, opval);
9573 written |= (1 << 3);
9574 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9579 abuf->written = written;
9584 /* fblelr: fblelr$pack $FCCi_2,$hint */
9587 SEM_FN_NAME (frvbf,fblelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9589 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9590 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9591 int UNUSED written = 0;
9592 IADDR UNUSED pc = abuf->addr;
9593 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9596 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9597 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)))) {
9599 USI opval = GET_H_SPR (((UINT) 272));
9600 sim_queue_pc_write (current_cpu, opval);
9601 written |= (1 << 3);
9602 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9607 abuf->written = written;
9612 /* fbgtlr: fbgtlr$pack $FCCi_2,$hint */
9615 SEM_FN_NAME (frvbf,fbgtlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9617 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9618 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9619 int UNUSED written = 0;
9620 IADDR UNUSED pc = abuf->addr;
9621 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9624 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9625 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1))) {
9627 USI opval = GET_H_SPR (((UINT) 272));
9628 sim_queue_pc_write (current_cpu, opval);
9629 written |= (1 << 3);
9630 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9635 abuf->written = written;
9640 /* fbulelr: fbulelr$pack $FCCi_2,$hint */
9643 SEM_FN_NAME (frvbf,fbulelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9645 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9646 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9647 int UNUSED written = 0;
9648 IADDR UNUSED pc = abuf->addr;
9649 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9652 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9653 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))))) {
9655 USI opval = GET_H_SPR (((UINT) 272));
9656 sim_queue_pc_write (current_cpu, opval);
9657 written |= (1 << 3);
9658 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9663 abuf->written = written;
9668 /* fbulr: fbulr$pack $FCCi_2,$hint */
9671 SEM_FN_NAME (frvbf,fbulr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9673 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9674 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9675 int UNUSED written = 0;
9676 IADDR UNUSED pc = abuf->addr;
9677 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9680 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9681 if (TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1))) {
9683 USI opval = GET_H_SPR (((UINT) 272));
9684 sim_queue_pc_write (current_cpu, opval);
9685 written |= (1 << 3);
9686 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9691 abuf->written = written;
9696 /* fbolr: fbolr$pack $FCCi_2,$hint */
9699 SEM_FN_NAME (frvbf,fbolr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9701 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9702 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9703 int UNUSED written = 0;
9704 IADDR UNUSED pc = abuf->addr;
9705 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9708 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9709 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))))) {
9711 USI opval = GET_H_SPR (((UINT) 272));
9712 sim_queue_pc_write (current_cpu, opval);
9713 written |= (1 << 3);
9714 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9719 abuf->written = written;
9724 /* bcralr: bcralr$pack $ccond$hint_taken */
9727 SEM_FN_NAME (frvbf,bcralr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9729 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9730 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9731 int UNUSED written = 0;
9732 IADDR UNUSED pc = abuf->addr;
9733 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9736 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9739 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
9741 USI opval = tmp_tmp;
9742 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
9743 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
9745 if (EQSI (FLD (f_ccond), 0)) {
9746 if (NESI (tmp_tmp, 0)) {
9748 USI opval = GET_H_SPR (((UINT) 272));
9749 sim_queue_pc_write (current_cpu, opval);
9750 written |= (1 << 5);
9751 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9755 if (EQSI (tmp_tmp, 0)) {
9757 USI opval = GET_H_SPR (((UINT) 272));
9758 sim_queue_pc_write (current_cpu, opval);
9759 written |= (1 << 5);
9760 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9767 abuf->written = written;
9772 /* bcnolr: bcnolr$pack$hint_not_taken */
9775 SEM_FN_NAME (frvbf,bcnolr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9777 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9778 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9779 int UNUSED written = 0;
9780 IADDR UNUSED pc = abuf->addr;
9781 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9784 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9787 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
9789 USI opval = tmp_tmp;
9790 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
9791 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
9801 /* bceqlr: bceqlr$pack $ICCi_2,$ccond,$hint */
9804 SEM_FN_NAME (frvbf,bceqlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9806 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9807 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9808 int UNUSED written = 0;
9809 IADDR UNUSED pc = abuf->addr;
9810 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9813 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9816 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
9818 USI opval = tmp_tmp;
9819 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
9820 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
9822 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2))) {
9823 if (EQSI (FLD (f_ccond), 0)) {
9824 if (NESI (tmp_tmp, 0)) {
9826 USI opval = GET_H_SPR (((UINT) 272));
9827 sim_queue_pc_write (current_cpu, opval);
9828 written |= (1 << 6);
9829 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9833 if (EQSI (tmp_tmp, 0)) {
9835 USI opval = GET_H_SPR (((UINT) 272));
9836 sim_queue_pc_write (current_cpu, opval);
9837 written |= (1 << 6);
9838 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9846 abuf->written = written;
9851 /* bcnelr: bcnelr$pack $ICCi_2,$ccond,$hint */
9854 SEM_FN_NAME (frvbf,bcnelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9856 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9857 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9858 int UNUSED written = 0;
9859 IADDR UNUSED pc = abuf->addr;
9860 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9863 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9866 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
9868 USI opval = tmp_tmp;
9869 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
9870 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
9872 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
9873 if (EQSI (FLD (f_ccond), 0)) {
9874 if (NESI (tmp_tmp, 0)) {
9876 USI opval = GET_H_SPR (((UINT) 272));
9877 sim_queue_pc_write (current_cpu, opval);
9878 written |= (1 << 6);
9879 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9883 if (EQSI (tmp_tmp, 0)) {
9885 USI opval = GET_H_SPR (((UINT) 272));
9886 sim_queue_pc_write (current_cpu, opval);
9887 written |= (1 << 6);
9888 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9896 abuf->written = written;
9901 /* bclelr: bclelr$pack $ICCi_2,$ccond,$hint */
9904 SEM_FN_NAME (frvbf,bclelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9906 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9907 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9908 int UNUSED written = 0;
9909 IADDR UNUSED pc = abuf->addr;
9910 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9913 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9916 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
9918 USI opval = tmp_tmp;
9919 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
9920 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
9922 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))))) {
9923 if (EQSI (FLD (f_ccond), 0)) {
9924 if (NESI (tmp_tmp, 0)) {
9926 USI opval = GET_H_SPR (((UINT) 272));
9927 sim_queue_pc_write (current_cpu, opval);
9928 written |= (1 << 6);
9929 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9933 if (EQSI (tmp_tmp, 0)) {
9935 USI opval = GET_H_SPR (((UINT) 272));
9936 sim_queue_pc_write (current_cpu, opval);
9937 written |= (1 << 6);
9938 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9946 abuf->written = written;
9951 /* bcgtlr: bcgtlr$pack $ICCi_2,$ccond,$hint */
9954 SEM_FN_NAME (frvbf,bcgtlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9956 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9957 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9958 int UNUSED written = 0;
9959 IADDR UNUSED pc = abuf->addr;
9960 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9963 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9966 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
9968 USI opval = tmp_tmp;
9969 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
9970 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
9972 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)))))) {
9973 if (EQSI (FLD (f_ccond), 0)) {
9974 if (NESI (tmp_tmp, 0)) {
9976 USI opval = GET_H_SPR (((UINT) 272));
9977 sim_queue_pc_write (current_cpu, opval);
9978 written |= (1 << 6);
9979 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9983 if (EQSI (tmp_tmp, 0)) {
9985 USI opval = GET_H_SPR (((UINT) 272));
9986 sim_queue_pc_write (current_cpu, opval);
9987 written |= (1 << 6);
9988 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9996 abuf->written = written;
10001 /* bcltlr: bcltlr$pack $ICCi_2,$ccond,$hint */
10004 SEM_FN_NAME (frvbf,bcltlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10006 #define FLD(f) abuf->fields.sfmt_bceqlr.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 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)))) {
10023 if (EQSI (FLD (f_ccond), 0)) {
10024 if (NESI (tmp_tmp, 0)) {
10026 USI opval = GET_H_SPR (((UINT) 272));
10027 sim_queue_pc_write (current_cpu, opval);
10028 written |= (1 << 6);
10029 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10033 if (EQSI (tmp_tmp, 0)) {
10035 USI opval = GET_H_SPR (((UINT) 272));
10036 sim_queue_pc_write (current_cpu, opval);
10037 written |= (1 << 6);
10038 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10046 abuf->written = written;
10051 /* bcgelr: bcgelr$pack $ICCi_2,$ccond,$hint */
10054 SEM_FN_NAME (frvbf,bcgelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10056 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10057 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10058 int UNUSED written = 0;
10059 IADDR UNUSED pc = abuf->addr;
10060 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10063 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10066 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10068 USI opval = tmp_tmp;
10069 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10070 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10072 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))))) {
10073 if (EQSI (FLD (f_ccond), 0)) {
10074 if (NESI (tmp_tmp, 0)) {
10076 USI opval = GET_H_SPR (((UINT) 272));
10077 sim_queue_pc_write (current_cpu, opval);
10078 written |= (1 << 6);
10079 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10083 if (EQSI (tmp_tmp, 0)) {
10085 USI opval = GET_H_SPR (((UINT) 272));
10086 sim_queue_pc_write (current_cpu, opval);
10087 written |= (1 << 6);
10088 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10096 abuf->written = written;
10101 /* bclslr: bclslr$pack $ICCi_2,$ccond,$hint */
10104 SEM_FN_NAME (frvbf,bclslr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10106 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10107 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10108 int UNUSED written = 0;
10109 IADDR UNUSED pc = abuf->addr;
10110 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10113 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10116 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10118 USI opval = tmp_tmp;
10119 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10120 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10122 if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
10123 if (EQSI (FLD (f_ccond), 0)) {
10124 if (NESI (tmp_tmp, 0)) {
10126 USI opval = GET_H_SPR (((UINT) 272));
10127 sim_queue_pc_write (current_cpu, opval);
10128 written |= (1 << 6);
10129 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10133 if (EQSI (tmp_tmp, 0)) {
10135 USI opval = GET_H_SPR (((UINT) 272));
10136 sim_queue_pc_write (current_cpu, opval);
10137 written |= (1 << 6);
10138 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10146 abuf->written = written;
10151 /* bchilr: bchilr$pack $ICCi_2,$ccond,$hint */
10154 SEM_FN_NAME (frvbf,bchilr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10156 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10157 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10158 int UNUSED written = 0;
10159 IADDR UNUSED pc = abuf->addr;
10160 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10163 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10166 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10168 USI opval = tmp_tmp;
10169 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10170 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10172 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))))) {
10173 if (EQSI (FLD (f_ccond), 0)) {
10174 if (NESI (tmp_tmp, 0)) {
10176 USI opval = GET_H_SPR (((UINT) 272));
10177 sim_queue_pc_write (current_cpu, opval);
10178 written |= (1 << 6);
10179 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10183 if (EQSI (tmp_tmp, 0)) {
10185 USI opval = GET_H_SPR (((UINT) 272));
10186 sim_queue_pc_write (current_cpu, opval);
10187 written |= (1 << 6);
10188 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10196 abuf->written = written;
10201 /* bcclr: bcclr$pack $ICCi_2,$ccond,$hint */
10204 SEM_FN_NAME (frvbf,bcclr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10206 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10207 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10208 int UNUSED written = 0;
10209 IADDR UNUSED pc = abuf->addr;
10210 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10213 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10216 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10218 USI opval = tmp_tmp;
10219 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10220 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10222 if (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1))) {
10223 if (EQSI (FLD (f_ccond), 0)) {
10224 if (NESI (tmp_tmp, 0)) {
10226 USI opval = GET_H_SPR (((UINT) 272));
10227 sim_queue_pc_write (current_cpu, opval);
10228 written |= (1 << 6);
10229 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10233 if (EQSI (tmp_tmp, 0)) {
10235 USI opval = GET_H_SPR (((UINT) 272));
10236 sim_queue_pc_write (current_cpu, opval);
10237 written |= (1 << 6);
10238 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10246 abuf->written = written;
10251 /* bcnclr: bcnclr$pack $ICCi_2,$ccond,$hint */
10254 SEM_FN_NAME (frvbf,bcnclr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10256 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10257 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10258 int UNUSED written = 0;
10259 IADDR UNUSED pc = abuf->addr;
10260 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10263 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10266 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10268 USI opval = tmp_tmp;
10269 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10270 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10272 if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)))) {
10273 if (EQSI (FLD (f_ccond), 0)) {
10274 if (NESI (tmp_tmp, 0)) {
10276 USI opval = GET_H_SPR (((UINT) 272));
10277 sim_queue_pc_write (current_cpu, opval);
10278 written |= (1 << 6);
10279 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10283 if (EQSI (tmp_tmp, 0)) {
10285 USI opval = GET_H_SPR (((UINT) 272));
10286 sim_queue_pc_write (current_cpu, opval);
10287 written |= (1 << 6);
10288 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10296 abuf->written = written;
10301 /* bcnlr: bcnlr$pack $ICCi_2,$ccond,$hint */
10304 SEM_FN_NAME (frvbf,bcnlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10306 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10307 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10308 int UNUSED written = 0;
10309 IADDR UNUSED pc = abuf->addr;
10310 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10313 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10316 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10318 USI opval = tmp_tmp;
10319 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10320 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10322 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3))) {
10323 if (EQSI (FLD (f_ccond), 0)) {
10324 if (NESI (tmp_tmp, 0)) {
10326 USI opval = GET_H_SPR (((UINT) 272));
10327 sim_queue_pc_write (current_cpu, opval);
10328 written |= (1 << 6);
10329 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10333 if (EQSI (tmp_tmp, 0)) {
10335 USI opval = GET_H_SPR (((UINT) 272));
10336 sim_queue_pc_write (current_cpu, opval);
10337 written |= (1 << 6);
10338 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10346 abuf->written = written;
10351 /* bcplr: bcplr$pack $ICCi_2,$ccond,$hint */
10354 SEM_FN_NAME (frvbf,bcplr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10356 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10357 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10358 int UNUSED written = 0;
10359 IADDR UNUSED pc = abuf->addr;
10360 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10363 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10366 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10368 USI opval = tmp_tmp;
10369 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10370 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10372 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3)))) {
10373 if (EQSI (FLD (f_ccond), 0)) {
10374 if (NESI (tmp_tmp, 0)) {
10376 USI opval = GET_H_SPR (((UINT) 272));
10377 sim_queue_pc_write (current_cpu, opval);
10378 written |= (1 << 6);
10379 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10383 if (EQSI (tmp_tmp, 0)) {
10385 USI opval = GET_H_SPR (((UINT) 272));
10386 sim_queue_pc_write (current_cpu, opval);
10387 written |= (1 << 6);
10388 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10396 abuf->written = written;
10401 /* bcvlr: bcvlr$pack $ICCi_2,$ccond,$hint */
10404 SEM_FN_NAME (frvbf,bcvlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10406 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10407 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10408 int UNUSED written = 0;
10409 IADDR UNUSED pc = abuf->addr;
10410 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10413 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10416 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10418 USI opval = tmp_tmp;
10419 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10420 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10422 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1))) {
10423 if (EQSI (FLD (f_ccond), 0)) {
10424 if (NESI (tmp_tmp, 0)) {
10426 USI opval = GET_H_SPR (((UINT) 272));
10427 sim_queue_pc_write (current_cpu, opval);
10428 written |= (1 << 6);
10429 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10433 if (EQSI (tmp_tmp, 0)) {
10435 USI opval = GET_H_SPR (((UINT) 272));
10436 sim_queue_pc_write (current_cpu, opval);
10437 written |= (1 << 6);
10438 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10446 abuf->written = written;
10451 /* bcnvlr: bcnvlr$pack $ICCi_2,$ccond,$hint */
10454 SEM_FN_NAME (frvbf,bcnvlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10456 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10457 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10458 int UNUSED written = 0;
10459 IADDR UNUSED pc = abuf->addr;
10460 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10463 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10466 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10468 USI opval = tmp_tmp;
10469 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10470 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10472 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1)))) {
10473 if (EQSI (FLD (f_ccond), 0)) {
10474 if (NESI (tmp_tmp, 0)) {
10476 USI opval = GET_H_SPR (((UINT) 272));
10477 sim_queue_pc_write (current_cpu, opval);
10478 written |= (1 << 6);
10479 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10483 if (EQSI (tmp_tmp, 0)) {
10485 USI opval = GET_H_SPR (((UINT) 272));
10486 sim_queue_pc_write (current_cpu, opval);
10487 written |= (1 << 6);
10488 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10496 abuf->written = written;
10501 /* fcbralr: fcbralr$pack $ccond$hint_taken */
10504 SEM_FN_NAME (frvbf,fcbralr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10506 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10507 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10508 int UNUSED written = 0;
10509 IADDR UNUSED pc = abuf->addr;
10510 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10513 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10516 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10518 USI opval = tmp_tmp;
10519 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10520 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10522 if (EQSI (FLD (f_ccond), 0)) {
10523 if (NESI (tmp_tmp, 0)) {
10525 USI opval = GET_H_SPR (((UINT) 272));
10526 sim_queue_pc_write (current_cpu, opval);
10527 written |= (1 << 5);
10528 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10532 if (EQSI (tmp_tmp, 0)) {
10534 USI opval = GET_H_SPR (((UINT) 272));
10535 sim_queue_pc_write (current_cpu, opval);
10536 written |= (1 << 5);
10537 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10544 abuf->written = written;
10549 /* fcbnolr: fcbnolr$pack$hint_not_taken */
10552 SEM_FN_NAME (frvbf,fcbnolr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10554 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10555 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10556 int UNUSED written = 0;
10557 IADDR UNUSED pc = abuf->addr;
10558 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10561 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10564 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10566 USI opval = tmp_tmp;
10567 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10568 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10570 ((void) 0); /*nop*/
10578 /* fcbeqlr: fcbeqlr$pack $FCCi_2,$ccond,$hint */
10581 SEM_FN_NAME (frvbf,fcbeqlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10583 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10584 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10585 int UNUSED written = 0;
10586 IADDR UNUSED pc = abuf->addr;
10587 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10590 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10593 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10595 USI opval = tmp_tmp;
10596 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10597 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10599 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3))) {
10600 if (EQSI (FLD (f_ccond), 0)) {
10601 if (NESI (tmp_tmp, 0)) {
10603 USI opval = GET_H_SPR (((UINT) 272));
10604 sim_queue_pc_write (current_cpu, opval);
10605 written |= (1 << 6);
10606 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10610 if (EQSI (tmp_tmp, 0)) {
10612 USI opval = GET_H_SPR (((UINT) 272));
10613 sim_queue_pc_write (current_cpu, opval);
10614 written |= (1 << 6);
10615 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10623 abuf->written = written;
10628 /* fcbnelr: fcbnelr$pack $FCCi_2,$ccond,$hint */
10631 SEM_FN_NAME (frvbf,fcbnelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10633 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10634 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10635 int UNUSED written = 0;
10636 IADDR UNUSED pc = abuf->addr;
10637 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10640 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10643 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10645 USI opval = tmp_tmp;
10646 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10647 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10649 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))))) {
10650 if (EQSI (FLD (f_ccond), 0)) {
10651 if (NESI (tmp_tmp, 0)) {
10653 USI opval = GET_H_SPR (((UINT) 272));
10654 sim_queue_pc_write (current_cpu, opval);
10655 written |= (1 << 6);
10656 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10660 if (EQSI (tmp_tmp, 0)) {
10662 USI opval = GET_H_SPR (((UINT) 272));
10663 sim_queue_pc_write (current_cpu, opval);
10664 written |= (1 << 6);
10665 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10673 abuf->written = written;
10678 /* fcblglr: fcblglr$pack $FCCi_2,$ccond,$hint */
10681 SEM_FN_NAME (frvbf,fcblglr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10683 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10684 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10685 int UNUSED written = 0;
10686 IADDR UNUSED pc = abuf->addr;
10687 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10690 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10693 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10695 USI opval = tmp_tmp;
10696 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10697 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10699 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)))) {
10700 if (EQSI (FLD (f_ccond), 0)) {
10701 if (NESI (tmp_tmp, 0)) {
10703 USI opval = GET_H_SPR (((UINT) 272));
10704 sim_queue_pc_write (current_cpu, opval);
10705 written |= (1 << 6);
10706 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10710 if (EQSI (tmp_tmp, 0)) {
10712 USI opval = GET_H_SPR (((UINT) 272));
10713 sim_queue_pc_write (current_cpu, opval);
10714 written |= (1 << 6);
10715 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10723 abuf->written = written;
10728 /* fcbuelr: fcbuelr$pack $FCCi_2,$ccond,$hint */
10731 SEM_FN_NAME (frvbf,fcbuelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10733 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10734 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10735 int UNUSED written = 0;
10736 IADDR UNUSED pc = abuf->addr;
10737 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10740 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10743 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10745 USI opval = tmp_tmp;
10746 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10747 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10749 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
10750 if (EQSI (FLD (f_ccond), 0)) {
10751 if (NESI (tmp_tmp, 0)) {
10753 USI opval = GET_H_SPR (((UINT) 272));
10754 sim_queue_pc_write (current_cpu, opval);
10755 written |= (1 << 6);
10756 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10760 if (EQSI (tmp_tmp, 0)) {
10762 USI opval = GET_H_SPR (((UINT) 272));
10763 sim_queue_pc_write (current_cpu, opval);
10764 written |= (1 << 6);
10765 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10773 abuf->written = written;
10778 /* fcbullr: fcbullr$pack $FCCi_2,$ccond,$hint */
10781 SEM_FN_NAME (frvbf,fcbullr) (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 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
10800 if (EQSI (FLD (f_ccond), 0)) {
10801 if (NESI (tmp_tmp, 0)) {
10803 USI opval = GET_H_SPR (((UINT) 272));
10804 sim_queue_pc_write (current_cpu, opval);
10805 written |= (1 << 6);
10806 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10810 if (EQSI (tmp_tmp, 0)) {
10812 USI opval = GET_H_SPR (((UINT) 272));
10813 sim_queue_pc_write (current_cpu, opval);
10814 written |= (1 << 6);
10815 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10823 abuf->written = written;
10828 /* fcbgelr: fcbgelr$pack $FCCi_2,$ccond,$hint */
10831 SEM_FN_NAME (frvbf,fcbgelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10833 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10834 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10835 int UNUSED written = 0;
10836 IADDR UNUSED pc = abuf->addr;
10837 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10840 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10843 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10845 USI opval = tmp_tmp;
10846 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10847 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10849 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)))) {
10850 if (EQSI (FLD (f_ccond), 0)) {
10851 if (NESI (tmp_tmp, 0)) {
10853 USI opval = GET_H_SPR (((UINT) 272));
10854 sim_queue_pc_write (current_cpu, opval);
10855 written |= (1 << 6);
10856 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10860 if (EQSI (tmp_tmp, 0)) {
10862 USI opval = GET_H_SPR (((UINT) 272));
10863 sim_queue_pc_write (current_cpu, opval);
10864 written |= (1 << 6);
10865 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10873 abuf->written = written;
10878 /* fcbltlr: fcbltlr$pack $FCCi_2,$ccond,$hint */
10881 SEM_FN_NAME (frvbf,fcbltlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10883 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10884 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10885 int UNUSED written = 0;
10886 IADDR UNUSED pc = abuf->addr;
10887 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10890 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10893 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10895 USI opval = tmp_tmp;
10896 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10897 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10899 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2))) {
10900 if (EQSI (FLD (f_ccond), 0)) {
10901 if (NESI (tmp_tmp, 0)) {
10903 USI opval = GET_H_SPR (((UINT) 272));
10904 sim_queue_pc_write (current_cpu, opval);
10905 written |= (1 << 6);
10906 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10910 if (EQSI (tmp_tmp, 0)) {
10912 USI opval = GET_H_SPR (((UINT) 272));
10913 sim_queue_pc_write (current_cpu, opval);
10914 written |= (1 << 6);
10915 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10923 abuf->written = written;
10928 /* fcbugelr: fcbugelr$pack $FCCi_2,$ccond,$hint */
10931 SEM_FN_NAME (frvbf,fcbugelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10933 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10934 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10935 int UNUSED written = 0;
10936 IADDR UNUSED pc = abuf->addr;
10937 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10940 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10943 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10945 USI opval = tmp_tmp;
10946 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10947 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10949 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))))) {
10950 if (EQSI (FLD (f_ccond), 0)) {
10951 if (NESI (tmp_tmp, 0)) {
10953 USI opval = GET_H_SPR (((UINT) 272));
10954 sim_queue_pc_write (current_cpu, opval);
10955 written |= (1 << 6);
10956 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10960 if (EQSI (tmp_tmp, 0)) {
10962 USI opval = GET_H_SPR (((UINT) 272));
10963 sim_queue_pc_write (current_cpu, opval);
10964 written |= (1 << 6);
10965 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10973 abuf->written = written;
10978 /* fcbuglr: fcbuglr$pack $FCCi_2,$ccond,$hint */
10981 SEM_FN_NAME (frvbf,fcbuglr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10983 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10984 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10985 int UNUSED written = 0;
10986 IADDR UNUSED pc = abuf->addr;
10987 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10990 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10993 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10995 USI opval = tmp_tmp;
10996 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10997 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10999 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
11000 if (EQSI (FLD (f_ccond), 0)) {
11001 if (NESI (tmp_tmp, 0)) {
11003 USI opval = GET_H_SPR (((UINT) 272));
11004 sim_queue_pc_write (current_cpu, opval);
11005 written |= (1 << 6);
11006 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11010 if (EQSI (tmp_tmp, 0)) {
11012 USI opval = GET_H_SPR (((UINT) 272));
11013 sim_queue_pc_write (current_cpu, opval);
11014 written |= (1 << 6);
11015 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11023 abuf->written = written;
11028 /* fcblelr: fcblelr$pack $FCCi_2,$ccond,$hint */
11031 SEM_FN_NAME (frvbf,fcblelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11033 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11034 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11035 int UNUSED written = 0;
11036 IADDR UNUSED pc = abuf->addr;
11037 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11040 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
11043 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
11045 USI opval = tmp_tmp;
11046 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
11047 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
11049 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)))) {
11050 if (EQSI (FLD (f_ccond), 0)) {
11051 if (NESI (tmp_tmp, 0)) {
11053 USI opval = GET_H_SPR (((UINT) 272));
11054 sim_queue_pc_write (current_cpu, opval);
11055 written |= (1 << 6);
11056 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11060 if (EQSI (tmp_tmp, 0)) {
11062 USI opval = GET_H_SPR (((UINT) 272));
11063 sim_queue_pc_write (current_cpu, opval);
11064 written |= (1 << 6);
11065 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11073 abuf->written = written;
11078 /* fcbgtlr: fcbgtlr$pack $FCCi_2,$ccond,$hint */
11081 SEM_FN_NAME (frvbf,fcbgtlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11083 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11084 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11085 int UNUSED written = 0;
11086 IADDR UNUSED pc = abuf->addr;
11087 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11090 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
11093 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
11095 USI opval = tmp_tmp;
11096 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
11097 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
11099 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1))) {
11100 if (EQSI (FLD (f_ccond), 0)) {
11101 if (NESI (tmp_tmp, 0)) {
11103 USI opval = GET_H_SPR (((UINT) 272));
11104 sim_queue_pc_write (current_cpu, opval);
11105 written |= (1 << 6);
11106 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11110 if (EQSI (tmp_tmp, 0)) {
11112 USI opval = GET_H_SPR (((UINT) 272));
11113 sim_queue_pc_write (current_cpu, opval);
11114 written |= (1 << 6);
11115 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11123 abuf->written = written;
11128 /* fcbulelr: fcbulelr$pack $FCCi_2,$ccond,$hint */
11131 SEM_FN_NAME (frvbf,fcbulelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11133 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11134 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11135 int UNUSED written = 0;
11136 IADDR UNUSED pc = abuf->addr;
11137 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11140 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
11143 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
11145 USI opval = tmp_tmp;
11146 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
11147 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
11149 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))))) {
11150 if (EQSI (FLD (f_ccond), 0)) {
11151 if (NESI (tmp_tmp, 0)) {
11153 USI opval = GET_H_SPR (((UINT) 272));
11154 sim_queue_pc_write (current_cpu, opval);
11155 written |= (1 << 6);
11156 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11160 if (EQSI (tmp_tmp, 0)) {
11162 USI opval = GET_H_SPR (((UINT) 272));
11163 sim_queue_pc_write (current_cpu, opval);
11164 written |= (1 << 6);
11165 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11173 abuf->written = written;
11178 /* fcbulr: fcbulr$pack $FCCi_2,$ccond,$hint */
11181 SEM_FN_NAME (frvbf,fcbulr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11183 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11184 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11185 int UNUSED written = 0;
11186 IADDR UNUSED pc = abuf->addr;
11187 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11190 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
11193 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
11195 USI opval = tmp_tmp;
11196 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
11197 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
11199 if (TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1))) {
11200 if (EQSI (FLD (f_ccond), 0)) {
11201 if (NESI (tmp_tmp, 0)) {
11203 USI opval = GET_H_SPR (((UINT) 272));
11204 sim_queue_pc_write (current_cpu, opval);
11205 written |= (1 << 6);
11206 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11210 if (EQSI (tmp_tmp, 0)) {
11212 USI opval = GET_H_SPR (((UINT) 272));
11213 sim_queue_pc_write (current_cpu, opval);
11214 written |= (1 << 6);
11215 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11223 abuf->written = written;
11228 /* fcbolr: fcbolr$pack $FCCi_2,$ccond,$hint */
11231 SEM_FN_NAME (frvbf,fcbolr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11233 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11234 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11235 int UNUSED written = 0;
11236 IADDR UNUSED pc = abuf->addr;
11237 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11240 frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
11243 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
11245 USI opval = tmp_tmp;
11246 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
11247 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
11249 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))))) {
11250 if (EQSI (FLD (f_ccond), 0)) {
11251 if (NESI (tmp_tmp, 0)) {
11253 USI opval = GET_H_SPR (((UINT) 272));
11254 sim_queue_pc_write (current_cpu, opval);
11255 written |= (1 << 6);
11256 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11260 if (EQSI (tmp_tmp, 0)) {
11262 USI opval = GET_H_SPR (((UINT) 272));
11263 sim_queue_pc_write (current_cpu, opval);
11264 written |= (1 << 6);
11265 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11273 abuf->written = written;
11278 /* jmpl: jmpl$pack @($GRi,$GRj) */
11281 SEM_FN_NAME (frvbf,jmpl) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11283 #define FLD(f) abuf->fields.sfmt_cjmpl.f
11284 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11285 int UNUSED written = 0;
11286 IADDR UNUSED pc = abuf->addr;
11287 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11290 if (EQSI (FLD (f_LI), 1)) {
11291 frvbf_set_write_next_vliw_addr_to_LR (current_cpu, 1);
11294 USI opval = ANDSI (ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), 0xfffffffc);
11295 sim_queue_pc_write (current_cpu, opval);
11296 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11298 frvbf_model_branch (current_cpu, pc, 2);
11305 /* calll: calll$pack $callann($GRi,$GRj) */
11308 SEM_FN_NAME (frvbf,calll) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11310 #define FLD(f) abuf->fields.sfmt_cjmpl.f
11311 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11312 int UNUSED written = 0;
11313 IADDR UNUSED pc = abuf->addr;
11314 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11317 if (EQSI (FLD (f_LI), 1)) {
11318 frvbf_set_write_next_vliw_addr_to_LR (current_cpu, 1);
11321 USI opval = ANDSI (ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), 0xfffffffc);
11322 sim_queue_pc_write (current_cpu, opval);
11323 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11325 frvbf_model_branch (current_cpu, pc, 2);
11332 /* jmpil: jmpil$pack @($GRi,$s12) */
11335 SEM_FN_NAME (frvbf,jmpil) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11337 #define FLD(f) abuf->fields.sfmt_jmpil.f
11338 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11339 int UNUSED written = 0;
11340 IADDR UNUSED pc = abuf->addr;
11341 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11344 if (EQSI (FLD (f_LI), 1)) {
11345 frvbf_set_write_next_vliw_addr_to_LR (current_cpu, 1);
11348 USI opval = ANDSI (ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), 0xfffffffc);
11349 sim_queue_pc_write (current_cpu, opval);
11350 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11352 frvbf_model_branch (current_cpu, pc, 2);
11359 /* callil: callil$pack @($GRi,$s12) */
11362 SEM_FN_NAME (frvbf,callil) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11364 #define FLD(f) abuf->fields.sfmt_jmpil.f
11365 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11366 int UNUSED written = 0;
11367 IADDR UNUSED pc = abuf->addr;
11368 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11371 if (EQSI (FLD (f_LI), 1)) {
11372 frvbf_set_write_next_vliw_addr_to_LR (current_cpu, 1);
11375 USI opval = ANDSI (ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), 0xfffffffc);
11376 sim_queue_pc_write (current_cpu, opval);
11377 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11379 frvbf_model_branch (current_cpu, pc, 2);
11386 /* call: call$pack $label24 */
11389 SEM_FN_NAME (frvbf,call) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11391 #define FLD(f) abuf->fields.sfmt_call.f
11392 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11393 int UNUSED written = 0;
11394 IADDR UNUSED pc = abuf->addr;
11395 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11398 frvbf_set_write_next_vliw_addr_to_LR (current_cpu, 1);
11400 USI opval = FLD (i_label24);
11401 sim_queue_pc_write (current_cpu, opval);
11402 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11404 frvbf_model_branch (current_cpu, pc, 2);
11411 /* rett: rett$pack $debug */
11414 SEM_FN_NAME (frvbf,rett) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11416 #define FLD(f) abuf->fields.sfmt_rett.f
11417 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11418 int UNUSED written = 0;
11419 IADDR UNUSED pc = abuf->addr;
11420 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11424 USI opval = frv_rett (current_cpu, pc, FLD (f_debug));
11425 sim_queue_pc_write (current_cpu, opval);
11426 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11428 frvbf_model_branch (current_cpu, pc, 2);
11435 /* rei: rei$pack $eir */
11438 SEM_FN_NAME (frvbf,rei) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11440 #define FLD(f) abuf->fields.fmt_empty.f
11441 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11442 int UNUSED written = 0;
11443 IADDR UNUSED pc = abuf->addr;
11444 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11446 ((void) 0); /*nop*/
11452 /* tra: tra$pack $GRi,$GRj */
11455 SEM_FN_NAME (frvbf,tra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11457 #define FLD(f) abuf->fields.sfmt_ftne.f
11458 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11459 int UNUSED written = 0;
11460 IADDR UNUSED pc = abuf->addr;
11461 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11468 if (NEBI (CPU (h_psr_esr), 0)) {
11476 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11479 abuf->written = written;
11484 /* tno: tno$pack */
11487 SEM_FN_NAME (frvbf,tno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11489 #define FLD(f) abuf->fields.fmt_empty.f
11490 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11491 int UNUSED written = 0;
11492 IADDR UNUSED pc = abuf->addr;
11493 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11495 ((void) 0); /*nop*/
11501 /* teq: teq$pack $ICCi_2,$GRi,$GRj */
11504 SEM_FN_NAME (frvbf,teq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11506 #define FLD(f) abuf->fields.sfmt_teq.f
11507 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11508 int UNUSED written = 0;
11509 IADDR UNUSED pc = abuf->addr;
11510 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11512 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2))) {
11518 if (NEBI (CPU (h_psr_esr), 0)) {
11526 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11530 abuf->written = written;
11535 /* tne: tne$pack $ICCi_2,$GRi,$GRj */
11538 SEM_FN_NAME (frvbf,tne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11540 #define FLD(f) abuf->fields.sfmt_teq.f
11541 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11542 int UNUSED written = 0;
11543 IADDR UNUSED pc = abuf->addr;
11544 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11546 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
11552 if (NEBI (CPU (h_psr_esr), 0)) {
11560 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11564 abuf->written = written;
11569 /* tle: tle$pack $ICCi_2,$GRi,$GRj */
11572 SEM_FN_NAME (frvbf,tle) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11574 #define FLD(f) abuf->fields.sfmt_teq.f
11575 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11576 int UNUSED written = 0;
11577 IADDR UNUSED pc = abuf->addr;
11578 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11580 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))))) {
11586 if (NEBI (CPU (h_psr_esr), 0)) {
11594 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11598 abuf->written = written;
11603 /* tgt: tgt$pack $ICCi_2,$GRi,$GRj */
11606 SEM_FN_NAME (frvbf,tgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11608 #define FLD(f) abuf->fields.sfmt_teq.f
11609 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11610 int UNUSED written = 0;
11611 IADDR UNUSED pc = abuf->addr;
11612 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11614 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)))))) {
11620 if (NEBI (CPU (h_psr_esr), 0)) {
11628 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11632 abuf->written = written;
11637 /* tlt: tlt$pack $ICCi_2,$GRi,$GRj */
11640 SEM_FN_NAME (frvbf,tlt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11642 #define FLD(f) abuf->fields.sfmt_teq.f
11643 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11644 int UNUSED written = 0;
11645 IADDR UNUSED pc = abuf->addr;
11646 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11648 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)))) {
11654 if (NEBI (CPU (h_psr_esr), 0)) {
11662 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11666 abuf->written = written;
11671 /* tge: tge$pack $ICCi_2,$GRi,$GRj */
11674 SEM_FN_NAME (frvbf,tge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11676 #define FLD(f) abuf->fields.sfmt_teq.f
11677 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11678 int UNUSED written = 0;
11679 IADDR UNUSED pc = abuf->addr;
11680 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11682 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))))) {
11688 if (NEBI (CPU (h_psr_esr), 0)) {
11696 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11700 abuf->written = written;
11705 /* tls: tls$pack $ICCi_2,$GRi,$GRj */
11708 SEM_FN_NAME (frvbf,tls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11710 #define FLD(f) abuf->fields.sfmt_teq.f
11711 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11712 int UNUSED written = 0;
11713 IADDR UNUSED pc = abuf->addr;
11714 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11716 if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
11722 if (NEBI (CPU (h_psr_esr), 0)) {
11730 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11734 abuf->written = written;
11739 /* thi: thi$pack $ICCi_2,$GRi,$GRj */
11742 SEM_FN_NAME (frvbf,thi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11744 #define FLD(f) abuf->fields.sfmt_teq.f
11745 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11746 int UNUSED written = 0;
11747 IADDR UNUSED pc = abuf->addr;
11748 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11750 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))))) {
11756 if (NEBI (CPU (h_psr_esr), 0)) {
11764 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11768 abuf->written = written;
11773 /* tc: tc$pack $ICCi_2,$GRi,$GRj */
11776 SEM_FN_NAME (frvbf,tc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11778 #define FLD(f) abuf->fields.sfmt_teq.f
11779 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11780 int UNUSED written = 0;
11781 IADDR UNUSED pc = abuf->addr;
11782 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11784 if (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1))) {
11790 if (NEBI (CPU (h_psr_esr), 0)) {
11798 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11802 abuf->written = written;
11807 /* tnc: tnc$pack $ICCi_2,$GRi,$GRj */
11810 SEM_FN_NAME (frvbf,tnc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11812 #define FLD(f) abuf->fields.sfmt_teq.f
11813 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11814 int UNUSED written = 0;
11815 IADDR UNUSED pc = abuf->addr;
11816 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11818 if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)))) {
11824 if (NEBI (CPU (h_psr_esr), 0)) {
11832 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11836 abuf->written = written;
11841 /* tn: tn$pack $ICCi_2,$GRi,$GRj */
11844 SEM_FN_NAME (frvbf,tn) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11846 #define FLD(f) abuf->fields.sfmt_teq.f
11847 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11848 int UNUSED written = 0;
11849 IADDR UNUSED pc = abuf->addr;
11850 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11852 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3))) {
11858 if (NEBI (CPU (h_psr_esr), 0)) {
11866 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11870 abuf->written = written;
11875 /* tp: tp$pack $ICCi_2,$GRi,$GRj */
11878 SEM_FN_NAME (frvbf,tp) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11880 #define FLD(f) abuf->fields.sfmt_teq.f
11881 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11882 int UNUSED written = 0;
11883 IADDR UNUSED pc = abuf->addr;
11884 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11886 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3)))) {
11892 if (NEBI (CPU (h_psr_esr), 0)) {
11900 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11904 abuf->written = written;
11909 /* tv: tv$pack $ICCi_2,$GRi,$GRj */
11912 SEM_FN_NAME (frvbf,tv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11914 #define FLD(f) abuf->fields.sfmt_teq.f
11915 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11916 int UNUSED written = 0;
11917 IADDR UNUSED pc = abuf->addr;
11918 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11920 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1))) {
11926 if (NEBI (CPU (h_psr_esr), 0)) {
11934 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11938 abuf->written = written;
11943 /* tnv: tnv$pack $ICCi_2,$GRi,$GRj */
11946 SEM_FN_NAME (frvbf,tnv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11948 #define FLD(f) abuf->fields.sfmt_teq.f
11949 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11950 int UNUSED written = 0;
11951 IADDR UNUSED pc = abuf->addr;
11952 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11954 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1)))) {
11960 if (NEBI (CPU (h_psr_esr), 0)) {
11968 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11972 abuf->written = written;
11977 /* ftra: ftra$pack $GRi,$GRj */
11980 SEM_FN_NAME (frvbf,ftra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11982 #define FLD(f) abuf->fields.sfmt_ftne.f
11983 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11984 int UNUSED written = 0;
11985 IADDR UNUSED pc = abuf->addr;
11986 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11993 if (NEBI (CPU (h_psr_esr), 0)) {
12001 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12004 abuf->written = written;
12009 /* ftno: ftno$pack */
12012 SEM_FN_NAME (frvbf,ftno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12014 #define FLD(f) abuf->fields.fmt_empty.f
12015 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12016 int UNUSED written = 0;
12017 IADDR UNUSED pc = abuf->addr;
12018 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12020 ((void) 0); /*nop*/
12026 /* ftne: ftne$pack $FCCi_2,$GRi,$GRj */
12029 SEM_FN_NAME (frvbf,ftne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12031 #define FLD(f) abuf->fields.sfmt_ftne.f
12032 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12033 int UNUSED written = 0;
12034 IADDR UNUSED pc = abuf->addr;
12035 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12037 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))))) {
12043 if (NEBI (CPU (h_psr_esr), 0)) {
12051 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12055 abuf->written = written;
12060 /* fteq: fteq$pack $FCCi_2,$GRi,$GRj */
12063 SEM_FN_NAME (frvbf,fteq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12065 #define FLD(f) abuf->fields.sfmt_ftne.f
12066 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12067 int UNUSED written = 0;
12068 IADDR UNUSED pc = abuf->addr;
12069 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12071 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3))) {
12077 if (NEBI (CPU (h_psr_esr), 0)) {
12085 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12089 abuf->written = written;
12094 /* ftlg: ftlg$pack $FCCi_2,$GRi,$GRj */
12097 SEM_FN_NAME (frvbf,ftlg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12099 #define FLD(f) abuf->fields.sfmt_ftne.f
12100 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12101 int UNUSED written = 0;
12102 IADDR UNUSED pc = abuf->addr;
12103 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12105 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)))) {
12111 if (NEBI (CPU (h_psr_esr), 0)) {
12119 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12123 abuf->written = written;
12128 /* ftue: ftue$pack $FCCi_2,$GRi,$GRj */
12131 SEM_FN_NAME (frvbf,ftue) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12133 #define FLD(f) abuf->fields.sfmt_ftne.f
12134 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12135 int UNUSED written = 0;
12136 IADDR UNUSED pc = abuf->addr;
12137 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12139 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
12145 if (NEBI (CPU (h_psr_esr), 0)) {
12153 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12157 abuf->written = written;
12162 /* ftul: ftul$pack $FCCi_2,$GRi,$GRj */
12165 SEM_FN_NAME (frvbf,ftul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12167 #define FLD(f) abuf->fields.sfmt_ftne.f
12168 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12169 int UNUSED written = 0;
12170 IADDR UNUSED pc = abuf->addr;
12171 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12173 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
12179 if (NEBI (CPU (h_psr_esr), 0)) {
12187 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12191 abuf->written = written;
12196 /* ftge: ftge$pack $FCCi_2,$GRi,$GRj */
12199 SEM_FN_NAME (frvbf,ftge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12201 #define FLD(f) abuf->fields.sfmt_ftne.f
12202 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12203 int UNUSED written = 0;
12204 IADDR UNUSED pc = abuf->addr;
12205 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12207 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)))) {
12213 if (NEBI (CPU (h_psr_esr), 0)) {
12221 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12225 abuf->written = written;
12230 /* ftlt: ftlt$pack $FCCi_2,$GRi,$GRj */
12233 SEM_FN_NAME (frvbf,ftlt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12235 #define FLD(f) abuf->fields.sfmt_ftne.f
12236 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12237 int UNUSED written = 0;
12238 IADDR UNUSED pc = abuf->addr;
12239 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12241 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2))) {
12247 if (NEBI (CPU (h_psr_esr), 0)) {
12255 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12259 abuf->written = written;
12264 /* ftuge: ftuge$pack $FCCi_2,$GRi,$GRj */
12267 SEM_FN_NAME (frvbf,ftuge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12269 #define FLD(f) abuf->fields.sfmt_ftne.f
12270 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12271 int UNUSED written = 0;
12272 IADDR UNUSED pc = abuf->addr;
12273 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12275 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))))) {
12281 if (NEBI (CPU (h_psr_esr), 0)) {
12289 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12293 abuf->written = written;
12298 /* ftug: ftug$pack $FCCi_2,$GRi,$GRj */
12301 SEM_FN_NAME (frvbf,ftug) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12303 #define FLD(f) abuf->fields.sfmt_ftne.f
12304 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12305 int UNUSED written = 0;
12306 IADDR UNUSED pc = abuf->addr;
12307 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12309 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
12315 if (NEBI (CPU (h_psr_esr), 0)) {
12323 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12327 abuf->written = written;
12332 /* ftle: ftle$pack $FCCi_2,$GRi,$GRj */
12335 SEM_FN_NAME (frvbf,ftle) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12337 #define FLD(f) abuf->fields.sfmt_ftne.f
12338 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12339 int UNUSED written = 0;
12340 IADDR UNUSED pc = abuf->addr;
12341 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12343 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)))) {
12349 if (NEBI (CPU (h_psr_esr), 0)) {
12357 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12361 abuf->written = written;
12366 /* ftgt: ftgt$pack $FCCi_2,$GRi,$GRj */
12369 SEM_FN_NAME (frvbf,ftgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12371 #define FLD(f) abuf->fields.sfmt_ftne.f
12372 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12373 int UNUSED written = 0;
12374 IADDR UNUSED pc = abuf->addr;
12375 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12377 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1))) {
12383 if (NEBI (CPU (h_psr_esr), 0)) {
12391 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12395 abuf->written = written;
12400 /* ftule: ftule$pack $FCCi_2,$GRi,$GRj */
12403 SEM_FN_NAME (frvbf,ftule) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12405 #define FLD(f) abuf->fields.sfmt_ftne.f
12406 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12407 int UNUSED written = 0;
12408 IADDR UNUSED pc = abuf->addr;
12409 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12411 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))))) {
12417 if (NEBI (CPU (h_psr_esr), 0)) {
12425 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12429 abuf->written = written;
12434 /* ftu: ftu$pack $FCCi_2,$GRi,$GRj */
12437 SEM_FN_NAME (frvbf,ftu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12439 #define FLD(f) abuf->fields.sfmt_ftne.f
12440 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12441 int UNUSED written = 0;
12442 IADDR UNUSED pc = abuf->addr;
12443 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12445 if (TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1))) {
12451 if (NEBI (CPU (h_psr_esr), 0)) {
12459 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12463 abuf->written = written;
12468 /* fto: fto$pack $FCCi_2,$GRi,$GRj */
12471 SEM_FN_NAME (frvbf,fto) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12473 #define FLD(f) abuf->fields.sfmt_ftne.f
12474 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12475 int UNUSED written = 0;
12476 IADDR UNUSED pc = abuf->addr;
12477 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12479 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))))) {
12485 if (NEBI (CPU (h_psr_esr), 0)) {
12493 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12497 abuf->written = written;
12502 /* tira: tira$pack $GRi,$s12 */
12505 SEM_FN_NAME (frvbf,tira) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12507 #define FLD(f) abuf->fields.sfmt_ftine.f
12508 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12509 int UNUSED written = 0;
12510 IADDR UNUSED pc = abuf->addr;
12511 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12518 if (NEBI (CPU (h_psr_esr), 0)) {
12526 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12529 abuf->written = written;
12534 /* tino: tino$pack */
12537 SEM_FN_NAME (frvbf,tino) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12539 #define FLD(f) abuf->fields.fmt_empty.f
12540 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12541 int UNUSED written = 0;
12542 IADDR UNUSED pc = abuf->addr;
12543 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12545 ((void) 0); /*nop*/
12551 /* tieq: tieq$pack $ICCi_2,$GRi,$s12 */
12554 SEM_FN_NAME (frvbf,tieq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12556 #define FLD(f) abuf->fields.sfmt_tieq.f
12557 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12558 int UNUSED written = 0;
12559 IADDR UNUSED pc = abuf->addr;
12560 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12562 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2))) {
12568 if (NEBI (CPU (h_psr_esr), 0)) {
12576 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12580 abuf->written = written;
12585 /* tine: tine$pack $ICCi_2,$GRi,$s12 */
12588 SEM_FN_NAME (frvbf,tine) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12590 #define FLD(f) abuf->fields.sfmt_tieq.f
12591 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12592 int UNUSED written = 0;
12593 IADDR UNUSED pc = abuf->addr;
12594 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12596 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
12602 if (NEBI (CPU (h_psr_esr), 0)) {
12610 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12614 abuf->written = written;
12619 /* tile: tile$pack $ICCi_2,$GRi,$s12 */
12622 SEM_FN_NAME (frvbf,tile) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12624 #define FLD(f) abuf->fields.sfmt_tieq.f
12625 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12626 int UNUSED written = 0;
12627 IADDR UNUSED pc = abuf->addr;
12628 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12630 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))))) {
12636 if (NEBI (CPU (h_psr_esr), 0)) {
12644 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12648 abuf->written = written;
12653 /* tigt: tigt$pack $ICCi_2,$GRi,$s12 */
12656 SEM_FN_NAME (frvbf,tigt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12658 #define FLD(f) abuf->fields.sfmt_tieq.f
12659 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12660 int UNUSED written = 0;
12661 IADDR UNUSED pc = abuf->addr;
12662 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12664 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)))))) {
12670 if (NEBI (CPU (h_psr_esr), 0)) {
12678 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12682 abuf->written = written;
12687 /* tilt: tilt$pack $ICCi_2,$GRi,$s12 */
12690 SEM_FN_NAME (frvbf,tilt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12692 #define FLD(f) abuf->fields.sfmt_tieq.f
12693 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12694 int UNUSED written = 0;
12695 IADDR UNUSED pc = abuf->addr;
12696 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12698 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)))) {
12704 if (NEBI (CPU (h_psr_esr), 0)) {
12712 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12716 abuf->written = written;
12721 /* tige: tige$pack $ICCi_2,$GRi,$s12 */
12724 SEM_FN_NAME (frvbf,tige) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12726 #define FLD(f) abuf->fields.sfmt_tieq.f
12727 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12728 int UNUSED written = 0;
12729 IADDR UNUSED pc = abuf->addr;
12730 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12732 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))))) {
12738 if (NEBI (CPU (h_psr_esr), 0)) {
12746 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12750 abuf->written = written;
12755 /* tils: tils$pack $ICCi_2,$GRi,$s12 */
12758 SEM_FN_NAME (frvbf,tils) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12760 #define FLD(f) abuf->fields.sfmt_tieq.f
12761 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12762 int UNUSED written = 0;
12763 IADDR UNUSED pc = abuf->addr;
12764 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12766 if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
12772 if (NEBI (CPU (h_psr_esr), 0)) {
12780 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12784 abuf->written = written;
12789 /* tihi: tihi$pack $ICCi_2,$GRi,$s12 */
12792 SEM_FN_NAME (frvbf,tihi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12794 #define FLD(f) abuf->fields.sfmt_tieq.f
12795 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12796 int UNUSED written = 0;
12797 IADDR UNUSED pc = abuf->addr;
12798 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12800 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))))) {
12806 if (NEBI (CPU (h_psr_esr), 0)) {
12814 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12818 abuf->written = written;
12823 /* tic: tic$pack $ICCi_2,$GRi,$s12 */
12826 SEM_FN_NAME (frvbf,tic) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12828 #define FLD(f) abuf->fields.sfmt_tieq.f
12829 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12830 int UNUSED written = 0;
12831 IADDR UNUSED pc = abuf->addr;
12832 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12834 if (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1))) {
12840 if (NEBI (CPU (h_psr_esr), 0)) {
12848 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12852 abuf->written = written;
12857 /* tinc: tinc$pack $ICCi_2,$GRi,$s12 */
12860 SEM_FN_NAME (frvbf,tinc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12862 #define FLD(f) abuf->fields.sfmt_tieq.f
12863 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12864 int UNUSED written = 0;
12865 IADDR UNUSED pc = abuf->addr;
12866 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12868 if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)))) {
12874 if (NEBI (CPU (h_psr_esr), 0)) {
12882 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12886 abuf->written = written;
12891 /* tin: tin$pack $ICCi_2,$GRi,$s12 */
12894 SEM_FN_NAME (frvbf,tin) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12896 #define FLD(f) abuf->fields.sfmt_tieq.f
12897 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12898 int UNUSED written = 0;
12899 IADDR UNUSED pc = abuf->addr;
12900 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12902 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3))) {
12908 if (NEBI (CPU (h_psr_esr), 0)) {
12916 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12920 abuf->written = written;
12925 /* tip: tip$pack $ICCi_2,$GRi,$s12 */
12928 SEM_FN_NAME (frvbf,tip) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12930 #define FLD(f) abuf->fields.sfmt_tieq.f
12931 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12932 int UNUSED written = 0;
12933 IADDR UNUSED pc = abuf->addr;
12934 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12936 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3)))) {
12942 if (NEBI (CPU (h_psr_esr), 0)) {
12950 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12954 abuf->written = written;
12959 /* tiv: tiv$pack $ICCi_2,$GRi,$s12 */
12962 SEM_FN_NAME (frvbf,tiv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12964 #define FLD(f) abuf->fields.sfmt_tieq.f
12965 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12966 int UNUSED written = 0;
12967 IADDR UNUSED pc = abuf->addr;
12968 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12970 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1))) {
12976 if (NEBI (CPU (h_psr_esr), 0)) {
12984 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12988 abuf->written = written;
12993 /* tinv: tinv$pack $ICCi_2,$GRi,$s12 */
12996 SEM_FN_NAME (frvbf,tinv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12998 #define FLD(f) abuf->fields.sfmt_tieq.f
12999 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13000 int UNUSED written = 0;
13001 IADDR UNUSED pc = abuf->addr;
13002 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13004 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1)))) {
13010 if (NEBI (CPU (h_psr_esr), 0)) {
13018 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13022 abuf->written = written;
13027 /* ftira: ftira$pack $GRi,$s12 */
13030 SEM_FN_NAME (frvbf,ftira) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13032 #define FLD(f) abuf->fields.sfmt_ftine.f
13033 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13034 int UNUSED written = 0;
13035 IADDR UNUSED pc = abuf->addr;
13036 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13043 if (NEBI (CPU (h_psr_esr), 0)) {
13051 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13054 abuf->written = written;
13059 /* ftino: ftino$pack */
13062 SEM_FN_NAME (frvbf,ftino) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13064 #define FLD(f) abuf->fields.fmt_empty.f
13065 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13066 int UNUSED written = 0;
13067 IADDR UNUSED pc = abuf->addr;
13068 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13070 ((void) 0); /*nop*/
13076 /* ftine: ftine$pack $FCCi_2,$GRi,$s12 */
13079 SEM_FN_NAME (frvbf,ftine) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13081 #define FLD(f) abuf->fields.sfmt_ftine.f
13082 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13083 int UNUSED written = 0;
13084 IADDR UNUSED pc = abuf->addr;
13085 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13087 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))))) {
13093 if (NEBI (CPU (h_psr_esr), 0)) {
13101 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13105 abuf->written = written;
13110 /* ftieq: ftieq$pack $FCCi_2,$GRi,$s12 */
13113 SEM_FN_NAME (frvbf,ftieq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13115 #define FLD(f) abuf->fields.sfmt_ftine.f
13116 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13117 int UNUSED written = 0;
13118 IADDR UNUSED pc = abuf->addr;
13119 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13121 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3))) {
13127 if (NEBI (CPU (h_psr_esr), 0)) {
13135 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13139 abuf->written = written;
13144 /* ftilg: ftilg$pack $FCCi_2,$GRi,$s12 */
13147 SEM_FN_NAME (frvbf,ftilg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13149 #define FLD(f) abuf->fields.sfmt_ftine.f
13150 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13151 int UNUSED written = 0;
13152 IADDR UNUSED pc = abuf->addr;
13153 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13155 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)))) {
13161 if (NEBI (CPU (h_psr_esr), 0)) {
13169 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13173 abuf->written = written;
13178 /* ftiue: ftiue$pack $FCCi_2,$GRi,$s12 */
13181 SEM_FN_NAME (frvbf,ftiue) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13183 #define FLD(f) abuf->fields.sfmt_ftine.f
13184 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13185 int UNUSED written = 0;
13186 IADDR UNUSED pc = abuf->addr;
13187 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13189 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
13195 if (NEBI (CPU (h_psr_esr), 0)) {
13203 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13207 abuf->written = written;
13212 /* ftiul: ftiul$pack $FCCi_2,$GRi,$s12 */
13215 SEM_FN_NAME (frvbf,ftiul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13217 #define FLD(f) abuf->fields.sfmt_ftine.f
13218 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13219 int UNUSED written = 0;
13220 IADDR UNUSED pc = abuf->addr;
13221 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13223 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
13229 if (NEBI (CPU (h_psr_esr), 0)) {
13237 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13241 abuf->written = written;
13246 /* ftige: ftige$pack $FCCi_2,$GRi,$s12 */
13249 SEM_FN_NAME (frvbf,ftige) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13251 #define FLD(f) abuf->fields.sfmt_ftine.f
13252 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13253 int UNUSED written = 0;
13254 IADDR UNUSED pc = abuf->addr;
13255 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13257 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)))) {
13263 if (NEBI (CPU (h_psr_esr), 0)) {
13271 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13275 abuf->written = written;
13280 /* ftilt: ftilt$pack $FCCi_2,$GRi,$s12 */
13283 SEM_FN_NAME (frvbf,ftilt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13285 #define FLD(f) abuf->fields.sfmt_ftine.f
13286 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13287 int UNUSED written = 0;
13288 IADDR UNUSED pc = abuf->addr;
13289 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13291 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2))) {
13297 if (NEBI (CPU (h_psr_esr), 0)) {
13305 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13309 abuf->written = written;
13314 /* ftiuge: ftiuge$pack $FCCi_2,$GRi,$s12 */
13317 SEM_FN_NAME (frvbf,ftiuge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13319 #define FLD(f) abuf->fields.sfmt_ftine.f
13320 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13321 int UNUSED written = 0;
13322 IADDR UNUSED pc = abuf->addr;
13323 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13325 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))))) {
13331 if (NEBI (CPU (h_psr_esr), 0)) {
13339 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13343 abuf->written = written;
13348 /* ftiug: ftiug$pack $FCCi_2,$GRi,$s12 */
13351 SEM_FN_NAME (frvbf,ftiug) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13353 #define FLD(f) abuf->fields.sfmt_ftine.f
13354 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13355 int UNUSED written = 0;
13356 IADDR UNUSED pc = abuf->addr;
13357 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13359 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
13365 if (NEBI (CPU (h_psr_esr), 0)) {
13373 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13377 abuf->written = written;
13382 /* ftile: ftile$pack $FCCi_2,$GRi,$s12 */
13385 SEM_FN_NAME (frvbf,ftile) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13387 #define FLD(f) abuf->fields.sfmt_ftine.f
13388 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13389 int UNUSED written = 0;
13390 IADDR UNUSED pc = abuf->addr;
13391 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13393 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)))) {
13399 if (NEBI (CPU (h_psr_esr), 0)) {
13407 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13411 abuf->written = written;
13416 /* ftigt: ftigt$pack $FCCi_2,$GRi,$s12 */
13419 SEM_FN_NAME (frvbf,ftigt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13421 #define FLD(f) abuf->fields.sfmt_ftine.f
13422 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13423 int UNUSED written = 0;
13424 IADDR UNUSED pc = abuf->addr;
13425 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13427 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1))) {
13433 if (NEBI (CPU (h_psr_esr), 0)) {
13441 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13445 abuf->written = written;
13450 /* ftiule: ftiule$pack $FCCi_2,$GRi,$s12 */
13453 SEM_FN_NAME (frvbf,ftiule) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13455 #define FLD(f) abuf->fields.sfmt_ftine.f
13456 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13457 int UNUSED written = 0;
13458 IADDR UNUSED pc = abuf->addr;
13459 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13461 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))))) {
13467 if (NEBI (CPU (h_psr_esr), 0)) {
13475 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13479 abuf->written = written;
13484 /* ftiu: ftiu$pack $FCCi_2,$GRi,$s12 */
13487 SEM_FN_NAME (frvbf,ftiu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13489 #define FLD(f) abuf->fields.sfmt_ftine.f
13490 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13491 int UNUSED written = 0;
13492 IADDR UNUSED pc = abuf->addr;
13493 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13495 if (TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1))) {
13501 if (NEBI (CPU (h_psr_esr), 0)) {
13509 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13513 abuf->written = written;
13518 /* ftio: ftio$pack $FCCi_2,$GRi,$s12 */
13521 SEM_FN_NAME (frvbf,ftio) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13523 #define FLD(f) abuf->fields.sfmt_ftine.f
13524 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13525 int UNUSED written = 0;
13526 IADDR UNUSED pc = abuf->addr;
13527 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13529 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))))) {
13535 if (NEBI (CPU (h_psr_esr), 0)) {
13543 frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13547 abuf->written = written;
13552 /* break: break$pack */
13555 SEM_FN_NAME (frvbf,break) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13557 #define FLD(f) abuf->fields.sfmt_break.f
13558 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13559 int UNUSED written = 0;
13560 IADDR UNUSED pc = abuf->addr;
13561 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13570 frv_break (current_cpu);
13577 /* mtrap: mtrap$pack */
13580 SEM_FN_NAME (frvbf,mtrap) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13582 #define FLD(f) abuf->fields.fmt_empty.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 frv_mtrap (current_cpu);
13594 /* andcr: andcr$pack $CRi,$CRj,$CRk */
13597 SEM_FN_NAME (frvbf,andcr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13599 #define FLD(f) abuf->fields.sfmt_andcr.f
13600 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13601 int UNUSED written = 0;
13602 IADDR UNUSED pc = abuf->addr;
13603 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13606 UQI opval = frvbf_cr_logic (current_cpu, 0, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13607 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13608 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13615 /* orcr: orcr$pack $CRi,$CRj,$CRk */
13618 SEM_FN_NAME (frvbf,orcr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13620 #define FLD(f) abuf->fields.sfmt_andcr.f
13621 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13622 int UNUSED written = 0;
13623 IADDR UNUSED pc = abuf->addr;
13624 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13627 UQI opval = frvbf_cr_logic (current_cpu, 1, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13628 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13629 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13636 /* xorcr: xorcr$pack $CRi,$CRj,$CRk */
13639 SEM_FN_NAME (frvbf,xorcr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13641 #define FLD(f) abuf->fields.sfmt_andcr.f
13642 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13643 int UNUSED written = 0;
13644 IADDR UNUSED pc = abuf->addr;
13645 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13648 UQI opval = frvbf_cr_logic (current_cpu, 2, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13649 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13650 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13657 /* nandcr: nandcr$pack $CRi,$CRj,$CRk */
13660 SEM_FN_NAME (frvbf,nandcr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13662 #define FLD(f) abuf->fields.sfmt_andcr.f
13663 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13664 int UNUSED written = 0;
13665 IADDR UNUSED pc = abuf->addr;
13666 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13669 UQI opval = frvbf_cr_logic (current_cpu, 3, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13670 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13671 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13678 /* norcr: norcr$pack $CRi,$CRj,$CRk */
13681 SEM_FN_NAME (frvbf,norcr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13683 #define FLD(f) abuf->fields.sfmt_andcr.f
13684 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13685 int UNUSED written = 0;
13686 IADDR UNUSED pc = abuf->addr;
13687 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13690 UQI opval = frvbf_cr_logic (current_cpu, 4, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13691 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13692 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13699 /* andncr: andncr$pack $CRi,$CRj,$CRk */
13702 SEM_FN_NAME (frvbf,andncr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13704 #define FLD(f) abuf->fields.sfmt_andcr.f
13705 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13706 int UNUSED written = 0;
13707 IADDR UNUSED pc = abuf->addr;
13708 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13711 UQI opval = frvbf_cr_logic (current_cpu, 5, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13712 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13713 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13720 /* orncr: orncr$pack $CRi,$CRj,$CRk */
13723 SEM_FN_NAME (frvbf,orncr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13725 #define FLD(f) abuf->fields.sfmt_andcr.f
13726 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13727 int UNUSED written = 0;
13728 IADDR UNUSED pc = abuf->addr;
13729 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13732 UQI opval = frvbf_cr_logic (current_cpu, 6, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13733 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13734 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13741 /* nandncr: nandncr$pack $CRi,$CRj,$CRk */
13744 SEM_FN_NAME (frvbf,nandncr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13746 #define FLD(f) abuf->fields.sfmt_andcr.f
13747 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13748 int UNUSED written = 0;
13749 IADDR UNUSED pc = abuf->addr;
13750 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13753 UQI opval = frvbf_cr_logic (current_cpu, 7, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13754 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13755 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13762 /* norncr: norncr$pack $CRi,$CRj,$CRk */
13765 SEM_FN_NAME (frvbf,norncr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13767 #define FLD(f) abuf->fields.sfmt_andcr.f
13768 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13769 int UNUSED written = 0;
13770 IADDR UNUSED pc = abuf->addr;
13771 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13774 UQI opval = frvbf_cr_logic (current_cpu, 8, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13775 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13776 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13783 /* notcr: notcr$pack $CRj,$CRk */
13786 SEM_FN_NAME (frvbf,notcr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13788 #define FLD(f) abuf->fields.sfmt_andcr.f
13789 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13790 int UNUSED written = 0;
13791 IADDR UNUSED pc = abuf->addr;
13792 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13795 UQI opval = XORQI (CPU (h_cccr[FLD (f_CRj)]), 1);
13796 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13797 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13804 /* ckra: ckra$pack $CRj_int */
13807 SEM_FN_NAME (frvbf,ckra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13809 #define FLD(f) abuf->fields.sfmt_cckeq.f
13810 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13811 int UNUSED written = 0;
13812 IADDR UNUSED pc = abuf->addr;
13813 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13817 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
13818 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13825 /* ckno: ckno$pack $CRj_int */
13828 SEM_FN_NAME (frvbf,ckno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13830 #define FLD(f) abuf->fields.sfmt_cckeq.f
13831 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13832 int UNUSED written = 0;
13833 IADDR UNUSED pc = abuf->addr;
13834 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13838 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
13839 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13846 /* ckeq: ckeq$pack $ICCi_3,$CRj_int */
13849 SEM_FN_NAME (frvbf,ckeq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13851 #define FLD(f) abuf->fields.sfmt_cckeq.f
13852 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13853 int UNUSED written = 0;
13854 IADDR UNUSED pc = abuf->addr;
13855 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13857 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 4), 2))) {
13860 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
13861 written |= (1 << 1);
13862 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13867 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
13868 written |= (1 << 1);
13869 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13873 abuf->written = written;
13878 /* ckne: ckne$pack $ICCi_3,$CRj_int */
13881 SEM_FN_NAME (frvbf,ckne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13883 #define FLD(f) abuf->fields.sfmt_cckeq.f
13884 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13885 int UNUSED written = 0;
13886 IADDR UNUSED pc = abuf->addr;
13887 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13889 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 4), 2)))) {
13892 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
13893 written |= (1 << 1);
13894 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13899 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
13900 written |= (1 << 1);
13901 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13905 abuf->written = written;
13910 /* ckle: ckle$pack $ICCi_3,$CRj_int */
13913 SEM_FN_NAME (frvbf,ckle) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13915 #define FLD(f) abuf->fields.sfmt_cckeq.f
13916 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13917 int UNUSED written = 0;
13918 IADDR UNUSED pc = abuf->addr;
13919 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13921 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))))) {
13924 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
13925 written |= (1 << 1);
13926 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13931 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
13932 written |= (1 << 1);
13933 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13937 abuf->written = written;
13942 /* ckgt: ckgt$pack $ICCi_3,$CRj_int */
13945 SEM_FN_NAME (frvbf,ckgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13947 #define FLD(f) abuf->fields.sfmt_cckeq.f
13948 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13949 int UNUSED written = 0;
13950 IADDR UNUSED pc = abuf->addr;
13951 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13953 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)))))) {
13956 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
13957 written |= (1 << 1);
13958 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13963 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
13964 written |= (1 << 1);
13965 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13969 abuf->written = written;
13974 /* cklt: cklt$pack $ICCi_3,$CRj_int */
13977 SEM_FN_NAME (frvbf,cklt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13979 #define FLD(f) abuf->fields.sfmt_cckeq.f
13980 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13981 int UNUSED written = 0;
13982 IADDR UNUSED pc = abuf->addr;
13983 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13985 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)))) {
13988 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
13989 written |= (1 << 1);
13990 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13995 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
13996 written |= (1 << 1);
13997 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14001 abuf->written = written;
14006 /* ckge: ckge$pack $ICCi_3,$CRj_int */
14009 SEM_FN_NAME (frvbf,ckge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14011 #define FLD(f) abuf->fields.sfmt_cckeq.f
14012 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14013 int UNUSED written = 0;
14014 IADDR UNUSED pc = abuf->addr;
14015 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14017 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))))) {
14020 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14021 written |= (1 << 1);
14022 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14027 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14028 written |= (1 << 1);
14029 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14033 abuf->written = written;
14038 /* ckls: ckls$pack $ICCi_3,$CRj_int */
14041 SEM_FN_NAME (frvbf,ckls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14043 #define FLD(f) abuf->fields.sfmt_cckeq.f
14044 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14045 int UNUSED written = 0;
14046 IADDR UNUSED pc = abuf->addr;
14047 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14049 if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 4), 2)))) {
14052 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14053 written |= (1 << 1);
14054 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14059 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14060 written |= (1 << 1);
14061 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14065 abuf->written = written;
14070 /* ckhi: ckhi$pack $ICCi_3,$CRj_int */
14073 SEM_FN_NAME (frvbf,ckhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14075 #define FLD(f) abuf->fields.sfmt_cckeq.f
14076 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14077 int UNUSED written = 0;
14078 IADDR UNUSED pc = abuf->addr;
14079 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14081 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))))) {
14084 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14085 written |= (1 << 1);
14086 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14091 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14092 written |= (1 << 1);
14093 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14097 abuf->written = written;
14102 /* ckc: ckc$pack $ICCi_3,$CRj_int */
14105 SEM_FN_NAME (frvbf,ckc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14107 #define FLD(f) abuf->fields.sfmt_cckeq.f
14108 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14109 int UNUSED written = 0;
14110 IADDR UNUSED pc = abuf->addr;
14111 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14113 if (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 1))) {
14116 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14117 written |= (1 << 1);
14118 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14123 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14124 written |= (1 << 1);
14125 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14129 abuf->written = written;
14134 /* cknc: cknc$pack $ICCi_3,$CRj_int */
14137 SEM_FN_NAME (frvbf,cknc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14139 #define FLD(f) abuf->fields.sfmt_cckeq.f
14140 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14141 int UNUSED written = 0;
14142 IADDR UNUSED pc = abuf->addr;
14143 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14145 if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 1)))) {
14148 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14149 written |= (1 << 1);
14150 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14155 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14156 written |= (1 << 1);
14157 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14161 abuf->written = written;
14166 /* ckn: ckn$pack $ICCi_3,$CRj_int */
14169 SEM_FN_NAME (frvbf,ckn) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14171 #define FLD(f) abuf->fields.sfmt_cckeq.f
14172 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14173 int UNUSED written = 0;
14174 IADDR UNUSED pc = abuf->addr;
14175 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14177 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 8), 3))) {
14180 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14181 written |= (1 << 1);
14182 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14187 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14188 written |= (1 << 1);
14189 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14193 abuf->written = written;
14198 /* ckp: ckp$pack $ICCi_3,$CRj_int */
14201 SEM_FN_NAME (frvbf,ckp) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14203 #define FLD(f) abuf->fields.sfmt_cckeq.f
14204 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14205 int UNUSED written = 0;
14206 IADDR UNUSED pc = abuf->addr;
14207 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14209 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 8), 3)))) {
14212 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14213 written |= (1 << 1);
14214 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14219 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14220 written |= (1 << 1);
14221 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14225 abuf->written = written;
14230 /* ckv: ckv$pack $ICCi_3,$CRj_int */
14233 SEM_FN_NAME (frvbf,ckv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14235 #define FLD(f) abuf->fields.sfmt_cckeq.f
14236 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14237 int UNUSED written = 0;
14238 IADDR UNUSED pc = abuf->addr;
14239 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14241 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 2), 1))) {
14244 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14245 written |= (1 << 1);
14246 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14251 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14252 written |= (1 << 1);
14253 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14257 abuf->written = written;
14262 /* cknv: cknv$pack $ICCi_3,$CRj_int */
14265 SEM_FN_NAME (frvbf,cknv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14267 #define FLD(f) abuf->fields.sfmt_cckeq.f
14268 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14269 int UNUSED written = 0;
14270 IADDR UNUSED pc = abuf->addr;
14271 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14273 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 2), 1)))) {
14276 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14277 written |= (1 << 1);
14278 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14283 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14284 written |= (1 << 1);
14285 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14289 abuf->written = written;
14294 /* fckra: fckra$pack $CRj_float */
14297 SEM_FN_NAME (frvbf,fckra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14299 #define FLD(f) abuf->fields.sfmt_cfckne.f
14300 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14301 int UNUSED written = 0;
14302 IADDR UNUSED pc = abuf->addr;
14303 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14307 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14308 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14315 /* fckno: fckno$pack $CRj_float */
14318 SEM_FN_NAME (frvbf,fckno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14320 #define FLD(f) abuf->fields.sfmt_cfckne.f
14321 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14322 int UNUSED written = 0;
14323 IADDR UNUSED pc = abuf->addr;
14324 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14328 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14329 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14336 /* fckne: fckne$pack $FCCi_3,$CRj_float */
14339 SEM_FN_NAME (frvbf,fckne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14341 #define FLD(f) abuf->fields.sfmt_cfckne.f
14342 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14343 int UNUSED written = 0;
14344 IADDR UNUSED pc = abuf->addr;
14345 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14347 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))))) {
14350 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14351 written |= (1 << 1);
14352 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14357 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14358 written |= (1 << 1);
14359 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14363 abuf->written = written;
14368 /* fckeq: fckeq$pack $FCCi_3,$CRj_float */
14371 SEM_FN_NAME (frvbf,fckeq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14373 #define FLD(f) abuf->fields.sfmt_cfckne.f
14374 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14375 int UNUSED written = 0;
14376 IADDR UNUSED pc = abuf->addr;
14377 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14379 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 8), 3))) {
14382 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14383 written |= (1 << 1);
14384 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14389 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14390 written |= (1 << 1);
14391 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14395 abuf->written = written;
14400 /* fcklg: fcklg$pack $FCCi_3,$CRj_float */
14403 SEM_FN_NAME (frvbf,fcklg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14405 #define FLD(f) abuf->fields.sfmt_cfckne.f
14406 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14407 int UNUSED written = 0;
14408 IADDR UNUSED pc = abuf->addr;
14409 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14411 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)))) {
14414 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14415 written |= (1 << 1);
14416 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14421 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14422 written |= (1 << 1);
14423 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14427 abuf->written = written;
14432 /* fckue: fckue$pack $FCCi_3,$CRj_float */
14435 SEM_FN_NAME (frvbf,fckue) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14437 #define FLD(f) abuf->fields.sfmt_cfckne.f
14438 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14439 int UNUSED written = 0;
14440 IADDR UNUSED pc = abuf->addr;
14441 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14443 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1)))) {
14446 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14447 written |= (1 << 1);
14448 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14453 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14454 written |= (1 << 1);
14455 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14459 abuf->written = written;
14464 /* fckul: fckul$pack $FCCi_3,$CRj_float */
14467 SEM_FN_NAME (frvbf,fckul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14469 #define FLD(f) abuf->fields.sfmt_cfckne.f
14470 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14471 int UNUSED written = 0;
14472 IADDR UNUSED pc = abuf->addr;
14473 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14475 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1)))) {
14478 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14479 written |= (1 << 1);
14480 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14485 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14486 written |= (1 << 1);
14487 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14491 abuf->written = written;
14496 /* fckge: fckge$pack $FCCi_3,$CRj_float */
14499 SEM_FN_NAME (frvbf,fckge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14501 #define FLD(f) abuf->fields.sfmt_cfckne.f
14502 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14503 int UNUSED written = 0;
14504 IADDR UNUSED pc = abuf->addr;
14505 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14507 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)))) {
14510 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14511 written |= (1 << 1);
14512 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14517 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14518 written |= (1 << 1);
14519 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14523 abuf->written = written;
14528 /* fcklt: fcklt$pack $FCCi_3,$CRj_float */
14531 SEM_FN_NAME (frvbf,fcklt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14533 #define FLD(f) abuf->fields.sfmt_cfckne.f
14534 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14535 int UNUSED written = 0;
14536 IADDR UNUSED pc = abuf->addr;
14537 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14539 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 4), 2))) {
14542 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14543 written |= (1 << 1);
14544 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14549 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14550 written |= (1 << 1);
14551 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14555 abuf->written = written;
14560 /* fckuge: fckuge$pack $FCCi_3,$CRj_float */
14563 SEM_FN_NAME (frvbf,fckuge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14565 #define FLD(f) abuf->fields.sfmt_cfckne.f
14566 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14567 int UNUSED written = 0;
14568 IADDR UNUSED pc = abuf->addr;
14569 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14571 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))))) {
14574 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14575 written |= (1 << 1);
14576 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14581 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14582 written |= (1 << 1);
14583 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14587 abuf->written = written;
14592 /* fckug: fckug$pack $FCCi_3,$CRj_float */
14595 SEM_FN_NAME (frvbf,fckug) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14597 #define FLD(f) abuf->fields.sfmt_cfckne.f
14598 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14599 int UNUSED written = 0;
14600 IADDR UNUSED pc = abuf->addr;
14601 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14603 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1)))) {
14606 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14607 written |= (1 << 1);
14608 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14613 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14614 written |= (1 << 1);
14615 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14619 abuf->written = written;
14624 /* fckle: fckle$pack $FCCi_3,$CRj_float */
14627 SEM_FN_NAME (frvbf,fckle) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14629 #define FLD(f) abuf->fields.sfmt_cfckne.f
14630 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14631 int UNUSED written = 0;
14632 IADDR UNUSED pc = abuf->addr;
14633 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14635 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)))) {
14638 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14639 written |= (1 << 1);
14640 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14645 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14646 written |= (1 << 1);
14647 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14651 abuf->written = written;
14656 /* fckgt: fckgt$pack $FCCi_3,$CRj_float */
14659 SEM_FN_NAME (frvbf,fckgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14661 #define FLD(f) abuf->fields.sfmt_cfckne.f
14662 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14663 int UNUSED written = 0;
14664 IADDR UNUSED pc = abuf->addr;
14665 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14667 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 2), 1))) {
14670 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14671 written |= (1 << 1);
14672 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14677 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14678 written |= (1 << 1);
14679 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14683 abuf->written = written;
14688 /* fckule: fckule$pack $FCCi_3,$CRj_float */
14691 SEM_FN_NAME (frvbf,fckule) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14693 #define FLD(f) abuf->fields.sfmt_cfckne.f
14694 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14695 int UNUSED written = 0;
14696 IADDR UNUSED pc = abuf->addr;
14697 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14699 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))))) {
14702 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14703 written |= (1 << 1);
14704 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14709 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14710 written |= (1 << 1);
14711 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14715 abuf->written = written;
14720 /* fcku: fcku$pack $FCCi_3,$CRj_float */
14723 SEM_FN_NAME (frvbf,fcku) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14725 #define FLD(f) abuf->fields.sfmt_cfckne.f
14726 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14727 int UNUSED written = 0;
14728 IADDR UNUSED pc = abuf->addr;
14729 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14731 if (TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1))) {
14734 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14735 written |= (1 << 1);
14736 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14741 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14742 written |= (1 << 1);
14743 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14747 abuf->written = written;
14752 /* fcko: fcko$pack $FCCi_3,$CRj_float */
14755 SEM_FN_NAME (frvbf,fcko) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14757 #define FLD(f) abuf->fields.sfmt_cfckne.f
14758 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14759 int UNUSED written = 0;
14760 IADDR UNUSED pc = abuf->addr;
14761 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14763 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))))) {
14766 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14767 written |= (1 << 1);
14768 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14773 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14774 written |= (1 << 1);
14775 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14779 abuf->written = written;
14784 /* cckra: cckra$pack $CRj_int,$CCi,$cond */
14787 SEM_FN_NAME (frvbf,cckra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14789 #define FLD(f) abuf->fields.sfmt_cckeq.f
14790 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14791 int UNUSED written = 0;
14792 IADDR UNUSED pc = abuf->addr;
14793 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14795 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
14798 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14799 written |= (1 << 2);
14800 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14805 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14806 written |= (1 << 2);
14807 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14811 abuf->written = written;
14816 /* cckno: cckno$pack $CRj_int,$CCi,$cond */
14819 SEM_FN_NAME (frvbf,cckno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14821 #define FLD(f) abuf->fields.sfmt_cckeq.f
14822 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14823 int UNUSED written = 0;
14824 IADDR UNUSED pc = abuf->addr;
14825 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14827 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
14830 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14831 written |= (1 << 2);
14832 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14837 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14838 written |= (1 << 2);
14839 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14843 abuf->written = written;
14848 /* cckeq: cckeq$pack $ICCi_3,$CRj_int,$CCi,$cond */
14851 SEM_FN_NAME (frvbf,cckeq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14853 #define FLD(f) abuf->fields.sfmt_cckeq.f
14854 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14855 int UNUSED written = 0;
14856 IADDR UNUSED pc = abuf->addr;
14857 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14859 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
14860 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 4), 2))) {
14863 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14864 written |= (1 << 3);
14865 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14870 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14871 written |= (1 << 3);
14872 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14878 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14879 written |= (1 << 3);
14880 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14884 abuf->written = written;
14889 /* cckne: cckne$pack $ICCi_3,$CRj_int,$CCi,$cond */
14892 SEM_FN_NAME (frvbf,cckne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14894 #define FLD(f) abuf->fields.sfmt_cckeq.f
14895 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14896 int UNUSED written = 0;
14897 IADDR UNUSED pc = abuf->addr;
14898 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14900 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
14901 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 4), 2)))) {
14904 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14905 written |= (1 << 3);
14906 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14911 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14912 written |= (1 << 3);
14913 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14919 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14920 written |= (1 << 3);
14921 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14925 abuf->written = written;
14930 /* cckle: cckle$pack $ICCi_3,$CRj_int,$CCi,$cond */
14933 SEM_FN_NAME (frvbf,cckle) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14935 #define FLD(f) abuf->fields.sfmt_cckeq.f
14936 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14937 int UNUSED written = 0;
14938 IADDR UNUSED pc = abuf->addr;
14939 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14941 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
14942 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))))) {
14945 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14946 written |= (1 << 3);
14947 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14952 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14953 written |= (1 << 3);
14954 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14960 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14961 written |= (1 << 3);
14962 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14966 abuf->written = written;
14971 /* cckgt: cckgt$pack $ICCi_3,$CRj_int,$CCi,$cond */
14974 SEM_FN_NAME (frvbf,cckgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14976 #define FLD(f) abuf->fields.sfmt_cckeq.f
14977 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14978 int UNUSED written = 0;
14979 IADDR UNUSED pc = abuf->addr;
14980 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14982 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
14983 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)))))) {
14986 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14987 written |= (1 << 3);
14988 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14993 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14994 written |= (1 << 3);
14995 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15001 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15002 written |= (1 << 3);
15003 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15007 abuf->written = written;
15012 /* ccklt: ccklt$pack $ICCi_3,$CRj_int,$CCi,$cond */
15015 SEM_FN_NAME (frvbf,ccklt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15017 #define FLD(f) abuf->fields.sfmt_cckeq.f
15018 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15019 int UNUSED written = 0;
15020 IADDR UNUSED pc = abuf->addr;
15021 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15023 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15024 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)))) {
15027 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15028 written |= (1 << 3);
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 << 3);
15036 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15042 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15043 written |= (1 << 3);
15044 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15048 abuf->written = written;
15053 /* cckge: cckge$pack $ICCi_3,$CRj_int,$CCi,$cond */
15056 SEM_FN_NAME (frvbf,cckge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15058 #define FLD(f) abuf->fields.sfmt_cckeq.f
15059 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15060 int UNUSED written = 0;
15061 IADDR UNUSED pc = abuf->addr;
15062 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15064 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15065 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))))) {
15068 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15069 written |= (1 << 3);
15070 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15075 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15076 written |= (1 << 3);
15077 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15083 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15084 written |= (1 << 3);
15085 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15089 abuf->written = written;
15094 /* cckls: cckls$pack $ICCi_3,$CRj_int,$CCi,$cond */
15097 SEM_FN_NAME (frvbf,cckls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15099 #define FLD(f) abuf->fields.sfmt_cckeq.f
15100 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15101 int UNUSED written = 0;
15102 IADDR UNUSED pc = abuf->addr;
15103 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15105 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15106 if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 4), 2)))) {
15109 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15110 written |= (1 << 3);
15111 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15116 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15117 written |= (1 << 3);
15118 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15124 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15125 written |= (1 << 3);
15126 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15130 abuf->written = written;
15135 /* cckhi: cckhi$pack $ICCi_3,$CRj_int,$CCi,$cond */
15138 SEM_FN_NAME (frvbf,cckhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15140 #define FLD(f) abuf->fields.sfmt_cckeq.f
15141 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15142 int UNUSED written = 0;
15143 IADDR UNUSED pc = abuf->addr;
15144 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15146 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15147 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))))) {
15150 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15151 written |= (1 << 3);
15152 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15157 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15158 written |= (1 << 3);
15159 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15165 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15166 written |= (1 << 3);
15167 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15171 abuf->written = written;
15176 /* cckc: cckc$pack $ICCi_3,$CRj_int,$CCi,$cond */
15179 SEM_FN_NAME (frvbf,cckc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15181 #define FLD(f) abuf->fields.sfmt_cckeq.f
15182 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15183 int UNUSED written = 0;
15184 IADDR UNUSED pc = abuf->addr;
15185 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15187 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15188 if (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 1))) {
15191 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15192 written |= (1 << 3);
15193 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15198 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15199 written |= (1 << 3);
15200 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15206 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15207 written |= (1 << 3);
15208 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15212 abuf->written = written;
15217 /* ccknc: ccknc$pack $ICCi_3,$CRj_int,$CCi,$cond */
15220 SEM_FN_NAME (frvbf,ccknc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15222 #define FLD(f) abuf->fields.sfmt_cckeq.f
15223 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15224 int UNUSED written = 0;
15225 IADDR UNUSED pc = abuf->addr;
15226 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15228 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15229 if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 1)))) {
15232 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15233 written |= (1 << 3);
15234 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15239 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15240 written |= (1 << 3);
15241 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15247 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15248 written |= (1 << 3);
15249 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15253 abuf->written = written;
15258 /* cckn: cckn$pack $ICCi_3,$CRj_int,$CCi,$cond */
15261 SEM_FN_NAME (frvbf,cckn) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15263 #define FLD(f) abuf->fields.sfmt_cckeq.f
15264 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15265 int UNUSED written = 0;
15266 IADDR UNUSED pc = abuf->addr;
15267 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15269 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15270 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 8), 3))) {
15273 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15274 written |= (1 << 3);
15275 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15280 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15281 written |= (1 << 3);
15282 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15288 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15289 written |= (1 << 3);
15290 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15294 abuf->written = written;
15299 /* cckp: cckp$pack $ICCi_3,$CRj_int,$CCi,$cond */
15302 SEM_FN_NAME (frvbf,cckp) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15304 #define FLD(f) abuf->fields.sfmt_cckeq.f
15305 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15306 int UNUSED written = 0;
15307 IADDR UNUSED pc = abuf->addr;
15308 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15310 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15311 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 8), 3)))) {
15314 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15315 written |= (1 << 3);
15316 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15321 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15322 written |= (1 << 3);
15323 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15329 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15330 written |= (1 << 3);
15331 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15335 abuf->written = written;
15340 /* cckv: cckv$pack $ICCi_3,$CRj_int,$CCi,$cond */
15343 SEM_FN_NAME (frvbf,cckv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15345 #define FLD(f) abuf->fields.sfmt_cckeq.f
15346 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15347 int UNUSED written = 0;
15348 IADDR UNUSED pc = abuf->addr;
15349 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15351 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15352 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 2), 1))) {
15355 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15356 written |= (1 << 3);
15357 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15362 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15363 written |= (1 << 3);
15364 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15370 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15371 written |= (1 << 3);
15372 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15376 abuf->written = written;
15381 /* ccknv: ccknv$pack $ICCi_3,$CRj_int,$CCi,$cond */
15384 SEM_FN_NAME (frvbf,ccknv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15386 #define FLD(f) abuf->fields.sfmt_cckeq.f
15387 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15388 int UNUSED written = 0;
15389 IADDR UNUSED pc = abuf->addr;
15390 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15392 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15393 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 2), 1)))) {
15396 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15397 written |= (1 << 3);
15398 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15403 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15404 written |= (1 << 3);
15405 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15411 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15412 written |= (1 << 3);
15413 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15417 abuf->written = written;
15422 /* cfckra: cfckra$pack $CRj_float,$CCi,$cond */
15425 SEM_FN_NAME (frvbf,cfckra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15427 #define FLD(f) abuf->fields.sfmt_cfckne.f
15428 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15429 int UNUSED written = 0;
15430 IADDR UNUSED pc = abuf->addr;
15431 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15433 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15436 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15437 written |= (1 << 2);
15438 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15443 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15444 written |= (1 << 2);
15445 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15449 abuf->written = written;
15454 /* cfckno: cfckno$pack $CRj_float,$CCi,$cond */
15457 SEM_FN_NAME (frvbf,cfckno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15459 #define FLD(f) abuf->fields.sfmt_cfckne.f
15460 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15461 int UNUSED written = 0;
15462 IADDR UNUSED pc = abuf->addr;
15463 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15465 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15468 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15469 written |= (1 << 2);
15470 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15475 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15476 written |= (1 << 2);
15477 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15481 abuf->written = written;
15486 /* cfckne: cfckne$pack $FCCi_3,$CRj_float,$CCi,$cond */
15489 SEM_FN_NAME (frvbf,cfckne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15491 #define FLD(f) abuf->fields.sfmt_cfckne.f
15492 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15493 int UNUSED written = 0;
15494 IADDR UNUSED pc = abuf->addr;
15495 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15497 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15498 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))))) {
15501 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15502 written |= (1 << 3);
15503 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15508 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15509 written |= (1 << 3);
15510 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15516 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15517 written |= (1 << 3);
15518 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15522 abuf->written = written;
15527 /* cfckeq: cfckeq$pack $FCCi_3,$CRj_float,$CCi,$cond */
15530 SEM_FN_NAME (frvbf,cfckeq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15532 #define FLD(f) abuf->fields.sfmt_cfckne.f
15533 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15534 int UNUSED written = 0;
15535 IADDR UNUSED pc = abuf->addr;
15536 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15538 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15539 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 8), 3))) {
15542 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15543 written |= (1 << 3);
15544 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15549 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15550 written |= (1 << 3);
15551 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15557 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15558 written |= (1 << 3);
15559 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15563 abuf->written = written;
15568 /* cfcklg: cfcklg$pack $FCCi_3,$CRj_float,$CCi,$cond */
15571 SEM_FN_NAME (frvbf,cfcklg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15573 #define FLD(f) abuf->fields.sfmt_cfckne.f
15574 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15575 int UNUSED written = 0;
15576 IADDR UNUSED pc = abuf->addr;
15577 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15579 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15580 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)))) {
15583 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15584 written |= (1 << 3);
15585 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15590 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15591 written |= (1 << 3);
15592 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15598 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15599 written |= (1 << 3);
15600 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15604 abuf->written = written;
15609 /* cfckue: cfckue$pack $FCCi_3,$CRj_float,$CCi,$cond */
15612 SEM_FN_NAME (frvbf,cfckue) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15614 #define FLD(f) abuf->fields.sfmt_cfckne.f
15615 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15616 int UNUSED written = 0;
15617 IADDR UNUSED pc = abuf->addr;
15618 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15620 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15621 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1)))) {
15624 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15625 written |= (1 << 3);
15626 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15631 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15632 written |= (1 << 3);
15633 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15639 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15640 written |= (1 << 3);
15641 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15645 abuf->written = written;
15650 /* cfckul: cfckul$pack $FCCi_3,$CRj_float,$CCi,$cond */
15653 SEM_FN_NAME (frvbf,cfckul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15655 #define FLD(f) abuf->fields.sfmt_cfckne.f
15656 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15657 int UNUSED written = 0;
15658 IADDR UNUSED pc = abuf->addr;
15659 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15661 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15662 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1)))) {
15665 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15666 written |= (1 << 3);
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 << 3);
15674 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15680 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15681 written |= (1 << 3);
15682 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15686 abuf->written = written;
15691 /* cfckge: cfckge$pack $FCCi_3,$CRj_float,$CCi,$cond */
15694 SEM_FN_NAME (frvbf,cfckge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15696 #define FLD(f) abuf->fields.sfmt_cfckne.f
15697 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15698 int UNUSED written = 0;
15699 IADDR UNUSED pc = abuf->addr;
15700 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15702 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15703 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)))) {
15706 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15707 written |= (1 << 3);
15708 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15713 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15714 written |= (1 << 3);
15715 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15721 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15722 written |= (1 << 3);
15723 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15727 abuf->written = written;
15732 /* cfcklt: cfcklt$pack $FCCi_3,$CRj_float,$CCi,$cond */
15735 SEM_FN_NAME (frvbf,cfcklt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15737 #define FLD(f) abuf->fields.sfmt_cfckne.f
15738 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15739 int UNUSED written = 0;
15740 IADDR UNUSED pc = abuf->addr;
15741 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15743 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15744 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 4), 2))) {
15747 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15748 written |= (1 << 3);
15749 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15754 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15755 written |= (1 << 3);
15756 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15762 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15763 written |= (1 << 3);
15764 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15768 abuf->written = written;
15773 /* cfckuge: cfckuge$pack $FCCi_3,$CRj_float,$CCi,$cond */
15776 SEM_FN_NAME (frvbf,cfckuge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15778 #define FLD(f) abuf->fields.sfmt_cfckne.f
15779 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15780 int UNUSED written = 0;
15781 IADDR UNUSED pc = abuf->addr;
15782 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15784 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15785 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))))) {
15788 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15789 written |= (1 << 3);
15790 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15795 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15796 written |= (1 << 3);
15797 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15803 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15804 written |= (1 << 3);
15805 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15809 abuf->written = written;
15814 /* cfckug: cfckug$pack $FCCi_3,$CRj_float,$CCi,$cond */
15817 SEM_FN_NAME (frvbf,cfckug) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15819 #define FLD(f) abuf->fields.sfmt_cfckne.f
15820 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15821 int UNUSED written = 0;
15822 IADDR UNUSED pc = abuf->addr;
15823 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15825 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15826 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1)))) {
15829 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15830 written |= (1 << 3);
15831 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15836 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15837 written |= (1 << 3);
15838 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15844 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15845 written |= (1 << 3);
15846 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15850 abuf->written = written;
15855 /* cfckle: cfckle$pack $FCCi_3,$CRj_float,$CCi,$cond */
15858 SEM_FN_NAME (frvbf,cfckle) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15860 #define FLD(f) abuf->fields.sfmt_cfckne.f
15861 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15862 int UNUSED written = 0;
15863 IADDR UNUSED pc = abuf->addr;
15864 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15866 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15867 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)))) {
15870 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15871 written |= (1 << 3);
15872 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15877 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15878 written |= (1 << 3);
15879 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15885 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15886 written |= (1 << 3);
15887 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15891 abuf->written = written;
15896 /* cfckgt: cfckgt$pack $FCCi_3,$CRj_float,$CCi,$cond */
15899 SEM_FN_NAME (frvbf,cfckgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15901 #define FLD(f) abuf->fields.sfmt_cfckne.f
15902 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15903 int UNUSED written = 0;
15904 IADDR UNUSED pc = abuf->addr;
15905 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15907 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15908 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 2), 1))) {
15911 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15912 written |= (1 << 3);
15913 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15918 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15919 written |= (1 << 3);
15920 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15926 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15927 written |= (1 << 3);
15928 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15932 abuf->written = written;
15937 /* cfckule: cfckule$pack $FCCi_3,$CRj_float,$CCi,$cond */
15940 SEM_FN_NAME (frvbf,cfckule) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15942 #define FLD(f) abuf->fields.sfmt_cfckne.f
15943 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15944 int UNUSED written = 0;
15945 IADDR UNUSED pc = abuf->addr;
15946 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15948 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15949 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))))) {
15952 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15953 written |= (1 << 3);
15954 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15959 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15960 written |= (1 << 3);
15961 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15967 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15968 written |= (1 << 3);
15969 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15973 abuf->written = written;
15978 /* cfcku: cfcku$pack $FCCi_3,$CRj_float,$CCi,$cond */
15981 SEM_FN_NAME (frvbf,cfcku) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15983 #define FLD(f) abuf->fields.sfmt_cfckne.f
15984 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15985 int UNUSED written = 0;
15986 IADDR UNUSED pc = abuf->addr;
15987 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15989 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15990 if (TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1))) {
15993 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15994 written |= (1 << 3);
15995 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16000 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16001 written |= (1 << 3);
16002 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16008 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16009 written |= (1 << 3);
16010 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16014 abuf->written = written;
16019 /* cfcko: cfcko$pack $FCCi_3,$CRj_float,$CCi,$cond */
16022 SEM_FN_NAME (frvbf,cfcko) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16024 #define FLD(f) abuf->fields.sfmt_cfckne.f
16025 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16026 int UNUSED written = 0;
16027 IADDR UNUSED pc = abuf->addr;
16028 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16030 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
16031 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))))) {
16034 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16035 written |= (1 << 3);
16036 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16041 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16042 written |= (1 << 3);
16043 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16049 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16050 written |= (1 << 3);
16051 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16055 abuf->written = written;
16060 /* cjmpl: cjmpl$pack @($GRi,$GRj),$CCi,$cond */
16063 SEM_FN_NAME (frvbf,cjmpl) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16065 #define FLD(f) abuf->fields.sfmt_cjmpl.f
16066 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16067 int UNUSED written = 0;
16068 IADDR UNUSED pc = abuf->addr;
16069 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16071 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
16073 if (EQSI (FLD (f_LI), 1)) {
16074 frvbf_set_write_next_vliw_addr_to_LR (current_cpu, 1);
16077 USI opval = ANDSI (ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), 0xfffffffc);
16078 sim_queue_pc_write (current_cpu, opval);
16079 written |= (1 << 6);
16080 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
16082 frvbf_model_branch (current_cpu, pc, 2);
16086 abuf->written = written;
16091 /* ccalll: ccalll$pack @($GRi,$GRj),$CCi,$cond */
16094 SEM_FN_NAME (frvbf,ccalll) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16096 #define FLD(f) abuf->fields.sfmt_cjmpl.f
16097 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16098 int UNUSED written = 0;
16099 IADDR UNUSED pc = abuf->addr;
16100 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16102 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
16104 if (EQSI (FLD (f_LI), 1)) {
16105 frvbf_set_write_next_vliw_addr_to_LR (current_cpu, 1);
16108 USI opval = ANDSI (ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), 0xfffffffc);
16109 sim_queue_pc_write (current_cpu, opval);
16110 written |= (1 << 6);
16111 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
16113 frvbf_model_branch (current_cpu, pc, 2);
16117 abuf->written = written;
16122 /* ici: ici$pack @($GRi,$GRj) */
16125 SEM_FN_NAME (frvbf,ici) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16127 #define FLD(f) abuf->fields.sfmt_icpl.f
16128 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16129 int UNUSED written = 0;
16130 IADDR UNUSED pc = abuf->addr;
16131 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16133 frvbf_insn_cache_invalidate (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), 0);
16139 /* dci: dci$pack @($GRi,$GRj) */
16142 SEM_FN_NAME (frvbf,dci) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16144 #define FLD(f) abuf->fields.sfmt_icpl.f
16145 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16146 int UNUSED written = 0;
16147 IADDR UNUSED pc = abuf->addr;
16148 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16150 frvbf_data_cache_invalidate (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), 0);
16156 /* icei: icei$pack @($GRi,$GRj),$ae */
16159 SEM_FN_NAME (frvbf,icei) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16161 #define FLD(f) abuf->fields.sfmt_icei.f
16162 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16163 int UNUSED written = 0;
16164 IADDR UNUSED pc = abuf->addr;
16165 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16167 if (EQSI (FLD (f_ae), 0)) {
16168 frvbf_insn_cache_invalidate (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), -1);
16170 frvbf_insn_cache_invalidate (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), FLD (f_ae));
16177 /* dcei: dcei$pack @($GRi,$GRj),$ae */
16180 SEM_FN_NAME (frvbf,dcei) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16182 #define FLD(f) abuf->fields.sfmt_icei.f
16183 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16184 int UNUSED written = 0;
16185 IADDR UNUSED pc = abuf->addr;
16186 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16188 if (EQSI (FLD (f_ae), 0)) {
16189 frvbf_data_cache_invalidate (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), -1);
16191 frvbf_data_cache_invalidate (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), FLD (f_ae));
16198 /* dcf: dcf$pack @($GRi,$GRj) */
16201 SEM_FN_NAME (frvbf,dcf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16203 #define FLD(f) abuf->fields.sfmt_icpl.f
16204 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16205 int UNUSED written = 0;
16206 IADDR UNUSED pc = abuf->addr;
16207 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16209 frvbf_data_cache_flush (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), 0);
16215 /* dcef: dcef$pack @($GRi,$GRj),$ae */
16218 SEM_FN_NAME (frvbf,dcef) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16220 #define FLD(f) abuf->fields.sfmt_icei.f
16221 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16222 int UNUSED written = 0;
16223 IADDR UNUSED pc = abuf->addr;
16224 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16226 if (EQSI (FLD (f_ae), 0)) {
16227 frvbf_data_cache_flush (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), -1);
16229 frvbf_data_cache_flush (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), FLD (f_ae));
16236 /* witlb: witlb$pack $GRk,@($GRi,$GRj) */
16239 SEM_FN_NAME (frvbf,witlb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16241 #define FLD(f) abuf->fields.fmt_empty.f
16242 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16243 int UNUSED written = 0;
16244 IADDR UNUSED pc = abuf->addr;
16245 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16247 ((void) 0); /*nop*/
16253 /* wdtlb: wdtlb$pack $GRk,@($GRi,$GRj) */
16256 SEM_FN_NAME (frvbf,wdtlb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16258 #define FLD(f) abuf->fields.fmt_empty.f
16259 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16260 int UNUSED written = 0;
16261 IADDR UNUSED pc = abuf->addr;
16262 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16264 ((void) 0); /*nop*/
16270 /* itlbi: itlbi$pack @($GRi,$GRj) */
16273 SEM_FN_NAME (frvbf,itlbi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16275 #define FLD(f) abuf->fields.fmt_empty.f
16276 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16277 int UNUSED written = 0;
16278 IADDR UNUSED pc = abuf->addr;
16279 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16281 ((void) 0); /*nop*/
16287 /* dtlbi: dtlbi$pack @($GRi,$GRj) */
16290 SEM_FN_NAME (frvbf,dtlbi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16292 #define FLD(f) abuf->fields.fmt_empty.f
16293 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16294 int UNUSED written = 0;
16295 IADDR UNUSED pc = abuf->addr;
16296 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16298 ((void) 0); /*nop*/
16304 /* icpl: icpl$pack $GRi,$GRj,$lock */
16307 SEM_FN_NAME (frvbf,icpl) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16309 #define FLD(f) abuf->fields.sfmt_icpl.f
16310 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16311 int UNUSED written = 0;
16312 IADDR UNUSED pc = abuf->addr;
16313 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16315 frvbf_insn_cache_preload (current_cpu, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), FLD (f_lock));
16321 /* dcpl: dcpl$pack $GRi,$GRj,$lock */
16324 SEM_FN_NAME (frvbf,dcpl) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16326 #define FLD(f) abuf->fields.sfmt_icpl.f
16327 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16328 int UNUSED written = 0;
16329 IADDR UNUSED pc = abuf->addr;
16330 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16332 frvbf_data_cache_preload (current_cpu, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), FLD (f_lock));
16338 /* icul: icul$pack $GRi */
16341 SEM_FN_NAME (frvbf,icul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16343 #define FLD(f) abuf->fields.sfmt_jmpil.f
16344 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16345 int UNUSED written = 0;
16346 IADDR UNUSED pc = abuf->addr;
16347 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16349 frvbf_insn_cache_unlock (current_cpu, GET_H_GR (FLD (f_GRi)));
16355 /* dcul: dcul$pack $GRi */
16358 SEM_FN_NAME (frvbf,dcul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16360 #define FLD(f) abuf->fields.sfmt_jmpil.f
16361 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16362 int UNUSED written = 0;
16363 IADDR UNUSED pc = abuf->addr;
16364 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16366 frvbf_data_cache_unlock (current_cpu, GET_H_GR (FLD (f_GRi)));
16372 /* bar: bar$pack */
16375 SEM_FN_NAME (frvbf,bar) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16377 #define FLD(f) abuf->fields.fmt_empty.f
16378 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16379 int UNUSED written = 0;
16380 IADDR UNUSED pc = abuf->addr;
16381 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16383 ((void) 0); /*nop*/
16389 /* membar: membar$pack */
16392 SEM_FN_NAME (frvbf,membar) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16394 #define FLD(f) abuf->fields.fmt_empty.f
16395 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16396 int UNUSED written = 0;
16397 IADDR UNUSED pc = abuf->addr;
16398 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16400 ((void) 0); /*nop*/
16406 /* lrai: lrai$pack $GRi,$GRk,$LRAE,$LRAD,$LRAS */
16409 SEM_FN_NAME (frvbf,lrai) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16411 #define FLD(f) abuf->fields.fmt_empty.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 ((void) 0); /*nop*/
16423 /* lrad: lrad$pack $GRi,$GRk,$LRAE,$LRAD,$LRAS */
16426 SEM_FN_NAME (frvbf,lrad) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16428 #define FLD(f) abuf->fields.fmt_empty.f
16429 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16430 int UNUSED written = 0;
16431 IADDR UNUSED pc = abuf->addr;
16432 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16434 ((void) 0); /*nop*/
16440 /* tlbpr: tlbpr$pack $GRi,$GRj,$TLBPRopx,$TLBPRL */
16443 SEM_FN_NAME (frvbf,tlbpr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16445 #define FLD(f) abuf->fields.fmt_empty.f
16446 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16447 int UNUSED written = 0;
16448 IADDR UNUSED pc = abuf->addr;
16449 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16451 ((void) 0); /*nop*/
16457 /* cop1: cop1$pack $s6_1,$CPRi,$CPRj,$CPRk */
16460 SEM_FN_NAME (frvbf,cop1) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16462 #define FLD(f) abuf->fields.fmt_empty.f
16463 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16464 int UNUSED written = 0;
16465 IADDR UNUSED pc = abuf->addr;
16466 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16468 ((void) 0); /*nop*/
16474 /* cop2: cop2$pack $s6_1,$CPRi,$CPRj,$CPRk */
16477 SEM_FN_NAME (frvbf,cop2) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16479 #define FLD(f) abuf->fields.fmt_empty.f
16480 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16481 int UNUSED written = 0;
16482 IADDR UNUSED pc = abuf->addr;
16483 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16485 ((void) 0); /*nop*/
16491 /* clrgr: clrgr$pack $GRk */
16494 SEM_FN_NAME (frvbf,clrgr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16496 #define FLD(f) abuf->fields.sfmt_swapi.f
16497 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16498 int UNUSED written = 0;
16499 IADDR UNUSED pc = abuf->addr;
16500 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16503 frv_ref_SI (GET_H_GR (FLD (f_GRk)));
16504 frvbf_clear_ne_flags (current_cpu, FLD (f_GRk), 0);
16511 /* clrfr: clrfr$pack $FRk */
16514 SEM_FN_NAME (frvbf,clrfr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16516 #define FLD(f) abuf->fields.sfmt_cfmadds.f
16517 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16518 int UNUSED written = 0;
16519 IADDR UNUSED pc = abuf->addr;
16520 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16523 frv_ref_SI (GET_H_FR (FLD (f_FRk)));
16524 frvbf_clear_ne_flags (current_cpu, FLD (f_FRk), 1);
16531 /* clrga: clrga$pack */
16534 SEM_FN_NAME (frvbf,clrga) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16536 #define FLD(f) abuf->fields.fmt_empty.f
16537 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16538 int UNUSED written = 0;
16539 IADDR UNUSED pc = abuf->addr;
16540 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16542 frvbf_clear_ne_flags (current_cpu, -1, 0);
16548 /* clrfa: clrfa$pack */
16551 SEM_FN_NAME (frvbf,clrfa) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16553 #define FLD(f) abuf->fields.fmt_empty.f
16554 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16555 int UNUSED written = 0;
16556 IADDR UNUSED pc = abuf->addr;
16557 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16559 frvbf_clear_ne_flags (current_cpu, -1, 1);
16565 /* commitgr: commitgr$pack $GRk */
16568 SEM_FN_NAME (frvbf,commitgr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16570 #define FLD(f) abuf->fields.sfmt_setlos.f
16571 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16572 int UNUSED written = 0;
16573 IADDR UNUSED pc = abuf->addr;
16574 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16576 frvbf_commit (current_cpu, FLD (f_GRk), 0);
16582 /* commitfr: commitfr$pack $FRk */
16585 SEM_FN_NAME (frvbf,commitfr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16587 #define FLD(f) abuf->fields.sfmt_mhsethis.f
16588 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16589 int UNUSED written = 0;
16590 IADDR UNUSED pc = abuf->addr;
16591 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16593 frvbf_commit (current_cpu, FLD (f_FRk), 1);
16599 /* commitga: commitga$pack */
16602 SEM_FN_NAME (frvbf,commitga) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16604 #define FLD(f) abuf->fields.fmt_empty.f
16605 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16606 int UNUSED written = 0;
16607 IADDR UNUSED pc = abuf->addr;
16608 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16610 frvbf_commit (current_cpu, -1, 0);
16616 /* commitfa: commitfa$pack */
16619 SEM_FN_NAME (frvbf,commitfa) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16621 #define FLD(f) abuf->fields.fmt_empty.f
16622 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16623 int UNUSED written = 0;
16624 IADDR UNUSED pc = abuf->addr;
16625 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16627 frvbf_commit (current_cpu, -1, 1);
16633 /* fitos: fitos$pack $FRintj,$FRk */
16636 SEM_FN_NAME (frvbf,fitos) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16638 #define FLD(f) abuf->fields.sfmt_fditos.f
16639 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16640 int UNUSED written = 0;
16641 IADDR UNUSED pc = abuf->addr;
16642 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16645 SF opval = CGEN_CPU_FPU (current_cpu)->ops->floatsisf (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (FLD (f_FRj)));
16646 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
16647 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16654 /* fstoi: fstoi$pack $FRj,$FRintk */
16657 SEM_FN_NAME (frvbf,fstoi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16659 #define FLD(f) abuf->fields.sfmt_fdstoi.f
16660 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16661 int UNUSED written = 0;
16662 IADDR UNUSED pc = abuf->addr;
16663 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16666 SI opval = CGEN_CPU_FPU (current_cpu)->ops->fixsfsi (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
16667 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
16668 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16675 /* fitod: fitod$pack $FRintj,$FRdoublek */
16678 SEM_FN_NAME (frvbf,fitod) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16680 #define FLD(f) abuf->fields.sfmt_fitod.f
16681 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16682 int UNUSED written = 0;
16683 IADDR UNUSED pc = abuf->addr;
16684 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16687 DF opval = CGEN_CPU_FPU (current_cpu)->ops->floatsidf (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (FLD (f_FRj)));
16688 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
16689 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
16696 /* fdtoi: fdtoi$pack $FRdoublej,$FRintk */
16699 SEM_FN_NAME (frvbf,fdtoi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16701 #define FLD(f) abuf->fields.sfmt_fdtoi.f
16702 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16703 int UNUSED written = 0;
16704 IADDR UNUSED pc = abuf->addr;
16705 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16708 SI opval = CGEN_CPU_FPU (current_cpu)->ops->fixdfsi (CGEN_CPU_FPU (current_cpu), GET_H_FR_DOUBLE (FLD (f_FRj)));
16709 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
16710 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16717 /* fditos: fditos$pack $FRintj,$FRk */
16720 SEM_FN_NAME (frvbf,fditos) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16722 #define FLD(f) abuf->fields.sfmt_fditos.f
16723 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16724 int UNUSED written = 0;
16725 IADDR UNUSED pc = abuf->addr;
16726 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16730 SF opval = CGEN_CPU_FPU (current_cpu)->ops->floatsisf (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (FLD (f_FRj)));
16731 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
16732 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16735 SF opval = CGEN_CPU_FPU (current_cpu)->ops->floatsisf (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (((FLD (f_FRj)) + (1))));
16736 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
16737 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16745 /* fdstoi: fdstoi$pack $FRj,$FRintk */
16748 SEM_FN_NAME (frvbf,fdstoi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16750 #define FLD(f) abuf->fields.sfmt_fdstoi.f
16751 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16752 int UNUSED written = 0;
16753 IADDR UNUSED pc = abuf->addr;
16754 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16758 SI opval = CGEN_CPU_FPU (current_cpu)->ops->fixsfsi (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
16759 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
16760 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16763 USI opval = CGEN_CPU_FPU (current_cpu)->ops->fixsfsi (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRj)) + (1))));
16764 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
16765 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16773 /* nfditos: nfditos$pack $FRintj,$FRk */
16776 SEM_FN_NAME (frvbf,nfditos) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16778 #define FLD(f) abuf->fields.sfmt_fditos.f
16779 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16780 int UNUSED written = 0;
16781 IADDR UNUSED pc = abuf->addr;
16782 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16785 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
16787 SF opval = CGEN_CPU_FPU (current_cpu)->ops->floatsisf (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (FLD (f_FRj)));
16788 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
16789 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16791 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
16793 SF opval = CGEN_CPU_FPU (current_cpu)->ops->floatsisf (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (((FLD (f_FRj)) + (1))));
16794 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
16795 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16803 /* nfdstoi: nfdstoi$pack $FRj,$FRintk */
16806 SEM_FN_NAME (frvbf,nfdstoi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16808 #define FLD(f) abuf->fields.sfmt_fdstoi.f
16809 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16810 int UNUSED written = 0;
16811 IADDR UNUSED pc = abuf->addr;
16812 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16815 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
16817 SI opval = CGEN_CPU_FPU (current_cpu)->ops->fixsfsi (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
16818 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
16819 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16821 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
16823 USI opval = CGEN_CPU_FPU (current_cpu)->ops->fixsfsi (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRj)) + (1))));
16824 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
16825 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16833 /* cfitos: cfitos$pack $FRintj,$FRk,$CCi,$cond */
16836 SEM_FN_NAME (frvbf,cfitos) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16838 #define FLD(f) abuf->fields.sfmt_cfitos.f
16839 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16840 int UNUSED written = 0;
16841 IADDR UNUSED pc = abuf->addr;
16842 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16844 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
16846 SF opval = CGEN_CPU_FPU (current_cpu)->ops->floatsisf (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (FLD (f_FRj)));
16847 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
16848 written |= (1 << 3);
16849 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16853 abuf->written = written;
16858 /* cfstoi: cfstoi$pack $FRj,$FRintk,$CCi,$cond */
16861 SEM_FN_NAME (frvbf,cfstoi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16863 #define FLD(f) abuf->fields.sfmt_cfstoi.f
16864 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16865 int UNUSED written = 0;
16866 IADDR UNUSED pc = abuf->addr;
16867 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16869 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
16871 SI opval = CGEN_CPU_FPU (current_cpu)->ops->fixsfsi (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
16872 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
16873 written |= (1 << 3);
16874 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16878 abuf->written = written;
16883 /* nfitos: nfitos$pack $FRintj,$FRk */
16886 SEM_FN_NAME (frvbf,nfitos) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16888 #define FLD(f) abuf->fields.sfmt_fditos.f
16889 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16890 int UNUSED written = 0;
16891 IADDR UNUSED pc = abuf->addr;
16892 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16895 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
16897 SF opval = CGEN_CPU_FPU (current_cpu)->ops->floatsisf (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (FLD (f_FRj)));
16898 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
16899 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16907 /* nfstoi: nfstoi$pack $FRj,$FRintk */
16910 SEM_FN_NAME (frvbf,nfstoi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16912 #define FLD(f) abuf->fields.sfmt_fdstoi.f
16913 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16914 int UNUSED written = 0;
16915 IADDR UNUSED pc = abuf->addr;
16916 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16919 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
16921 SI opval = CGEN_CPU_FPU (current_cpu)->ops->fixsfsi (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
16922 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
16923 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16931 /* fmovs: fmovs$pack $FRj,$FRk */
16934 SEM_FN_NAME (frvbf,fmovs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16936 #define FLD(f) abuf->fields.sfmt_cfmadds.f
16937 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16938 int UNUSED written = 0;
16939 IADDR UNUSED pc = abuf->addr;
16940 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16943 SF opval = GET_H_FR (FLD (f_FRj));
16944 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
16945 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16952 /* fmovd: fmovd$pack $FRdoublej,$FRdoublek */
16955 SEM_FN_NAME (frvbf,fmovd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16957 #define FLD(f) abuf->fields.sfmt_fmaddd.f
16958 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16959 int UNUSED written = 0;
16960 IADDR UNUSED pc = abuf->addr;
16961 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16964 DF opval = GET_H_FR_DOUBLE (FLD (f_FRj));
16965 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
16966 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
16973 /* fdmovs: fdmovs$pack $FRj,$FRk */
16976 SEM_FN_NAME (frvbf,fdmovs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16978 #define FLD(f) abuf->fields.sfmt_fdmadds.f
16979 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16980 int UNUSED written = 0;
16981 IADDR UNUSED pc = abuf->addr;
16982 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16986 SF opval = GET_H_FR (FLD (f_FRj));
16987 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
16988 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16991 SF opval = GET_H_FR (((FLD (f_FRj)) + (1)));
16992 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
16993 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17001 /* cfmovs: cfmovs$pack $FRj,$FRk,$CCi,$cond */
17004 SEM_FN_NAME (frvbf,cfmovs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17006 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17007 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17008 int UNUSED written = 0;
17009 IADDR UNUSED pc = abuf->addr;
17010 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17012 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17014 SF opval = GET_H_FR (FLD (f_FRj));
17015 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17016 written |= (1 << 3);
17017 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17021 abuf->written = written;
17026 /* fnegs: fnegs$pack $FRj,$FRk */
17029 SEM_FN_NAME (frvbf,fnegs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17031 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17032 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17033 int UNUSED written = 0;
17034 IADDR UNUSED pc = abuf->addr;
17035 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17038 SF opval = CGEN_CPU_FPU (current_cpu)->ops->negsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17039 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17040 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17047 /* fnegd: fnegd$pack $FRdoublej,$FRdoublek */
17050 SEM_FN_NAME (frvbf,fnegd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17052 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17053 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17054 int UNUSED written = 0;
17055 IADDR UNUSED pc = abuf->addr;
17056 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17059 DF opval = CGEN_CPU_FPU (current_cpu)->ops->negdf (CGEN_CPU_FPU (current_cpu), GET_H_FR_DOUBLE (FLD (f_FRj)));
17060 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17061 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17068 /* fdnegs: fdnegs$pack $FRj,$FRk */
17071 SEM_FN_NAME (frvbf,fdnegs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17073 #define FLD(f) abuf->fields.sfmt_fdmadds.f
17074 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17075 int UNUSED written = 0;
17076 IADDR UNUSED pc = abuf->addr;
17077 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17081 SF opval = CGEN_CPU_FPU (current_cpu)->ops->negsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17082 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17083 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17086 SF opval = CGEN_CPU_FPU (current_cpu)->ops->negsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRj)) + (1))));
17087 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
17088 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17096 /* cfnegs: cfnegs$pack $FRj,$FRk,$CCi,$cond */
17099 SEM_FN_NAME (frvbf,cfnegs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17101 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17102 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17103 int UNUSED written = 0;
17104 IADDR UNUSED pc = abuf->addr;
17105 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17107 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17109 SF opval = CGEN_CPU_FPU (current_cpu)->ops->negsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17110 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17111 written |= (1 << 3);
17112 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17116 abuf->written = written;
17121 /* fabss: fabss$pack $FRj,$FRk */
17124 SEM_FN_NAME (frvbf,fabss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17126 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17127 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17128 int UNUSED written = 0;
17129 IADDR UNUSED pc = abuf->addr;
17130 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17133 SF opval = CGEN_CPU_FPU (current_cpu)->ops->abssf (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17134 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17135 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17142 /* fabsd: fabsd$pack $FRdoublej,$FRdoublek */
17145 SEM_FN_NAME (frvbf,fabsd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17147 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17148 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17149 int UNUSED written = 0;
17150 IADDR UNUSED pc = abuf->addr;
17151 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17154 DF opval = CGEN_CPU_FPU (current_cpu)->ops->absdf (CGEN_CPU_FPU (current_cpu), GET_H_FR_DOUBLE (FLD (f_FRj)));
17155 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17156 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17163 /* fdabss: fdabss$pack $FRj,$FRk */
17166 SEM_FN_NAME (frvbf,fdabss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17168 #define FLD(f) abuf->fields.sfmt_fdmadds.f
17169 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17170 int UNUSED written = 0;
17171 IADDR UNUSED pc = abuf->addr;
17172 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17176 SF opval = CGEN_CPU_FPU (current_cpu)->ops->abssf (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17177 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17178 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17181 SF opval = CGEN_CPU_FPU (current_cpu)->ops->abssf (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRj)) + (1))));
17182 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
17183 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17191 /* cfabss: cfabss$pack $FRj,$FRk,$CCi,$cond */
17194 SEM_FN_NAME (frvbf,cfabss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17196 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17197 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17198 int UNUSED written = 0;
17199 IADDR UNUSED pc = abuf->addr;
17200 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17202 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17204 SF opval = CGEN_CPU_FPU (current_cpu)->ops->abssf (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17205 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17206 written |= (1 << 3);
17207 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17211 abuf->written = written;
17216 /* fsqrts: fsqrts$pack $FRj,$FRk */
17219 SEM_FN_NAME (frvbf,fsqrts) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17221 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17222 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17223 int UNUSED written = 0;
17224 IADDR UNUSED pc = abuf->addr;
17225 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17228 SF opval = CGEN_CPU_FPU (current_cpu)->ops->sqrtsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17229 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17230 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17237 /* fdsqrts: fdsqrts$pack $FRj,$FRk */
17240 SEM_FN_NAME (frvbf,fdsqrts) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17242 #define FLD(f) abuf->fields.sfmt_fdmadds.f
17243 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17244 int UNUSED written = 0;
17245 IADDR UNUSED pc = abuf->addr;
17246 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17250 SF opval = CGEN_CPU_FPU (current_cpu)->ops->sqrtsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17251 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17252 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17255 SF opval = CGEN_CPU_FPU (current_cpu)->ops->sqrtsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRj)) + (1))));
17256 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
17257 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17265 /* nfdsqrts: nfdsqrts$pack $FRj,$FRk */
17268 SEM_FN_NAME (frvbf,nfdsqrts) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17270 #define FLD(f) abuf->fields.sfmt_fdmadds.f
17271 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17272 int UNUSED written = 0;
17273 IADDR UNUSED pc = abuf->addr;
17274 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17277 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
17279 SF opval = CGEN_CPU_FPU (current_cpu)->ops->sqrtsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17280 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17281 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17283 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
17285 SF opval = CGEN_CPU_FPU (current_cpu)->ops->sqrtsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRj)) + (1))));
17286 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
17287 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17295 /* fsqrtd: fsqrtd$pack $FRdoublej,$FRdoublek */
17298 SEM_FN_NAME (frvbf,fsqrtd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17300 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17301 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17302 int UNUSED written = 0;
17303 IADDR UNUSED pc = abuf->addr;
17304 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17307 DF opval = CGEN_CPU_FPU (current_cpu)->ops->sqrtdf (CGEN_CPU_FPU (current_cpu), GET_H_FR_DOUBLE (FLD (f_FRj)));
17308 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17309 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17316 /* cfsqrts: cfsqrts$pack $FRj,$FRk,$CCi,$cond */
17319 SEM_FN_NAME (frvbf,cfsqrts) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17321 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17322 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17323 int UNUSED written = 0;
17324 IADDR UNUSED pc = abuf->addr;
17325 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17327 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17329 SF opval = CGEN_CPU_FPU (current_cpu)->ops->sqrtsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17330 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17331 written |= (1 << 3);
17332 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17336 abuf->written = written;
17341 /* nfsqrts: nfsqrts$pack $FRj,$FRk */
17344 SEM_FN_NAME (frvbf,nfsqrts) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17346 #define FLD(f) abuf->fields.sfmt_cfmadds.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);
17353 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
17355 SF opval = CGEN_CPU_FPU (current_cpu)->ops->sqrtsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17356 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17357 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17365 /* fadds: fadds$pack $FRi,$FRj,$FRk */
17368 SEM_FN_NAME (frvbf,fadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17370 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17371 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17372 int UNUSED written = 0;
17373 IADDR UNUSED pc = abuf->addr;
17374 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17377 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)));
17378 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17379 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17386 /* fsubs: fsubs$pack $FRi,$FRj,$FRk */
17389 SEM_FN_NAME (frvbf,fsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17391 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17392 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17393 int UNUSED written = 0;
17394 IADDR UNUSED pc = abuf->addr;
17395 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17398 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)));
17399 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17400 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17407 /* fmuls: fmuls$pack $FRi,$FRj,$FRk */
17410 SEM_FN_NAME (frvbf,fmuls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17412 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17413 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17414 int UNUSED written = 0;
17415 IADDR UNUSED pc = abuf->addr;
17416 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17419 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)));
17420 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17421 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17428 /* fdivs: fdivs$pack $FRi,$FRj,$FRk */
17431 SEM_FN_NAME (frvbf,fdivs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17433 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17434 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17435 int UNUSED written = 0;
17436 IADDR UNUSED pc = abuf->addr;
17437 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17440 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)));
17441 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17442 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17449 /* faddd: faddd$pack $FRdoublei,$FRdoublej,$FRdoublek */
17452 SEM_FN_NAME (frvbf,faddd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17454 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17455 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17456 int UNUSED written = 0;
17457 IADDR UNUSED pc = abuf->addr;
17458 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17461 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)));
17462 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17463 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17470 /* fsubd: fsubd$pack $FRdoublei,$FRdoublej,$FRdoublek */
17473 SEM_FN_NAME (frvbf,fsubd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17475 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17476 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17477 int UNUSED written = 0;
17478 IADDR UNUSED pc = abuf->addr;
17479 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17482 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)));
17483 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17484 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17491 /* fmuld: fmuld$pack $FRdoublei,$FRdoublej,$FRdoublek */
17494 SEM_FN_NAME (frvbf,fmuld) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17496 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17497 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17498 int UNUSED written = 0;
17499 IADDR UNUSED pc = abuf->addr;
17500 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17503 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)));
17504 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17505 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17512 /* fdivd: fdivd$pack $FRdoublei,$FRdoublej,$FRdoublek */
17515 SEM_FN_NAME (frvbf,fdivd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17517 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17518 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17519 int UNUSED written = 0;
17520 IADDR UNUSED pc = abuf->addr;
17521 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17524 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)));
17525 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17526 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17533 /* cfadds: cfadds$pack $FRi,$FRj,$FRk,$CCi,$cond */
17536 SEM_FN_NAME (frvbf,cfadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17538 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17539 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17540 int UNUSED written = 0;
17541 IADDR UNUSED pc = abuf->addr;
17542 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17544 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17546 SF opval = CGEN_CPU_FPU (current_cpu)->ops->addsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)));
17547 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17548 written |= (1 << 4);
17549 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17553 abuf->written = written;
17558 /* cfsubs: cfsubs$pack $FRi,$FRj,$FRk,$CCi,$cond */
17561 SEM_FN_NAME (frvbf,cfsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17563 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17564 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17565 int UNUSED written = 0;
17566 IADDR UNUSED pc = abuf->addr;
17567 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17569 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17571 SF opval = CGEN_CPU_FPU (current_cpu)->ops->subsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)));
17572 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17573 written |= (1 << 4);
17574 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17578 abuf->written = written;
17583 /* cfmuls: cfmuls$pack $FRi,$FRj,$FRk,$CCi,$cond */
17586 SEM_FN_NAME (frvbf,cfmuls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17588 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17589 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17590 int UNUSED written = 0;
17591 IADDR UNUSED pc = abuf->addr;
17592 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17594 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17596 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)));
17597 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17598 written |= (1 << 4);
17599 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17603 abuf->written = written;
17608 /* cfdivs: cfdivs$pack $FRi,$FRj,$FRk,$CCi,$cond */
17611 SEM_FN_NAME (frvbf,cfdivs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17613 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17614 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17615 int UNUSED written = 0;
17616 IADDR UNUSED pc = abuf->addr;
17617 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17619 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17621 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)));
17622 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17623 written |= (1 << 4);
17624 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17628 abuf->written = written;
17633 /* nfadds: nfadds$pack $FRi,$FRj,$FRk */
17636 SEM_FN_NAME (frvbf,nfadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17638 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17639 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17640 int UNUSED written = 0;
17641 IADDR UNUSED pc = abuf->addr;
17642 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17645 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
17647 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)));
17648 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17649 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17657 /* nfsubs: nfsubs$pack $FRi,$FRj,$FRk */
17660 SEM_FN_NAME (frvbf,nfsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17662 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17663 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17664 int UNUSED written = 0;
17665 IADDR UNUSED pc = abuf->addr;
17666 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17669 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
17671 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)));
17672 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17673 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17681 /* nfmuls: nfmuls$pack $FRi,$FRj,$FRk */
17684 SEM_FN_NAME (frvbf,nfmuls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17686 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17687 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17688 int UNUSED written = 0;
17689 IADDR UNUSED pc = abuf->addr;
17690 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17693 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
17695 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)));
17696 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17697 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17705 /* nfdivs: nfdivs$pack $FRi,$FRj,$FRk */
17708 SEM_FN_NAME (frvbf,nfdivs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17710 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17711 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17712 int UNUSED written = 0;
17713 IADDR UNUSED pc = abuf->addr;
17714 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17717 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
17719 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)));
17720 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17721 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17729 /* fcmps: fcmps$pack $FRi,$FRj,$FCCi_2 */
17732 SEM_FN_NAME (frvbf,fcmps) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17734 #define FLD(f) abuf->fields.sfmt_cfcmps.f
17735 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17736 int UNUSED written = 0;
17737 IADDR UNUSED pc = abuf->addr;
17738 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17740 if (CGEN_CPU_FPU (current_cpu)->ops->gtsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)))) {
17743 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17744 written |= (1 << 2);
17745 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17748 if (CGEN_CPU_FPU (current_cpu)->ops->eqsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)))) {
17751 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17752 written |= (1 << 2);
17753 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17756 if (CGEN_CPU_FPU (current_cpu)->ops->ltsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)))) {
17759 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17760 written |= (1 << 2);
17761 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17766 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17767 written |= (1 << 2);
17768 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17774 abuf->written = written;
17779 /* fcmpd: fcmpd$pack $FRdoublei,$FRdoublej,$FCCi_2 */
17782 SEM_FN_NAME (frvbf,fcmpd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17784 #define FLD(f) abuf->fields.sfmt_fcmpd.f
17785 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17786 int UNUSED written = 0;
17787 IADDR UNUSED pc = abuf->addr;
17788 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17790 if (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)))) {
17793 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17794 written |= (1 << 2);
17795 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17798 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)))) {
17801 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17802 written |= (1 << 2);
17803 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17806 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)))) {
17809 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17810 written |= (1 << 2);
17811 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17816 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17817 written |= (1 << 2);
17818 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17824 abuf->written = written;
17829 /* cfcmps: cfcmps$pack $FRi,$FRj,$FCCi_2,$CCi,$cond */
17832 SEM_FN_NAME (frvbf,cfcmps) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17834 #define FLD(f) abuf->fields.sfmt_cfcmps.f
17835 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17836 int UNUSED written = 0;
17837 IADDR UNUSED pc = abuf->addr;
17838 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17840 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17841 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)))) {
17844 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17845 written |= (1 << 4);
17846 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17849 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)))) {
17852 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17853 written |= (1 << 4);
17854 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17857 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)))) {
17860 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17861 written |= (1 << 4);
17862 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17867 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17868 written |= (1 << 4);
17869 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17876 abuf->written = written;
17881 /* fdcmps: fdcmps$pack $FRi,$FRj,$FCCi_2 */
17884 SEM_FN_NAME (frvbf,fdcmps) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17886 #define FLD(f) abuf->fields.sfmt_nfdcmps.f
17887 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17888 int UNUSED written = 0;
17889 IADDR UNUSED pc = abuf->addr;
17890 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17893 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)))) {
17896 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17897 written |= (1 << 7);
17898 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17901 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)))) {
17904 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17905 written |= (1 << 7);
17906 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17909 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)))) {
17912 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17913 written |= (1 << 7);
17914 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17919 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17920 written |= (1 << 7);
17921 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17926 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))))) {
17929 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCi_2)) + (1))]), opval);
17930 written |= (1 << 8);
17931 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17934 if (CGEN_CPU_FPU (current_cpu)->ops->eqsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1))))) {
17937 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCi_2)) + (1))]), opval);
17938 written |= (1 << 8);
17939 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17942 if (CGEN_CPU_FPU (current_cpu)->ops->ltsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1))))) {
17945 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCi_2)) + (1))]), opval);
17946 written |= (1 << 8);
17947 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17952 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCi_2)) + (1))]), opval);
17953 written |= (1 << 8);
17954 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17961 abuf->written = written;
17966 /* fmadds: fmadds$pack $FRi,$FRj,$FRk */
17969 SEM_FN_NAME (frvbf,fmadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17971 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17972 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17973 int UNUSED written = 0;
17974 IADDR UNUSED pc = abuf->addr;
17975 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17978 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)));
17979 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17980 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17987 /* fmsubs: fmsubs$pack $FRi,$FRj,$FRk */
17990 SEM_FN_NAME (frvbf,fmsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17992 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17993 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17994 int UNUSED written = 0;
17995 IADDR UNUSED pc = abuf->addr;
17996 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17999 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)));
18000 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18001 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18008 /* fmaddd: fmaddd$pack $FRdoublei,$FRdoublej,$FRdoublek */
18011 SEM_FN_NAME (frvbf,fmaddd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18013 #define FLD(f) abuf->fields.sfmt_fmaddd.f
18014 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18015 int UNUSED written = 0;
18016 IADDR UNUSED pc = abuf->addr;
18017 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18020 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)));
18021 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
18022 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
18029 /* fmsubd: fmsubd$pack $FRdoublei,$FRdoublej,$FRdoublek */
18032 SEM_FN_NAME (frvbf,fmsubd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18034 #define FLD(f) abuf->fields.sfmt_fmaddd.f
18035 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18036 int UNUSED written = 0;
18037 IADDR UNUSED pc = abuf->addr;
18038 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18041 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)));
18042 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
18043 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
18050 /* fdmadds: fdmadds$pack $FRi,$FRj,$FRk */
18053 SEM_FN_NAME (frvbf,fdmadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18055 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18056 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18057 int UNUSED written = 0;
18058 IADDR UNUSED pc = abuf->addr;
18059 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18063 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)));
18064 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18065 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18068 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))));
18069 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18070 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18078 /* nfdmadds: nfdmadds$pack $FRi,$FRj,$FRk */
18081 SEM_FN_NAME (frvbf,nfdmadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18083 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18084 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18085 int UNUSED written = 0;
18086 IADDR UNUSED pc = abuf->addr;
18087 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18090 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18092 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)));
18093 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18094 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18096 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18098 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))));
18099 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18100 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18108 /* cfmadds: cfmadds$pack $FRi,$FRj,$FRk,$CCi,$cond */
18111 SEM_FN_NAME (frvbf,cfmadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18113 #define FLD(f) abuf->fields.sfmt_cfmadds.f
18114 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18115 int UNUSED written = 0;
18116 IADDR UNUSED pc = abuf->addr;
18117 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18119 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
18121 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)));
18122 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18123 written |= (1 << 5);
18124 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18128 abuf->written = written;
18133 /* cfmsubs: cfmsubs$pack $FRi,$FRj,$FRk,$CCi,$cond */
18136 SEM_FN_NAME (frvbf,cfmsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18138 #define FLD(f) abuf->fields.sfmt_cfmadds.f
18139 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18140 int UNUSED written = 0;
18141 IADDR UNUSED pc = abuf->addr;
18142 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18144 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
18146 SF opval = CGEN_CPU_FPU (current_cpu)->ops->subsf (CGEN_CPU_FPU (current_cpu), CGEN_CPU_FPU (current_cpu)->ops->mulsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj))), GET_H_FR (FLD (f_FRk)));
18147 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18148 written |= (1 << 5);
18149 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18153 abuf->written = written;
18158 /* nfmadds: nfmadds$pack $FRi,$FRj,$FRk */
18161 SEM_FN_NAME (frvbf,nfmadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18163 #define FLD(f) abuf->fields.sfmt_cfmadds.f
18164 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18165 int UNUSED written = 0;
18166 IADDR UNUSED pc = abuf->addr;
18167 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18170 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18172 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)));
18173 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18174 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18182 /* nfmsubs: nfmsubs$pack $FRi,$FRj,$FRk */
18185 SEM_FN_NAME (frvbf,nfmsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18187 #define FLD(f) abuf->fields.sfmt_cfmadds.f
18188 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18189 int UNUSED written = 0;
18190 IADDR UNUSED pc = abuf->addr;
18191 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18194 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18196 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)));
18197 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18198 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18206 /* fmas: fmas$pack $FRi,$FRj,$FRk */
18209 SEM_FN_NAME (frvbf,fmas) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18211 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18212 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18213 int UNUSED written = 0;
18214 IADDR UNUSED pc = abuf->addr;
18215 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18219 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)));
18220 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18221 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18224 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))));
18225 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18226 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18234 /* fmss: fmss$pack $FRi,$FRj,$FRk */
18237 SEM_FN_NAME (frvbf,fmss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18239 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18240 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18241 int UNUSED written = 0;
18242 IADDR UNUSED pc = abuf->addr;
18243 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18247 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)));
18248 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18249 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18252 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))));
18253 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18254 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18262 /* fdmas: fdmas$pack $FRi,$FRj,$FRk */
18265 SEM_FN_NAME (frvbf,fdmas) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18267 #define FLD(f) abuf->fields.sfmt_fdmas.f
18268 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18269 int UNUSED written = 0;
18270 IADDR UNUSED pc = abuf->addr;
18271 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18275 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)));
18276 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18277 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18280 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))));
18281 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18282 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18285 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))));
18286 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (2)), opval);
18287 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18290 SF opval = CGEN_CPU_FPU (current_cpu)->ops->addsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (3))), GET_H_FR (((FLD (f_FRj)) + (3))));
18291 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (3)), opval);
18292 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18300 /* fdmss: fdmss$pack $FRi,$FRj,$FRk */
18303 SEM_FN_NAME (frvbf,fdmss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18305 #define FLD(f) abuf->fields.sfmt_fdmas.f
18306 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18307 int UNUSED written = 0;
18308 IADDR UNUSED pc = abuf->addr;
18309 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18313 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)));
18314 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18315 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18318 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))));
18319 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18320 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18323 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))));
18324 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (2)), opval);
18325 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18328 SF opval = CGEN_CPU_FPU (current_cpu)->ops->subsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (3))), GET_H_FR (((FLD (f_FRj)) + (3))));
18329 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (3)), opval);
18330 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18338 /* nfdmas: nfdmas$pack $FRi,$FRj,$FRk */
18341 SEM_FN_NAME (frvbf,nfdmas) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18343 #define FLD(f) abuf->fields.sfmt_fdmas.f
18344 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18345 int UNUSED written = 0;
18346 IADDR UNUSED pc = abuf->addr;
18347 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18350 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18351 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18352 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 2));
18353 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 3));
18355 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)));
18356 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18357 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18360 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))));
18361 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18362 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18365 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))));
18366 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (2)), opval);
18367 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18370 SF opval = CGEN_CPU_FPU (current_cpu)->ops->addsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (3))), GET_H_FR (((FLD (f_FRj)) + (3))));
18371 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (3)), opval);
18372 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18380 /* nfdmss: nfdmss$pack $FRi,$FRj,$FRk */
18383 SEM_FN_NAME (frvbf,nfdmss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18385 #define FLD(f) abuf->fields.sfmt_fdmas.f
18386 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18387 int UNUSED written = 0;
18388 IADDR UNUSED pc = abuf->addr;
18389 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18392 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18393 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18394 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 2));
18395 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 3));
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->subsf (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);
18407 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))));
18408 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (2)), opval);
18409 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18412 SF opval = CGEN_CPU_FPU (current_cpu)->ops->subsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (3))), GET_H_FR (((FLD (f_FRj)) + (3))));
18413 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (3)), opval);
18414 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18422 /* cfmas: cfmas$pack $FRi,$FRj,$FRk,$CCi,$cond */
18425 SEM_FN_NAME (frvbf,cfmas) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18427 #define FLD(f) abuf->fields.sfmt_cfmas.f
18428 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18429 int UNUSED written = 0;
18430 IADDR UNUSED pc = abuf->addr;
18431 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18433 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
18436 SF opval = CGEN_CPU_FPU (current_cpu)->ops->mulsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)));
18437 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18438 written |= (1 << 9);
18439 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18442 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))));
18443 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18444 written |= (1 << 10);
18445 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18450 abuf->written = written;
18455 /* cfmss: cfmss$pack $FRi,$FRj,$FRk,$CCi,$cond */
18458 SEM_FN_NAME (frvbf,cfmss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18460 #define FLD(f) abuf->fields.sfmt_cfmas.f
18461 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18462 int UNUSED written = 0;
18463 IADDR UNUSED pc = abuf->addr;
18464 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18466 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
18469 SF opval = CGEN_CPU_FPU (current_cpu)->ops->mulsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)));
18470 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18471 written |= (1 << 9);
18472 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18475 SF opval = CGEN_CPU_FPU (current_cpu)->ops->subsf (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1))));
18476 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18477 written |= (1 << 10);
18478 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18483 abuf->written = written;
18488 /* fmad: fmad$pack $FRi,$FRj,$FRk */
18491 SEM_FN_NAME (frvbf,fmad) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18493 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18494 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18495 int UNUSED written = 0;
18496 IADDR UNUSED pc = abuf->addr;
18497 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18501 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)))));
18502 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18503 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18506 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))))));
18507 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18508 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18516 /* fmsd: fmsd$pack $FRi,$FRj,$FRk */
18519 SEM_FN_NAME (frvbf,fmsd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18521 #define FLD(f) abuf->fields.sfmt_fdmadds.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);
18529 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)))));
18530 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18531 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18534 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))))));
18535 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18536 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18544 /* nfmas: nfmas$pack $FRi,$FRj,$FRk */
18547 SEM_FN_NAME (frvbf,nfmas) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18549 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18550 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18551 int UNUSED written = 0;
18552 IADDR UNUSED pc = abuf->addr;
18553 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18556 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18558 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)));
18559 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18560 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18562 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18564 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))));
18565 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18566 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18574 /* nfmss: nfmss$pack $FRi,$FRj,$FRk */
18577 SEM_FN_NAME (frvbf,nfmss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18579 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18580 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18581 int UNUSED written = 0;
18582 IADDR UNUSED pc = abuf->addr;
18583 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18586 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18588 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)));
18589 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18590 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18592 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18594 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))));
18595 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18596 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18604 /* fdadds: fdadds$pack $FRi,$FRj,$FRk */
18607 SEM_FN_NAME (frvbf,fdadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18609 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18610 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18611 int UNUSED written = 0;
18612 IADDR UNUSED pc = abuf->addr;
18613 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18617 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)));
18618 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18619 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18622 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))));
18623 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18624 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18632 /* fdsubs: fdsubs$pack $FRi,$FRj,$FRk */
18635 SEM_FN_NAME (frvbf,fdsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18637 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18638 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18639 int UNUSED written = 0;
18640 IADDR UNUSED pc = abuf->addr;
18641 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18645 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)));
18646 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18647 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18650 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))));
18651 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18652 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18660 /* fdmuls: fdmuls$pack $FRi,$FRj,$FRk */
18663 SEM_FN_NAME (frvbf,fdmuls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18665 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18666 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18667 int UNUSED written = 0;
18668 IADDR UNUSED pc = abuf->addr;
18669 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18673 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)));
18674 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18675 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18678 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))));
18679 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18680 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18688 /* fddivs: fddivs$pack $FRi,$FRj,$FRk */
18691 SEM_FN_NAME (frvbf,fddivs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18693 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18694 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18695 int UNUSED written = 0;
18696 IADDR UNUSED pc = abuf->addr;
18697 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18701 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)));
18702 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18703 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18706 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))));
18707 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18708 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18716 /* fdsads: fdsads$pack $FRi,$FRj,$FRk */
18719 SEM_FN_NAME (frvbf,fdsads) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18721 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18722 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18723 int UNUSED written = 0;
18724 IADDR UNUSED pc = abuf->addr;
18725 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18729 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)));
18730 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18731 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18734 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))));
18735 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18736 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18744 /* fdmulcs: fdmulcs$pack $FRi,$FRj,$FRk */
18747 SEM_FN_NAME (frvbf,fdmulcs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18749 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18750 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18751 int UNUSED written = 0;
18752 IADDR UNUSED pc = abuf->addr;
18753 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18757 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))));
18758 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18759 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18762 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)));
18763 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18764 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18772 /* nfdmulcs: nfdmulcs$pack $FRi,$FRj,$FRk */
18775 SEM_FN_NAME (frvbf,nfdmulcs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18777 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18778 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18779 int UNUSED written = 0;
18780 IADDR UNUSED pc = abuf->addr;
18781 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18784 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18786 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))));
18787 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18788 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18790 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18792 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)));
18793 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18794 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18802 /* nfdadds: nfdadds$pack $FRi,$FRj,$FRk */
18805 SEM_FN_NAME (frvbf,nfdadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18807 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18808 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18809 int UNUSED written = 0;
18810 IADDR UNUSED pc = abuf->addr;
18811 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18814 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18816 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)));
18817 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18818 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18820 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18822 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))));
18823 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18824 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18832 /* nfdsubs: nfdsubs$pack $FRi,$FRj,$FRk */
18835 SEM_FN_NAME (frvbf,nfdsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18837 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18838 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18839 int UNUSED written = 0;
18840 IADDR UNUSED pc = abuf->addr;
18841 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18844 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18846 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)));
18847 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18848 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18850 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18852 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))));
18853 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18854 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18862 /* nfdmuls: nfdmuls$pack $FRi,$FRj,$FRk */
18865 SEM_FN_NAME (frvbf,nfdmuls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18867 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18868 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18869 int UNUSED written = 0;
18870 IADDR UNUSED pc = abuf->addr;
18871 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18874 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18876 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)));
18877 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18878 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18880 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18882 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))));
18883 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18884 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18892 /* nfddivs: nfddivs$pack $FRi,$FRj,$FRk */
18895 SEM_FN_NAME (frvbf,nfddivs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18897 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18898 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18899 int UNUSED written = 0;
18900 IADDR UNUSED pc = abuf->addr;
18901 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18904 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18906 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)));
18907 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18908 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18910 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18912 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))));
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 /* nfdsads: nfdsads$pack $FRi,$FRj,$FRk */
18925 SEM_FN_NAME (frvbf,nfdsads) (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);
18934 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18936 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)));
18937 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18938 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18940 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18942 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))));
18943 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18944 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18952 /* nfdcmps: nfdcmps$pack $FRi,$FRj,$FCCi_2 */
18955 SEM_FN_NAME (frvbf,nfdcmps) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18957 #define FLD(f) abuf->fields.sfmt_nfdcmps.f
18958 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18959 int UNUSED written = 0;
18960 IADDR UNUSED pc = abuf->addr;
18961 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18964 frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18965 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)))) {
18968 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
18969 written |= (1 << 8);
18970 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
18973 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)))) {
18976 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
18977 written |= (1 << 8);
18978 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
18981 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)))) {
18984 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
18985 written |= (1 << 8);
18986 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
18991 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
18992 written |= (1 << 8);
18993 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
18998 frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18999 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))))) {
19002 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCi_2)) + (1))]), opval);
19003 written |= (1 << 9);
19004 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
19007 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))))) {
19010 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCi_2)) + (1))]), opval);
19011 written |= (1 << 9);
19012 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
19015 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))))) {
19018 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCi_2)) + (1))]), opval);
19019 written |= (1 << 9);
19020 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
19025 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCi_2)) + (1))]), opval);
19026 written |= (1 << 9);
19027 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
19034 abuf->written = written;
19039 /* mhsetlos: mhsetlos$pack $u12,$FRklo */
19042 SEM_FN_NAME (frvbf,mhsetlos) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19044 #define FLD(f) abuf->fields.sfmt_mhsetlos.f
19045 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19046 int UNUSED written = 0;
19047 IADDR UNUSED pc = abuf->addr;
19048 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19051 UHI opval = FLD (f_u12);
19052 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, FLD (f_FRk), opval);
19053 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19060 /* mhsethis: mhsethis$pack $u12,$FRkhi */
19063 SEM_FN_NAME (frvbf,mhsethis) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19065 #define FLD(f) abuf->fields.sfmt_mhsethis.f
19066 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19067 int UNUSED written = 0;
19068 IADDR UNUSED pc = abuf->addr;
19069 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19072 UHI opval = FLD (f_u12);
19073 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, FLD (f_FRk), opval);
19074 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19081 /* mhdsets: mhdsets$pack $u12,$FRintk */
19084 SEM_FN_NAME (frvbf,mhdsets) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19086 #define FLD(f) abuf->fields.sfmt_mhdsets.f
19087 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19088 int UNUSED written = 0;
19089 IADDR UNUSED pc = abuf->addr;
19090 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19094 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
19095 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19096 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19099 UHI opval = FLD (f_u12);
19100 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19101 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19104 UHI opval = FLD (f_u12);
19105 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19106 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19114 /* mhsetloh: mhsetloh$pack $s5,$FRklo */
19117 SEM_FN_NAME (frvbf,mhsetloh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19119 #define FLD(f) abuf->fields.sfmt_mhsetloh.f
19120 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19121 int UNUSED written = 0;
19122 IADDR UNUSED pc = abuf->addr;
19123 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19127 tmp_tmp = GET_H_FR_LO (FLD (f_FRk));
19128 tmp_tmp = ANDHI (tmp_tmp, 2047);
19129 tmp_tmp = ORHI (tmp_tmp, SLLSI (ANDSI (FLD (f_s5), 31), 11));
19131 UHI opval = tmp_tmp;
19132 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, FLD (f_FRk), opval);
19133 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19141 /* mhsethih: mhsethih$pack $s5,$FRkhi */
19144 SEM_FN_NAME (frvbf,mhsethih) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19146 #define FLD(f) abuf->fields.sfmt_mhsethih.f
19147 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19148 int UNUSED written = 0;
19149 IADDR UNUSED pc = abuf->addr;
19150 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19154 tmp_tmp = GET_H_FR_HI (FLD (f_FRk));
19155 tmp_tmp = ANDHI (tmp_tmp, 2047);
19156 tmp_tmp = ORHI (tmp_tmp, SLLSI (ANDSI (FLD (f_s5), 31), 11));
19158 UHI opval = tmp_tmp;
19159 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, FLD (f_FRk), opval);
19160 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19168 /* mhdseth: mhdseth$pack $s5,$FRintk */
19171 SEM_FN_NAME (frvbf,mhdseth) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19173 #define FLD(f) abuf->fields.sfmt_mhdseth.f
19174 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19175 int UNUSED written = 0;
19176 IADDR UNUSED pc = abuf->addr;
19177 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19181 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
19182 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19183 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19187 tmp_tmp = GET_H_FR_HI (((FLD (f_FRk)) + (0)));
19188 tmp_tmp = ANDHI (tmp_tmp, 2047);
19189 tmp_tmp = ORHI (tmp_tmp, SLLSI (ANDSI (FLD (f_s5), 31), 11));
19191 UHI opval = tmp_tmp;
19192 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19193 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19198 tmp_tmp = GET_H_FR_LO (((FLD (f_FRk)) + (0)));
19199 tmp_tmp = ANDHI (tmp_tmp, 2047);
19200 tmp_tmp = ORHI (tmp_tmp, SLLSI (ANDSI (FLD (f_s5), 31), 11));
19202 UHI opval = tmp_tmp;
19203 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19204 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19213 /* mand: mand$pack $FRinti,$FRintj,$FRintk */
19216 SEM_FN_NAME (frvbf,mand) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19218 #define FLD(f) abuf->fields.sfmt_mwcut.f
19219 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19220 int UNUSED written = 0;
19221 IADDR UNUSED pc = abuf->addr;
19222 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19225 SI opval = ANDSI (GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
19226 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19227 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19234 /* mor: mor$pack $FRinti,$FRintj,$FRintk */
19237 SEM_FN_NAME (frvbf,mor) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19239 #define FLD(f) abuf->fields.sfmt_mwcut.f
19240 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19241 int UNUSED written = 0;
19242 IADDR UNUSED pc = abuf->addr;
19243 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19246 SI opval = ORSI (GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
19247 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19248 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19255 /* mxor: mxor$pack $FRinti,$FRintj,$FRintk */
19258 SEM_FN_NAME (frvbf,mxor) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19260 #define FLD(f) abuf->fields.sfmt_mwcut.f
19261 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19262 int UNUSED written = 0;
19263 IADDR UNUSED pc = abuf->addr;
19264 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19267 SI opval = XORSI (GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
19268 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19269 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19276 /* cmand: cmand$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
19279 SEM_FN_NAME (frvbf,cmand) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19281 #define FLD(f) abuf->fields.sfmt_cmand.f
19282 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19283 int UNUSED written = 0;
19284 IADDR UNUSED pc = abuf->addr;
19285 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19287 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
19289 SI opval = ANDSI (GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
19290 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19291 written |= (1 << 4);
19292 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19296 abuf->written = written;
19301 /* cmor: cmor$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
19304 SEM_FN_NAME (frvbf,cmor) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19306 #define FLD(f) abuf->fields.sfmt_cmand.f
19307 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19308 int UNUSED written = 0;
19309 IADDR UNUSED pc = abuf->addr;
19310 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19312 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
19314 SI opval = ORSI (GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
19315 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19316 written |= (1 << 4);
19317 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19321 abuf->written = written;
19326 /* cmxor: cmxor$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
19329 SEM_FN_NAME (frvbf,cmxor) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19331 #define FLD(f) abuf->fields.sfmt_cmand.f
19332 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19333 int UNUSED written = 0;
19334 IADDR UNUSED pc = abuf->addr;
19335 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19337 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
19339 SI opval = XORSI (GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
19340 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19341 written |= (1 << 4);
19342 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19346 abuf->written = written;
19351 /* mnot: mnot$pack $FRintj,$FRintk */
19354 SEM_FN_NAME (frvbf,mnot) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19356 #define FLD(f) abuf->fields.sfmt_mcut.f
19357 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19358 int UNUSED written = 0;
19359 IADDR UNUSED pc = abuf->addr;
19360 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19363 SI opval = INVSI (GET_H_FR_INT (FLD (f_FRj)));
19364 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19365 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19372 /* cmnot: cmnot$pack $FRintj,$FRintk,$CCi,$cond */
19375 SEM_FN_NAME (frvbf,cmnot) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19377 #define FLD(f) abuf->fields.sfmt_cmand.f
19378 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19379 int UNUSED written = 0;
19380 IADDR UNUSED pc = abuf->addr;
19381 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19383 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
19385 SI opval = INVSI (GET_H_FR_INT (FLD (f_FRj)));
19386 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19387 written |= (1 << 3);
19388 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19392 abuf->written = written;
19397 /* mrotli: mrotli$pack $FRinti,$u6,$FRintk */
19400 SEM_FN_NAME (frvbf,mrotli) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19402 #define FLD(f) abuf->fields.sfmt_mwcuti.f
19403 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19404 int UNUSED written = 0;
19405 IADDR UNUSED pc = abuf->addr;
19406 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19409 SI opval = ROLSI (GET_H_FR_INT (FLD (f_FRi)), ANDSI (FLD (f_u6), 31));
19410 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19411 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19418 /* mrotri: mrotri$pack $FRinti,$u6,$FRintk */
19421 SEM_FN_NAME (frvbf,mrotri) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19423 #define FLD(f) abuf->fields.sfmt_mwcuti.f
19424 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19425 int UNUSED written = 0;
19426 IADDR UNUSED pc = abuf->addr;
19427 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19430 SI opval = RORSI (GET_H_FR_INT (FLD (f_FRi)), ANDSI (FLD (f_u6), 31));
19431 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19432 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19439 /* mwcut: mwcut$pack $FRinti,$FRintj,$FRintk */
19442 SEM_FN_NAME (frvbf,mwcut) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19444 #define FLD(f) abuf->fields.sfmt_mwcut.f
19445 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19446 int UNUSED written = 0;
19447 IADDR UNUSED pc = abuf->addr;
19448 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19451 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)));
19452 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19453 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19460 /* mwcuti: mwcuti$pack $FRinti,$u6,$FRintk */
19463 SEM_FN_NAME (frvbf,mwcuti) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19465 #define FLD(f) abuf->fields.sfmt_mwcuti.f
19466 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19467 int UNUSED written = 0;
19468 IADDR UNUSED pc = abuf->addr;
19469 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19472 SI opval = frvbf_cut (current_cpu, GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (((FLD (f_FRi)) + (1))), FLD (f_u6));
19473 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19474 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19481 /* mcut: mcut$pack $ACC40Si,$FRintj,$FRintk */
19484 SEM_FN_NAME (frvbf,mcut) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19486 #define FLD(f) abuf->fields.sfmt_mcut.f
19487 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19488 int UNUSED written = 0;
19489 IADDR UNUSED pc = abuf->addr;
19490 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19493 SI opval = frvbf_media_cut (current_cpu, GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_FR_INT (FLD (f_FRj)));
19494 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19495 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19502 /* mcuti: mcuti$pack $ACC40Si,$s6,$FRintk */
19505 SEM_FN_NAME (frvbf,mcuti) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19507 #define FLD(f) abuf->fields.sfmt_mcuti.f
19508 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19509 int UNUSED written = 0;
19510 IADDR UNUSED pc = abuf->addr;
19511 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19514 SI opval = frvbf_media_cut (current_cpu, GET_H_ACC40S (FLD (f_ACC40Si)), FLD (f_s6));
19515 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19516 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19523 /* mcutss: mcutss$pack $ACC40Si,$FRintj,$FRintk */
19526 SEM_FN_NAME (frvbf,mcutss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19528 #define FLD(f) abuf->fields.sfmt_mcut.f
19529 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19530 int UNUSED written = 0;
19531 IADDR UNUSED pc = abuf->addr;
19532 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19535 SI opval = frvbf_media_cut_ss (current_cpu, GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_FR_INT (FLD (f_FRj)));
19536 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19537 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19544 /* mcutssi: mcutssi$pack $ACC40Si,$s6,$FRintk */
19547 SEM_FN_NAME (frvbf,mcutssi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19549 #define FLD(f) abuf->fields.sfmt_mcuti.f
19550 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19551 int UNUSED written = 0;
19552 IADDR UNUSED pc = abuf->addr;
19553 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19556 SI opval = frvbf_media_cut_ss (current_cpu, GET_H_ACC40S (FLD (f_ACC40Si)), FLD (f_s6));
19557 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19558 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19565 /* mdcutssi: mdcutssi$pack $ACC40Si,$s6,$FRintkeven */
19568 SEM_FN_NAME (frvbf,mdcutssi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19570 #define FLD(f) abuf->fields.sfmt_mdcutssi.f
19571 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19572 int UNUSED written = 0;
19573 IADDR UNUSED pc = abuf->addr;
19574 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19576 if (ANDSI (FLD (f_ACC40Si), SUBSI (2, 1))) {
19577 frvbf_media_acc_not_aligned (current_cpu);
19579 if (ANDSI (FLD (f_FRk), SUBSI (2, 1))) {
19580 frvbf_media_register_not_aligned (current_cpu);
19584 SI opval = frvbf_media_cut_ss (current_cpu, GET_H_ACC40S (FLD (f_ACC40Si)), FLD (f_s6));
19585 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19586 written |= (1 << 5);
19587 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19590 USI opval = frvbf_media_cut_ss (current_cpu, GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))), FLD (f_s6));
19591 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
19592 written |= (1 << 6);
19593 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19599 abuf->written = written;
19604 /* maveh: maveh$pack $FRinti,$FRintj,$FRintk */
19607 SEM_FN_NAME (frvbf,maveh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19609 #define FLD(f) abuf->fields.sfmt_mwcut.f
19610 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19611 int UNUSED written = 0;
19612 IADDR UNUSED pc = abuf->addr;
19613 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19616 SI opval = frvbf_media_average (current_cpu, GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
19617 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19618 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19625 /* msllhi: msllhi$pack $FRinti,$u6,$FRintk */
19628 SEM_FN_NAME (frvbf,msllhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19630 #define FLD(f) abuf->fields.sfmt_msllhi.f
19631 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19632 int UNUSED written = 0;
19633 IADDR UNUSED pc = abuf->addr;
19634 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19638 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
19639 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
19640 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19643 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
19644 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19645 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19648 UHI opval = SLLHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), ANDSI (FLD (f_u6), 15));
19649 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19650 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19653 UHI opval = SLLHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), ANDSI (FLD (f_u6), 15));
19654 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19655 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19663 /* msrlhi: msrlhi$pack $FRinti,$u6,$FRintk */
19666 SEM_FN_NAME (frvbf,msrlhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19668 #define FLD(f) abuf->fields.sfmt_msllhi.f
19669 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19670 int UNUSED written = 0;
19671 IADDR UNUSED pc = abuf->addr;
19672 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19676 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
19677 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
19678 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19681 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
19682 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19683 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19686 UHI opval = SRLHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), ANDSI (FLD (f_u6), 15));
19687 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19688 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19691 UHI opval = SRLHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), ANDSI (FLD (f_u6), 15));
19692 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19693 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19701 /* msrahi: msrahi$pack $FRinti,$u6,$FRintk */
19704 SEM_FN_NAME (frvbf,msrahi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19706 #define FLD(f) abuf->fields.sfmt_msllhi.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);
19714 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
19715 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
19716 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19719 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
19720 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19721 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19724 UHI opval = SRAHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), ANDSI (FLD (f_u6), 15));
19725 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19726 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19729 UHI opval = SRAHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), ANDSI (FLD (f_u6), 15));
19730 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19731 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19739 /* mdrotli: mdrotli$pack $FRintieven,$s6,$FRintkeven */
19742 SEM_FN_NAME (frvbf,mdrotli) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19744 #define FLD(f) abuf->fields.sfmt_mdrotli.f
19745 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19746 int UNUSED written = 0;
19747 IADDR UNUSED pc = abuf->addr;
19748 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19750 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1)))) {
19751 frvbf_media_register_not_aligned (current_cpu);
19755 SI opval = ROLSI (GET_H_FR_INT (FLD (f_FRi)), ANDSI (FLD (f_s6), 31));
19756 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19757 written |= (1 << 5);
19758 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19761 USI opval = ROLSI (GET_H_FR_INT (((FLD (f_FRi)) + (1))), ANDSI (FLD (f_s6), 31));
19762 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
19763 written |= (1 << 6);
19764 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19769 abuf->written = written;
19774 /* mcplhi: mcplhi$pack $FRinti,$u6,$FRintk */
19777 SEM_FN_NAME (frvbf,mcplhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19779 #define FLD(f) abuf->fields.sfmt_mcplhi.f
19780 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19781 int UNUSED written = 0;
19782 IADDR UNUSED pc = abuf->addr;
19783 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19790 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
19791 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
19792 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19795 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
19796 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19797 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19799 tmp_shift = ANDSI (FLD (f_u6), 15);
19800 tmp_arg1 = SLLHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), tmp_shift);
19801 if (NEHI (tmp_shift, 0)) {
19803 tmp_arg2 = GET_H_FR_HI (((FLD (f_FRi)) + (1)));
19804 tmp_arg2 = SRLHI (SLLHI (tmp_arg2, SUBSI (15, tmp_shift)), SUBSI (15, tmp_shift));
19805 tmp_arg1 = ORHI (tmp_arg1, tmp_arg2);
19809 UHI opval = tmp_arg1;
19810 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19811 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19819 /* mcpli: mcpli$pack $FRinti,$u6,$FRintk */
19822 SEM_FN_NAME (frvbf,mcpli) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19824 #define FLD(f) abuf->fields.sfmt_mwcuti.f
19825 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19826 int UNUSED written = 0;
19827 IADDR UNUSED pc = abuf->addr;
19828 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19833 tmp_shift = ANDSI (FLD (f_u6), 31);
19834 tmp_tmp = SLLSI (GET_H_FR_INT (FLD (f_FRi)), tmp_shift);
19835 if (NESI (tmp_shift, 0)) {
19838 tmp_tmp1 = SRLSI (SLLSI (GET_H_FR_INT (((FLD (f_FRi)) + (1))), SUBSI (31, tmp_shift)), SUBSI (31, tmp_shift));
19839 tmp_tmp = ORSI (tmp_tmp, tmp_tmp1);
19843 SI opval = tmp_tmp;
19844 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19845 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19853 /* msaths: msaths$pack $FRinti,$FRintj,$FRintk */
19856 SEM_FN_NAME (frvbf,msaths) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19858 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
19859 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19860 int UNUSED written = 0;
19861 IADDR UNUSED pc = abuf->addr;
19862 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19870 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
19871 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
19872 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
19873 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
19875 if (GTHI (tmp_argihi, tmp_argjhi)) {
19877 UHI opval = tmp_argjhi;
19878 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19879 written |= (1 << 9);
19880 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19883 if (LTHI (tmp_argihi, INVHI (tmp_argjhi))) {
19885 UHI opval = INVHI (tmp_argjhi);
19886 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19887 written |= (1 << 9);
19888 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19892 UHI opval = tmp_argihi;
19893 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19894 written |= (1 << 9);
19895 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19899 if (GTHI (tmp_argilo, tmp_argjlo)) {
19901 UHI opval = tmp_argjlo;
19902 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19903 written |= (1 << 10);
19904 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19907 if (LTHI (tmp_argilo, INVHI (tmp_argjlo))) {
19909 UHI opval = INVHI (tmp_argjlo);
19910 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19911 written |= (1 << 10);
19912 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19916 UHI opval = tmp_argilo;
19917 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19918 written |= (1 << 10);
19919 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19925 abuf->written = written;
19930 /* mqsaths: mqsaths$pack $FRintieven,$FRintjeven,$FRintkeven */
19933 SEM_FN_NAME (frvbf,mqsaths) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19935 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
19936 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19937 int UNUSED written = 0;
19938 IADDR UNUSED pc = abuf->addr;
19939 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19941 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
19942 frvbf_media_register_not_aligned (current_cpu);
19950 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
19951 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19952 written |= (1 << 14);
19953 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19956 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
19957 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
19958 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
19959 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
19961 if (GTHI (tmp_argihi, tmp_argjhi)) {
19963 UHI opval = tmp_argjhi;
19964 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19965 written |= (1 << 15);
19966 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19969 if (LTHI (tmp_argihi, INVHI (tmp_argjhi))) {
19971 UHI opval = INVHI (tmp_argjhi);
19972 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19973 written |= (1 << 15);
19974 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19978 UHI opval = tmp_argihi;
19979 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19980 written |= (1 << 15);
19981 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19985 if (GTHI (tmp_argilo, tmp_argjlo)) {
19987 UHI opval = tmp_argjlo;
19988 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19989 written |= (1 << 17);
19990 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19993 if (LTHI (tmp_argilo, INVHI (tmp_argjlo))) {
19995 UHI opval = INVHI (tmp_argjlo);
19996 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19997 written |= (1 << 17);
19998 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20002 UHI opval = tmp_argilo;
20003 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20004 written |= (1 << 17);
20005 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20010 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20011 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20012 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20013 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20015 if (GTHI (tmp_argihi, tmp_argjhi)) {
20017 UHI opval = tmp_argjhi;
20018 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
20019 written |= (1 << 16);
20020 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20023 if (LTHI (tmp_argihi, INVHI (tmp_argjhi))) {
20025 UHI opval = INVHI (tmp_argjhi);
20026 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
20027 written |= (1 << 16);
20028 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20032 UHI opval = tmp_argihi;
20033 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
20034 written |= (1 << 16);
20035 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20039 if (GTHI (tmp_argilo, tmp_argjlo)) {
20041 UHI opval = tmp_argjlo;
20042 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
20043 written |= (1 << 18);
20044 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20047 if (LTHI (tmp_argilo, INVHI (tmp_argjlo))) {
20049 UHI opval = INVHI (tmp_argjlo);
20050 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
20051 written |= (1 << 18);
20052 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20056 UHI opval = tmp_argilo;
20057 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
20058 written |= (1 << 18);
20059 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20066 abuf->written = written;
20071 /* msathu: msathu$pack $FRinti,$FRintj,$FRintk */
20074 SEM_FN_NAME (frvbf,msathu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20076 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20077 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20078 int UNUSED written = 0;
20079 IADDR UNUSED pc = abuf->addr;
20080 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20088 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20089 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20090 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20091 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20093 if (GTUHI (tmp_argihi, tmp_argjhi)) {
20095 UHI opval = tmp_argjhi;
20096 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20097 written |= (1 << 9);
20098 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20102 UHI opval = tmp_argihi;
20103 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20104 written |= (1 << 9);
20105 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20108 if (GTUHI (tmp_argilo, tmp_argjlo)) {
20110 UHI opval = tmp_argjlo;
20111 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20112 written |= (1 << 10);
20113 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20117 UHI opval = tmp_argilo;
20118 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20119 written |= (1 << 10);
20120 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20125 abuf->written = written;
20130 /* mcmpsh: mcmpsh$pack $FRinti,$FRintj,$FCCk */
20133 SEM_FN_NAME (frvbf,mcmpsh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20135 #define FLD(f) abuf->fields.sfmt_mcmpsh.f
20136 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20137 int UNUSED written = 0;
20138 IADDR UNUSED pc = abuf->addr;
20139 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20141 if (ANDSI (FLD (f_FCCk), SUBSI (2, 1))) {
20142 frvbf_media_cr_not_aligned (current_cpu);
20150 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20151 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20152 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20153 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20155 if (GTHI (tmp_argihi, tmp_argjhi)) {
20158 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20159 written |= (1 << 9);
20160 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20163 if (EQHI (tmp_argihi, tmp_argjhi)) {
20166 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20167 written |= (1 << 9);
20168 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20171 if (LTHI (tmp_argihi, tmp_argjhi)) {
20174 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20175 written |= (1 << 9);
20176 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20181 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20182 written |= (1 << 9);
20183 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20188 if (GTHI (tmp_argilo, tmp_argjlo)) {
20191 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCk)) + (1))]), opval);
20192 written |= (1 << 10);
20193 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20196 if (EQHI (tmp_argilo, tmp_argjlo)) {
20199 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCk)) + (1))]), opval);
20200 written |= (1 << 10);
20201 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20204 if (LTHI (tmp_argilo, tmp_argjlo)) {
20207 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCk)) + (1))]), opval);
20208 written |= (1 << 10);
20209 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20214 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCk)) + (1))]), opval);
20215 written |= (1 << 10);
20216 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20224 abuf->written = written;
20229 /* mcmpuh: mcmpuh$pack $FRinti,$FRintj,$FCCk */
20232 SEM_FN_NAME (frvbf,mcmpuh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20234 #define FLD(f) abuf->fields.sfmt_mcmpsh.f
20235 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20236 int UNUSED written = 0;
20237 IADDR UNUSED pc = abuf->addr;
20238 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20240 if (ANDSI (FLD (f_FCCk), SUBSI (2, 1))) {
20241 frvbf_media_cr_not_aligned (current_cpu);
20249 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20250 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20251 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20252 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20254 if (GTUHI (tmp_argihi, tmp_argjhi)) {
20257 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20258 written |= (1 << 9);
20259 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20262 if (EQHI (tmp_argihi, tmp_argjhi)) {
20265 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20266 written |= (1 << 9);
20267 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20270 if (LTUHI (tmp_argihi, tmp_argjhi)) {
20273 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20274 written |= (1 << 9);
20275 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20280 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20281 written |= (1 << 9);
20282 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20287 if (GTUHI (tmp_argilo, tmp_argjlo)) {
20290 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCk)) + (1))]), opval);
20291 written |= (1 << 10);
20292 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20295 if (EQHI (tmp_argilo, tmp_argjlo)) {
20298 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCk)) + (1))]), opval);
20299 written |= (1 << 10);
20300 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20303 if (LTUHI (tmp_argilo, tmp_argjlo)) {
20306 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCk)) + (1))]), opval);
20307 written |= (1 << 10);
20308 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20313 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCk)) + (1))]), opval);
20314 written |= (1 << 10);
20315 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20323 abuf->written = written;
20328 /* mabshs: mabshs$pack $FRintj,$FRintk */
20331 SEM_FN_NAME (frvbf,mabshs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20333 #define FLD(f) abuf->fields.sfmt_mabshs.f
20334 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20335 int UNUSED written = 0;
20336 IADDR UNUSED pc = abuf->addr;
20337 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20343 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
20344 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
20345 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
20348 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
20349 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
20350 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
20352 tmp_arghi = GET_H_FR_HI (((FLD (f_FRj)) + (0)));
20353 tmp_arglo = GET_H_FR_LO (((FLD (f_FRj)) + (0)));
20354 if (GTDI (ABSHI (tmp_arghi), 32767)) {
20358 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20359 written |= (1 << 8);
20360 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20362 frvbf_media_overflow (current_cpu, 8);
20365 if (LTDI (ABSHI (tmp_arghi), -32768)) {
20368 UHI opval = -32768;
20369 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20370 written |= (1 << 8);
20371 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20373 frvbf_media_overflow (current_cpu, 8);
20377 UHI opval = ABSHI (tmp_arghi);
20378 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20379 written |= (1 << 8);
20380 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20384 if (GTDI (ABSHI (tmp_arglo), 32767)) {
20388 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20389 written |= (1 << 9);
20390 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20392 frvbf_media_overflow (current_cpu, 4);
20395 if (LTDI (ABSHI (tmp_arglo), -32768)) {
20398 UHI opval = -32768;
20399 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20400 written |= (1 << 9);
20401 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20403 frvbf_media_overflow (current_cpu, 4);
20407 UHI opval = ABSHI (tmp_arglo);
20408 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20409 written |= (1 << 9);
20410 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20416 abuf->written = written;
20421 /* maddhss: maddhss$pack $FRinti,$FRintj,$FRintk */
20424 SEM_FN_NAME (frvbf,maddhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20426 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20427 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20428 int UNUSED written = 0;
20429 IADDR UNUSED pc = abuf->addr;
20430 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20438 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20439 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20440 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20441 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20445 tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
20446 if (GTDI (tmp_tmp, 32767)) {
20450 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20451 written |= (1 << 9);
20452 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20454 frvbf_media_overflow (current_cpu, 8);
20457 if (LTDI (tmp_tmp, -32768)) {
20460 UHI opval = -32768;
20461 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20462 written |= (1 << 9);
20463 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20465 frvbf_media_overflow (current_cpu, 8);
20469 UHI opval = tmp_tmp;
20470 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20471 written |= (1 << 9);
20472 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20479 tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
20480 if (GTDI (tmp_tmp, 32767)) {
20484 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20485 written |= (1 << 10);
20486 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20488 frvbf_media_overflow (current_cpu, 4);
20491 if (LTDI (tmp_tmp, -32768)) {
20494 UHI opval = -32768;
20495 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20496 written |= (1 << 10);
20497 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20499 frvbf_media_overflow (current_cpu, 4);
20503 UHI opval = tmp_tmp;
20504 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20505 written |= (1 << 10);
20506 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20513 abuf->written = written;
20518 /* maddhus: maddhus$pack $FRinti,$FRintj,$FRintk */
20521 SEM_FN_NAME (frvbf,maddhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20523 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20524 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20525 int UNUSED written = 0;
20526 IADDR UNUSED pc = abuf->addr;
20527 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20535 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20536 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20537 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20538 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20542 tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
20543 if (GTDI (tmp_tmp, 65535)) {
20547 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20548 written |= (1 << 9);
20549 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20551 frvbf_media_overflow (current_cpu, 8);
20554 if (LTDI (tmp_tmp, 0)) {
20558 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20559 written |= (1 << 9);
20560 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20562 frvbf_media_overflow (current_cpu, 8);
20566 UHI opval = tmp_tmp;
20567 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20568 written |= (1 << 9);
20569 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20576 tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
20577 if (GTDI (tmp_tmp, 65535)) {
20581 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20582 written |= (1 << 10);
20583 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20585 frvbf_media_overflow (current_cpu, 4);
20588 if (LTDI (tmp_tmp, 0)) {
20592 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20593 written |= (1 << 10);
20594 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20596 frvbf_media_overflow (current_cpu, 4);
20600 UHI opval = tmp_tmp;
20601 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20602 written |= (1 << 10);
20603 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20610 abuf->written = written;
20615 /* msubhss: msubhss$pack $FRinti,$FRintj,$FRintk */
20618 SEM_FN_NAME (frvbf,msubhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20620 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20621 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20622 int UNUSED written = 0;
20623 IADDR UNUSED pc = abuf->addr;
20624 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20632 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20633 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20634 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20635 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20639 tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
20640 if (GTDI (tmp_tmp, 32767)) {
20644 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20645 written |= (1 << 9);
20646 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20648 frvbf_media_overflow (current_cpu, 8);
20651 if (LTDI (tmp_tmp, -32768)) {
20654 UHI opval = -32768;
20655 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20656 written |= (1 << 9);
20657 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20659 frvbf_media_overflow (current_cpu, 8);
20663 UHI opval = tmp_tmp;
20664 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20665 written |= (1 << 9);
20666 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20673 tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
20674 if (GTDI (tmp_tmp, 32767)) {
20678 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20679 written |= (1 << 10);
20680 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20682 frvbf_media_overflow (current_cpu, 4);
20685 if (LTDI (tmp_tmp, -32768)) {
20688 UHI opval = -32768;
20689 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20690 written |= (1 << 10);
20691 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20693 frvbf_media_overflow (current_cpu, 4);
20697 UHI opval = tmp_tmp;
20698 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20699 written |= (1 << 10);
20700 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20707 abuf->written = written;
20712 /* msubhus: msubhus$pack $FRinti,$FRintj,$FRintk */
20715 SEM_FN_NAME (frvbf,msubhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20717 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20718 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20719 int UNUSED written = 0;
20720 IADDR UNUSED pc = abuf->addr;
20721 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20729 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20730 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20731 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20732 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20736 tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
20737 if (GTDI (tmp_tmp, 65535)) {
20741 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20742 written |= (1 << 9);
20743 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20745 frvbf_media_overflow (current_cpu, 8);
20748 if (LTDI (tmp_tmp, 0)) {
20752 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20753 written |= (1 << 9);
20754 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20756 frvbf_media_overflow (current_cpu, 8);
20760 UHI opval = tmp_tmp;
20761 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20762 written |= (1 << 9);
20763 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20770 tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
20771 if (GTDI (tmp_tmp, 65535)) {
20775 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20776 written |= (1 << 10);
20777 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20779 frvbf_media_overflow (current_cpu, 4);
20782 if (LTDI (tmp_tmp, 0)) {
20786 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20787 written |= (1 << 10);
20788 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20790 frvbf_media_overflow (current_cpu, 4);
20794 UHI opval = tmp_tmp;
20795 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20796 written |= (1 << 10);
20797 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20804 abuf->written = written;
20809 /* cmaddhss: cmaddhss$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
20812 SEM_FN_NAME (frvbf,cmaddhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20814 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20815 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20816 int UNUSED written = 0;
20817 IADDR UNUSED pc = abuf->addr;
20818 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20820 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
20827 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20828 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20829 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20830 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20834 tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
20835 if (GTDI (tmp_tmp, 32767)) {
20839 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20840 written |= (1 << 11);
20841 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20843 frvbf_media_overflow (current_cpu, 8);
20846 if (LTDI (tmp_tmp, -32768)) {
20849 UHI opval = -32768;
20850 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20851 written |= (1 << 11);
20852 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20854 frvbf_media_overflow (current_cpu, 8);
20858 UHI opval = tmp_tmp;
20859 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20860 written |= (1 << 11);
20861 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20868 tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
20869 if (GTDI (tmp_tmp, 32767)) {
20873 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20874 written |= (1 << 12);
20875 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20877 frvbf_media_overflow (current_cpu, 4);
20880 if (LTDI (tmp_tmp, -32768)) {
20883 UHI opval = -32768;
20884 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20885 written |= (1 << 12);
20886 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20888 frvbf_media_overflow (current_cpu, 4);
20892 UHI opval = tmp_tmp;
20893 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20894 written |= (1 << 12);
20895 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20903 abuf->written = written;
20908 /* cmaddhus: cmaddhus$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
20911 SEM_FN_NAME (frvbf,cmaddhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20913 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20914 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20915 int UNUSED written = 0;
20916 IADDR UNUSED pc = abuf->addr;
20917 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20919 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
20926 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20927 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20928 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20929 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20933 tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
20934 if (GTDI (tmp_tmp, 65535)) {
20938 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20939 written |= (1 << 11);
20940 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20942 frvbf_media_overflow (current_cpu, 8);
20945 if (LTDI (tmp_tmp, 0)) {
20949 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20950 written |= (1 << 11);
20951 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20953 frvbf_media_overflow (current_cpu, 8);
20957 UHI opval = tmp_tmp;
20958 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20959 written |= (1 << 11);
20960 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20967 tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
20968 if (GTDI (tmp_tmp, 65535)) {
20972 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20973 written |= (1 << 12);
20974 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20976 frvbf_media_overflow (current_cpu, 4);
20979 if (LTDI (tmp_tmp, 0)) {
20983 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20984 written |= (1 << 12);
20985 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20987 frvbf_media_overflow (current_cpu, 4);
20991 UHI opval = tmp_tmp;
20992 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20993 written |= (1 << 12);
20994 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21002 abuf->written = written;
21007 /* cmsubhss: cmsubhss$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
21010 SEM_FN_NAME (frvbf,cmsubhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
21012 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
21013 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
21014 int UNUSED written = 0;
21015 IADDR UNUSED pc = abuf->addr;
21016 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
21018 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
21025 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21026 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21027 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21028 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21032 tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
21033 if (GTDI (tmp_tmp, 32767)) {
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);
21041 frvbf_media_overflow (current_cpu, 8);
21044 if (LTDI (tmp_tmp, -32768)) {
21047 UHI opval = -32768;
21048 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21049 written |= (1 << 11);
21050 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21052 frvbf_media_overflow (current_cpu, 8);
21056 UHI opval = tmp_tmp;
21057 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21058 written |= (1 << 11);
21059 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21066 tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
21067 if (GTDI (tmp_tmp, 32767)) {
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);
21075 frvbf_media_overflow (current_cpu, 4);
21078 if (LTDI (tmp_tmp, -32768)) {
21081 UHI opval = -32768;
21082 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21083 written |= (1 << 12);
21084 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21086 frvbf_media_overflow (current_cpu, 4);
21090 UHI opval = tmp_tmp;
21091 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21092 written |= (1 << 12);
21093 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21101 abuf->written = written;
21106 /* cmsubhus: cmsubhus$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
21109 SEM_FN_NAME (frvbf,cmsubhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
21111 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
21112 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
21113 int UNUSED written = 0;
21114 IADDR UNUSED pc = abuf->addr;
21115 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
21117 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
21124 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21125 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21126 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21127 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21131 tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
21132 if (GTDI (tmp_tmp, 65535)) {
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);
21140 frvbf_media_overflow (current_cpu, 8);
21143 if (LTDI (tmp_tmp, 0)) {
21147 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21148 written |= (1 << 11);
21149 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21151 frvbf_media_overflow (current_cpu, 8);
21155 UHI opval = tmp_tmp;
21156 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21157 written |= (1 << 11);
21158 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21165 tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
21166 if (GTDI (tmp_tmp, 65535)) {
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);
21174 frvbf_media_overflow (current_cpu, 4);
21177 if (LTDI (tmp_tmp, 0)) {
21181 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21182 written |= (1 << 12);
21183 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21185 frvbf_media_overflow (current_cpu, 4);
21189 UHI opval = tmp_tmp;
21190 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21191 written |= (1 << 12);
21192 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21200 abuf->written = written;
21205 /* mqaddhss: mqaddhss$pack $FRintieven,$FRintjeven,$FRintkeven */
21208 SEM_FN_NAME (frvbf,mqaddhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
21210 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
21211 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
21212 int UNUSED written = 0;
21213 IADDR UNUSED pc = abuf->addr;
21214 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
21216 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
21217 frvbf_media_register_not_aligned (current_cpu);
21225 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
21226 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
21227 written |= (1 << 14);
21228 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
21231 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21232 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21233 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21234 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21238 tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
21239 if (GTDI (tmp_tmp, 32767)) {
21243 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21244 written |= (1 << 15);
21245 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21247 frvbf_media_overflow (current_cpu, 8);
21250 if (LTDI (tmp_tmp, -32768)) {
21253 UHI opval = -32768;
21254 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21255 written |= (1 << 15);
21256 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21258 frvbf_media_overflow (current_cpu, 8);
21262 UHI opval = tmp_tmp;
21263 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21264 written |= (1 << 15);
21265 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21272 tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
21273 if (GTDI (tmp_tmp, 32767)) {
21277 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21278 written |= (1 << 17);
21279 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21281 frvbf_media_overflow (current_cpu, 4);
21284 if (LTDI (tmp_tmp, -32768)) {
21287 UHI opval = -32768;
21288 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21289 written |= (1 << 17);
21290 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21292 frvbf_media_overflow (current_cpu, 4);
21296 UHI opval = tmp_tmp;
21297 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21298 written |= (1 << 17);
21299 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21305 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21306 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21307 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21308 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21312 tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
21313 if (GTDI (tmp_tmp, 32767)) {
21317 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21318 written |= (1 << 16);
21319 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21321 frvbf_media_overflow (current_cpu, 2);
21324 if (LTDI (tmp_tmp, -32768)) {
21327 UHI opval = -32768;
21328 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21329 written |= (1 << 16);
21330 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21332 frvbf_media_overflow (current_cpu, 2);
21336 UHI opval = tmp_tmp;
21337 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21338 written |= (1 << 16);
21339 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21346 tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
21347 if (GTDI (tmp_tmp, 32767)) {
21351 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21352 written |= (1 << 18);
21353 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21355 frvbf_media_overflow (current_cpu, 1);
21358 if (LTDI (tmp_tmp, -32768)) {
21361 UHI opval = -32768;
21362 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21363 written |= (1 << 18);
21364 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21366 frvbf_media_overflow (current_cpu, 1);
21370 UHI opval = tmp_tmp;
21371 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21372 written |= (1 << 18);
21373 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21381 abuf->written = written;
21386 /* mqaddhus: mqaddhus$pack $FRintieven,$FRintjeven,$FRintkeven */
21389 SEM_FN_NAME (frvbf,mqaddhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
21391 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
21392 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
21393 int UNUSED written = 0;
21394 IADDR UNUSED pc = abuf->addr;
21395 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
21397 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
21398 frvbf_media_register_not_aligned (current_cpu);
21406 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
21407 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
21408 written |= (1 << 14);
21409 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
21412 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21413 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21414 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21415 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21419 tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
21420 if (GTDI (tmp_tmp, 65535)) {
21424 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21425 written |= (1 << 15);
21426 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21428 frvbf_media_overflow (current_cpu, 8);
21431 if (LTDI (tmp_tmp, 0)) {
21435 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21436 written |= (1 << 15);
21437 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21439 frvbf_media_overflow (current_cpu, 8);
21443 UHI opval = tmp_tmp;
21444 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21445 written |= (1 << 15);
21446 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21453 tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
21454 if (GTDI (tmp_tmp, 65535)) {
21458 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21459 written |= (1 << 17);
21460 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21462 frvbf_media_overflow (current_cpu, 4);
21465 if (LTDI (tmp_tmp, 0)) {
21469 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21470 written |= (1 << 17);
21471 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21473 frvbf_media_overflow (current_cpu, 4);
21477 UHI opval = tmp_tmp;
21478 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21479 written |= (1 << 17);
21480 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21486 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21487 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21488 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21489 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21493 tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
21494 if (GTDI (tmp_tmp, 65535)) {
21498 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21499 written |= (1 << 16);
21500 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21502 frvbf_media_overflow (current_cpu, 2);
21505 if (LTDI (tmp_tmp, 0)) {
21509 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21510 written |= (1 << 16);
21511 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21513 frvbf_media_overflow (current_cpu, 2);
21517 UHI opval = tmp_tmp;
21518 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21519 written |= (1 << 16);
21520 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21527 tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
21528 if (GTDI (tmp_tmp, 65535)) {
21532 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21533 written |= (1 << 18);
21534 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21536 frvbf_media_overflow (current_cpu, 1);
21539 if (LTDI (tmp_tmp, 0)) {
21543 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21544 written |= (1 << 18);
21545 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21547 frvbf_media_overflow (current_cpu, 1);
21551 UHI opval = tmp_tmp;
21552 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21553 written |= (1 << 18);
21554 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21562 abuf->written = written;
21567 /* mqsubhss: mqsubhss$pack $FRintieven,$FRintjeven,$FRintkeven */
21570 SEM_FN_NAME (frvbf,mqsubhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
21572 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
21573 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
21574 int UNUSED written = 0;
21575 IADDR UNUSED pc = abuf->addr;
21576 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
21578 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
21579 frvbf_media_register_not_aligned (current_cpu);
21587 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
21588 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
21589 written |= (1 << 14);
21590 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
21593 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21594 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21595 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21596 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21600 tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
21601 if (GTDI (tmp_tmp, 32767)) {
21605 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21606 written |= (1 << 15);
21607 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21609 frvbf_media_overflow (current_cpu, 8);
21612 if (LTDI (tmp_tmp, -32768)) {
21615 UHI opval = -32768;
21616 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21617 written |= (1 << 15);
21618 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21620 frvbf_media_overflow (current_cpu, 8);
21624 UHI opval = tmp_tmp;
21625 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21626 written |= (1 << 15);
21627 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21634 tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
21635 if (GTDI (tmp_tmp, 32767)) {
21639 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21640 written |= (1 << 17);
21641 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21643 frvbf_media_overflow (current_cpu, 4);
21646 if (LTDI (tmp_tmp, -32768)) {
21649 UHI opval = -32768;
21650 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21651 written |= (1 << 17);
21652 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21654 frvbf_media_overflow (current_cpu, 4);
21658 UHI opval = tmp_tmp;
21659 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21660 written |= (1 << 17);
21661 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21667 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21668 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21669 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21670 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21674 tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
21675 if (GTDI (tmp_tmp, 32767)) {
21679 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21680 written |= (1 << 16);
21681 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21683 frvbf_media_overflow (current_cpu, 2);
21686 if (LTDI (tmp_tmp, -32768)) {
21689 UHI opval = -32768;
21690 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21691 written |= (1 << 16);
21692 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21694 frvbf_media_overflow (current_cpu, 2);
21698 UHI opval = tmp_tmp;
21699 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21700 written |= (1 << 16);
21701 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21708 tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
21709 if (GTDI (tmp_tmp, 32767)) {
21713 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21714 written |= (1 << 18);
21715 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21717 frvbf_media_overflow (current_cpu, 1);
21720 if (LTDI (tmp_tmp, -32768)) {
21723 UHI opval = -32768;
21724 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21725 written |= (1 << 18);
21726 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21728 frvbf_media_overflow (current_cpu, 1);
21732 UHI opval = tmp_tmp;
21733 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21734 written |= (1 << 18);
21735 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21743 abuf->written = written;
21748 /* mqsubhus: mqsubhus$pack $FRintieven,$FRintjeven,$FRintkeven */
21751 SEM_FN_NAME (frvbf,mqsubhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
21753 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
21754 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
21755 int UNUSED written = 0;
21756 IADDR UNUSED pc = abuf->addr;
21757 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
21759 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
21760 frvbf_media_register_not_aligned (current_cpu);
21768 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
21769 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
21770 written |= (1 << 14);
21771 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
21774 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21775 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21776 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21777 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21781 tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
21782 if (GTDI (tmp_tmp, 65535)) {
21786 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21787 written |= (1 << 15);
21788 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21790 frvbf_media_overflow (current_cpu, 8);
21793 if (LTDI (tmp_tmp, 0)) {
21797 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21798 written |= (1 << 15);
21799 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21801 frvbf_media_overflow (current_cpu, 8);
21805 UHI opval = tmp_tmp;
21806 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21807 written |= (1 << 15);
21808 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21815 tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
21816 if (GTDI (tmp_tmp, 65535)) {
21820 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21821 written |= (1 << 17);
21822 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21824 frvbf_media_overflow (current_cpu, 4);
21827 if (LTDI (tmp_tmp, 0)) {
21831 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21832 written |= (1 << 17);
21833 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21835 frvbf_media_overflow (current_cpu, 4);
21839 UHI opval = tmp_tmp;
21840 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21841 written |= (1 << 17);
21842 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21848 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21849 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21850 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21851 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21855 tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
21856 if (GTDI (tmp_tmp, 65535)) {
21860 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21861 written |= (1 << 16);
21862 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21864 frvbf_media_overflow (current_cpu, 2);
21867 if (LTDI (tmp_tmp, 0)) {
21871 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21872 written |= (1 << 16);
21873 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21875 frvbf_media_overflow (current_cpu, 2);
21879 UHI opval = tmp_tmp;
21880 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21881 written |= (1 << 16);
21882 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21889 tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
21890 if (GTDI (tmp_tmp, 65535)) {
21894 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21895 written |= (1 << 18);
21896 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21898 frvbf_media_overflow (current_cpu, 1);
21901 if (LTDI (tmp_tmp, 0)) {
21905 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21906 written |= (1 << 18);
21907 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21909 frvbf_media_overflow (current_cpu, 1);
21913 UHI opval = tmp_tmp;
21914 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21915 written |= (1 << 18);
21916 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21924 abuf->written = written;
21929 /* cmqaddhss: cmqaddhss$pack $FRintieven,$FRintjeven,$FRintkeven,$CCi,$cond */
21932 SEM_FN_NAME (frvbf,cmqaddhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
21934 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
21935 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
21936 int UNUSED written = 0;
21937 IADDR UNUSED pc = abuf->addr;
21938 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
21940 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
21941 frvbf_media_register_not_aligned (current_cpu);
21943 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
21950 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
21951 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
21952 written |= (1 << 16);
21953 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
21956 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21957 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21958 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21959 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21963 tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
21964 if (GTDI (tmp_tmp, 32767)) {
21968 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21969 written |= (1 << 17);
21970 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21972 frvbf_media_overflow (current_cpu, 8);
21975 if (LTDI (tmp_tmp, -32768)) {
21978 UHI opval = -32768;
21979 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21980 written |= (1 << 17);
21981 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21983 frvbf_media_overflow (current_cpu, 8);
21987 UHI opval = tmp_tmp;
21988 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21989 written |= (1 << 17);
21990 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21997 tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
21998 if (GTDI (tmp_tmp, 32767)) {
22002 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22003 written |= (1 << 19);
22004 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22006 frvbf_media_overflow (current_cpu, 4);
22009 if (LTDI (tmp_tmp, -32768)) {
22012 UHI opval = -32768;
22013 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22014 written |= (1 << 19);
22015 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22017 frvbf_media_overflow (current_cpu, 4);
22021 UHI opval = tmp_tmp;
22022 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22023 written |= (1 << 19);
22024 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22030 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22031 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22032 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22033 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22037 tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
22038 if (GTDI (tmp_tmp, 32767)) {
22042 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22043 written |= (1 << 18);
22044 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22046 frvbf_media_overflow (current_cpu, 2);
22049 if (LTDI (tmp_tmp, -32768)) {
22052 UHI opval = -32768;
22053 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22054 written |= (1 << 18);
22055 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22057 frvbf_media_overflow (current_cpu, 2);
22061 UHI opval = tmp_tmp;
22062 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22063 written |= (1 << 18);
22064 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22071 tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
22072 if (GTDI (tmp_tmp, 32767)) {
22076 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22077 written |= (1 << 20);
22078 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22080 frvbf_media_overflow (current_cpu, 1);
22083 if (LTDI (tmp_tmp, -32768)) {
22086 UHI opval = -32768;
22087 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22088 written |= (1 << 20);
22089 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22091 frvbf_media_overflow (current_cpu, 1);
22095 UHI opval = tmp_tmp;
22096 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22097 written |= (1 << 20);
22098 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22107 abuf->written = written;
22112 /* cmqaddhus: cmqaddhus$pack $FRintieven,$FRintjeven,$FRintkeven,$CCi,$cond */
22115 SEM_FN_NAME (frvbf,cmqaddhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22117 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
22118 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22119 int UNUSED written = 0;
22120 IADDR UNUSED pc = abuf->addr;
22121 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22123 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
22124 frvbf_media_register_not_aligned (current_cpu);
22126 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
22133 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
22134 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
22135 written |= (1 << 16);
22136 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
22139 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22140 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22141 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22142 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22146 tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
22147 if (GTDI (tmp_tmp, 65535)) {
22151 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22152 written |= (1 << 17);
22153 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22155 frvbf_media_overflow (current_cpu, 8);
22158 if (LTDI (tmp_tmp, 0)) {
22162 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22163 written |= (1 << 17);
22164 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22166 frvbf_media_overflow (current_cpu, 8);
22170 UHI opval = tmp_tmp;
22171 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22172 written |= (1 << 17);
22173 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22180 tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
22181 if (GTDI (tmp_tmp, 65535)) {
22185 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22186 written |= (1 << 19);
22187 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22189 frvbf_media_overflow (current_cpu, 4);
22192 if (LTDI (tmp_tmp, 0)) {
22196 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22197 written |= (1 << 19);
22198 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22200 frvbf_media_overflow (current_cpu, 4);
22204 UHI opval = tmp_tmp;
22205 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22206 written |= (1 << 19);
22207 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22213 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22214 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22215 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22216 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22220 tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
22221 if (GTDI (tmp_tmp, 65535)) {
22225 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22226 written |= (1 << 18);
22227 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22229 frvbf_media_overflow (current_cpu, 2);
22232 if (LTDI (tmp_tmp, 0)) {
22236 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22237 written |= (1 << 18);
22238 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22240 frvbf_media_overflow (current_cpu, 2);
22244 UHI opval = tmp_tmp;
22245 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22246 written |= (1 << 18);
22247 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22254 tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
22255 if (GTDI (tmp_tmp, 65535)) {
22259 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22260 written |= (1 << 20);
22261 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22263 frvbf_media_overflow (current_cpu, 1);
22266 if (LTDI (tmp_tmp, 0)) {
22270 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22271 written |= (1 << 20);
22272 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22274 frvbf_media_overflow (current_cpu, 1);
22278 UHI opval = tmp_tmp;
22279 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22280 written |= (1 << 20);
22281 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22290 abuf->written = written;
22295 /* cmqsubhss: cmqsubhss$pack $FRintieven,$FRintjeven,$FRintkeven,$CCi,$cond */
22298 SEM_FN_NAME (frvbf,cmqsubhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22300 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
22301 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22302 int UNUSED written = 0;
22303 IADDR UNUSED pc = abuf->addr;
22304 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22306 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
22307 frvbf_media_register_not_aligned (current_cpu);
22309 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
22316 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
22317 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
22318 written |= (1 << 16);
22319 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
22322 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22323 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22324 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22325 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22329 tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
22330 if (GTDI (tmp_tmp, 32767)) {
22334 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22335 written |= (1 << 17);
22336 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22338 frvbf_media_overflow (current_cpu, 8);
22341 if (LTDI (tmp_tmp, -32768)) {
22344 UHI opval = -32768;
22345 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22346 written |= (1 << 17);
22347 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22349 frvbf_media_overflow (current_cpu, 8);
22353 UHI opval = tmp_tmp;
22354 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22355 written |= (1 << 17);
22356 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22363 tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
22364 if (GTDI (tmp_tmp, 32767)) {
22368 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22369 written |= (1 << 19);
22370 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22372 frvbf_media_overflow (current_cpu, 4);
22375 if (LTDI (tmp_tmp, -32768)) {
22378 UHI opval = -32768;
22379 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22380 written |= (1 << 19);
22381 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22383 frvbf_media_overflow (current_cpu, 4);
22387 UHI opval = tmp_tmp;
22388 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22389 written |= (1 << 19);
22390 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22396 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22397 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22398 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22399 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22403 tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
22404 if (GTDI (tmp_tmp, 32767)) {
22408 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22409 written |= (1 << 18);
22410 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22412 frvbf_media_overflow (current_cpu, 2);
22415 if (LTDI (tmp_tmp, -32768)) {
22418 UHI opval = -32768;
22419 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22420 written |= (1 << 18);
22421 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22423 frvbf_media_overflow (current_cpu, 2);
22427 UHI opval = tmp_tmp;
22428 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22429 written |= (1 << 18);
22430 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22437 tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
22438 if (GTDI (tmp_tmp, 32767)) {
22442 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22443 written |= (1 << 20);
22444 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22446 frvbf_media_overflow (current_cpu, 1);
22449 if (LTDI (tmp_tmp, -32768)) {
22452 UHI opval = -32768;
22453 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22454 written |= (1 << 20);
22455 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22457 frvbf_media_overflow (current_cpu, 1);
22461 UHI opval = tmp_tmp;
22462 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22463 written |= (1 << 20);
22464 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22473 abuf->written = written;
22478 /* cmqsubhus: cmqsubhus$pack $FRintieven,$FRintjeven,$FRintkeven,$CCi,$cond */
22481 SEM_FN_NAME (frvbf,cmqsubhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22483 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
22484 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22485 int UNUSED written = 0;
22486 IADDR UNUSED pc = abuf->addr;
22487 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22489 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
22490 frvbf_media_register_not_aligned (current_cpu);
22492 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
22499 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
22500 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
22501 written |= (1 << 16);
22502 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
22505 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22506 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22507 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22508 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22512 tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
22513 if (GTDI (tmp_tmp, 65535)) {
22517 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22518 written |= (1 << 17);
22519 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22521 frvbf_media_overflow (current_cpu, 8);
22524 if (LTDI (tmp_tmp, 0)) {
22528 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22529 written |= (1 << 17);
22530 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22532 frvbf_media_overflow (current_cpu, 8);
22536 UHI opval = tmp_tmp;
22537 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22538 written |= (1 << 17);
22539 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22546 tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
22547 if (GTDI (tmp_tmp, 65535)) {
22551 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22552 written |= (1 << 19);
22553 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22555 frvbf_media_overflow (current_cpu, 4);
22558 if (LTDI (tmp_tmp, 0)) {
22562 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22563 written |= (1 << 19);
22564 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22566 frvbf_media_overflow (current_cpu, 4);
22570 UHI opval = tmp_tmp;
22571 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22572 written |= (1 << 19);
22573 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22579 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22580 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22581 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22582 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22586 tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
22587 if (GTDI (tmp_tmp, 65535)) {
22591 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22592 written |= (1 << 18);
22593 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22595 frvbf_media_overflow (current_cpu, 2);
22598 if (LTDI (tmp_tmp, 0)) {
22602 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22603 written |= (1 << 18);
22604 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22606 frvbf_media_overflow (current_cpu, 2);
22610 UHI opval = tmp_tmp;
22611 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22612 written |= (1 << 18);
22613 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22620 tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
22621 if (GTDI (tmp_tmp, 65535)) {
22625 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22626 written |= (1 << 20);
22627 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22629 frvbf_media_overflow (current_cpu, 1);
22632 if (LTDI (tmp_tmp, 0)) {
22636 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22637 written |= (1 << 20);
22638 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22640 frvbf_media_overflow (current_cpu, 1);
22644 UHI opval = tmp_tmp;
22645 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22646 written |= (1 << 20);
22647 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22656 abuf->written = written;
22661 /* mqlclrhs: mqlclrhs$pack $FRintieven,$FRintjeven,$FRintkeven */
22664 SEM_FN_NAME (frvbf,mqlclrhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22666 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
22667 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22668 int UNUSED written = 0;
22669 IADDR UNUSED pc = abuf->addr;
22670 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22672 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
22673 frvbf_media_register_not_aligned (current_cpu);
22685 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
22686 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
22687 written |= (1 << 14);
22688 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
22691 tmp_a1 = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22692 tmp_a2 = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22693 tmp_b1 = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22694 tmp_b2 = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22697 tmp_a3 = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22698 tmp_a4 = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22699 tmp_b3 = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22700 tmp_b4 = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22703 UHI opval = (LEUHI (ABSHI (tmp_a1), ABSHI (tmp_b1))) ? (0) : (LEHI (0, tmp_b1)) ? (tmp_a1) : (EQHI (tmp_a1, -32768)) ? (32767) : (NEGHI (tmp_a1));
22704 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22705 written |= (1 << 15);
22706 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22709 UHI opval = (LEUHI (ABSHI (tmp_a2), ABSHI (tmp_b2))) ? (0) : (LEHI (0, tmp_b2)) ? (tmp_a2) : (EQHI (tmp_a2, -32768)) ? (32767) : (NEGHI (tmp_a2));
22710 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22711 written |= (1 << 17);
22712 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22715 UHI opval = (LEUHI (ABSHI (tmp_a3), ABSHI (tmp_b3))) ? (0) : (LEHI (0, tmp_b3)) ? (tmp_a3) : (EQHI (tmp_a3, -32768)) ? (32767) : (NEGHI (tmp_a3));
22716 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22717 written |= (1 << 16);
22718 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22721 UHI opval = (LEUHI (ABSHI (tmp_a4), ABSHI (tmp_b4))) ? (0) : (LEHI (0, tmp_b4)) ? (tmp_a4) : (EQHI (tmp_a4, -32768)) ? (32767) : (NEGHI (tmp_a4));
22722 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22723 written |= (1 << 18);
22724 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22729 abuf->written = written;
22734 /* mqlmths: mqlmths$pack $FRintieven,$FRintjeven,$FRintkeven */
22737 SEM_FN_NAME (frvbf,mqlmths) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22739 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
22740 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22741 int UNUSED written = 0;
22742 IADDR UNUSED pc = abuf->addr;
22743 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22745 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
22746 frvbf_media_register_not_aligned (current_cpu);
22758 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
22759 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
22760 written |= (1 << 14);
22761 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
22764 tmp_a1 = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22765 tmp_a2 = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22766 tmp_b1 = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22767 tmp_b2 = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22770 tmp_a3 = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22771 tmp_a4 = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22772 tmp_b3 = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22773 tmp_b4 = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22776 UHI opval = (ANDIF (GTHI (tmp_b1, -32768), GEHI (tmp_a1, ABSHI (tmp_b1)))) ? (tmp_b1) : (GTHI (tmp_a1, NEGHI (ABSHI (tmp_b1)))) ? (tmp_a1) : (EQHI (tmp_b1, -32768)) ? (32767) : (NEGHI (tmp_b1));
22777 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22778 written |= (1 << 15);
22779 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22782 UHI opval = (ANDIF (GTHI (tmp_b2, -32768), GEHI (tmp_a2, ABSHI (tmp_b2)))) ? (tmp_b2) : (GTHI (tmp_a2, NEGHI (ABSHI (tmp_b2)))) ? (tmp_a2) : (EQHI (tmp_b2, -32768)) ? (32767) : (NEGHI (tmp_b2));
22783 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22784 written |= (1 << 17);
22785 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22788 UHI opval = (ANDIF (GTHI (tmp_b3, -32768), GEHI (tmp_a3, ABSHI (tmp_b3)))) ? (tmp_b3) : (GTHI (tmp_a3, NEGHI (ABSHI (tmp_b3)))) ? (tmp_a3) : (EQHI (tmp_b3, -32768)) ? (32767) : (NEGHI (tmp_b3));
22789 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22790 written |= (1 << 16);
22791 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22794 UHI opval = (ANDIF (GTHI (tmp_b4, -32768), GEHI (tmp_a4, ABSHI (tmp_b4)))) ? (tmp_b4) : (GTHI (tmp_a4, NEGHI (ABSHI (tmp_b4)))) ? (tmp_a4) : (EQHI (tmp_b4, -32768)) ? (32767) : (NEGHI (tmp_b4));
22795 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22796 written |= (1 << 18);
22797 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22802 abuf->written = written;
22807 /* mqsllhi: mqsllhi$pack $FRintieven,$u6,$FRintkeven */
22810 SEM_FN_NAME (frvbf,mqsllhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22812 #define FLD(f) abuf->fields.sfmt_mqsllhi.f
22813 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22814 int UNUSED written = 0;
22815 IADDR UNUSED pc = abuf->addr;
22816 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22818 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1)))) {
22819 frvbf_media_register_not_aligned (current_cpu);
22823 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
22824 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
22825 written |= (1 << 9);
22826 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
22829 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
22830 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
22831 written |= (1 << 10);
22832 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
22835 UHI opval = SLLHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), ANDSI (FLD (f_u6), 15));
22836 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22837 written |= (1 << 11);
22838 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22841 UHI opval = SLLHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), ANDSI (FLD (f_u6), 15));
22842 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22843 written |= (1 << 13);
22844 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22847 UHI opval = SLLHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), ANDSI (FLD (f_u6), 15));
22848 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22849 written |= (1 << 12);
22850 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22853 UHI opval = SLLHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), ANDSI (FLD (f_u6), 15));
22854 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22855 written |= (1 << 14);
22856 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22861 abuf->written = written;
22866 /* mqsrahi: mqsrahi$pack $FRintieven,$u6,$FRintkeven */
22869 SEM_FN_NAME (frvbf,mqsrahi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22871 #define FLD(f) abuf->fields.sfmt_mqsllhi.f
22872 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22873 int UNUSED written = 0;
22874 IADDR UNUSED pc = abuf->addr;
22875 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22877 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1)))) {
22878 frvbf_media_register_not_aligned (current_cpu);
22882 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
22883 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
22884 written |= (1 << 9);
22885 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
22888 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
22889 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
22890 written |= (1 << 10);
22891 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
22894 UHI opval = SRAHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), ANDSI (FLD (f_u6), 15));
22895 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22896 written |= (1 << 11);
22897 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22900 UHI opval = SRAHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), ANDSI (FLD (f_u6), 15));
22901 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22902 written |= (1 << 13);
22903 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22906 UHI opval = SRAHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), ANDSI (FLD (f_u6), 15));
22907 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22908 written |= (1 << 12);
22909 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22912 UHI opval = SRAHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), ANDSI (FLD (f_u6), 15));
22913 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22914 written |= (1 << 14);
22915 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22920 abuf->written = written;
22925 /* maddaccs: maddaccs$pack $ACC40Si,$ACC40Sk */
22928 SEM_FN_NAME (frvbf,maddaccs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22930 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
22931 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22932 int UNUSED written = 0;
22933 IADDR UNUSED pc = abuf->addr;
22934 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22936 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Si))) {
22937 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
22938 if (ANDSI (FLD (f_ACC40Si), SUBSI (2, 1))) {
22939 frvbf_media_acc_not_aligned (current_cpu);
22943 tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))));
22944 if (GTDI (tmp_tmp, 549755813887)) {
22947 DI opval = 549755813887;
22948 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22949 written |= (1 << 4);
22950 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22952 frvbf_media_overflow (current_cpu, 8);
22955 if (LTDI (tmp_tmp, INVDI (549755813887))) {
22958 DI opval = INVDI (549755813887);
22959 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22960 written |= (1 << 4);
22961 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22963 frvbf_media_overflow (current_cpu, 8);
22967 DI opval = tmp_tmp;
22968 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22969 written |= (1 << 4);
22970 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22979 abuf->written = written;
22984 /* msubaccs: msubaccs$pack $ACC40Si,$ACC40Sk */
22987 SEM_FN_NAME (frvbf,msubaccs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22989 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
22990 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22991 int UNUSED written = 0;
22992 IADDR UNUSED pc = abuf->addr;
22993 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22995 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Si))) {
22996 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
22997 if (ANDSI (FLD (f_ACC40Si), SUBSI (2, 1))) {
22998 frvbf_media_acc_not_aligned (current_cpu);
23002 tmp_tmp = SUBDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))));
23003 if (GTDI (tmp_tmp, 549755813887)) {
23006 DI opval = 549755813887;
23007 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23008 written |= (1 << 4);
23009 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23011 frvbf_media_overflow (current_cpu, 8);
23014 if (LTDI (tmp_tmp, INVDI (549755813887))) {
23017 DI opval = INVDI (549755813887);
23018 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23019 written |= (1 << 4);
23020 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23022 frvbf_media_overflow (current_cpu, 8);
23026 DI opval = tmp_tmp;
23027 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23028 written |= (1 << 4);
23029 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23038 abuf->written = written;
23043 /* mdaddaccs: mdaddaccs$pack $ACC40Si,$ACC40Sk */
23046 SEM_FN_NAME (frvbf,mdaddaccs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23048 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
23049 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23050 int UNUSED written = 0;
23051 IADDR UNUSED pc = abuf->addr;
23052 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23054 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Si))) {
23055 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23056 if (ANDSI (FLD (f_ACC40Si), SUBSI (4, 1))) {
23057 frvbf_media_acc_not_aligned (current_cpu);
23059 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23060 frvbf_media_acc_not_aligned (current_cpu);
23065 tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))));
23066 if (GTDI (tmp_tmp, 549755813887)) {
23069 DI opval = 549755813887;
23070 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23071 written |= (1 << 6);
23072 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23074 frvbf_media_overflow (current_cpu, 8);
23077 if (LTDI (tmp_tmp, INVDI (549755813887))) {
23080 DI opval = INVDI (549755813887);
23081 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23082 written |= (1 << 6);
23083 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23085 frvbf_media_overflow (current_cpu, 8);
23089 DI opval = tmp_tmp;
23090 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23091 written |= (1 << 6);
23092 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23099 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Si)) + (2))), GET_H_ACC40S (((FLD (f_ACC40Si)) + (3))));
23100 if (GTDI (tmp_tmp, 549755813887)) {
23103 DI opval = 549755813887;
23104 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23105 written |= (1 << 7);
23106 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23108 frvbf_media_overflow (current_cpu, 4);
23111 if (LTDI (tmp_tmp, INVDI (549755813887))) {
23114 DI opval = INVDI (549755813887);
23115 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23116 written |= (1 << 7);
23117 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23119 frvbf_media_overflow (current_cpu, 4);
23123 DI opval = tmp_tmp;
23124 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23125 written |= (1 << 7);
23126 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23137 abuf->written = written;
23142 /* mdsubaccs: mdsubaccs$pack $ACC40Si,$ACC40Sk */
23145 SEM_FN_NAME (frvbf,mdsubaccs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23147 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
23148 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23149 int UNUSED written = 0;
23150 IADDR UNUSED pc = abuf->addr;
23151 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23153 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Si))) {
23154 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23155 if (ANDSI (FLD (f_ACC40Si), SUBSI (4, 1))) {
23156 frvbf_media_acc_not_aligned (current_cpu);
23158 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23159 frvbf_media_acc_not_aligned (current_cpu);
23164 tmp_tmp = SUBDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))));
23165 if (GTDI (tmp_tmp, 549755813887)) {
23168 DI opval = 549755813887;
23169 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23170 written |= (1 << 6);
23171 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23173 frvbf_media_overflow (current_cpu, 8);
23176 if (LTDI (tmp_tmp, INVDI (549755813887))) {
23179 DI opval = INVDI (549755813887);
23180 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23181 written |= (1 << 6);
23182 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23184 frvbf_media_overflow (current_cpu, 8);
23188 DI opval = tmp_tmp;
23189 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23190 written |= (1 << 6);
23191 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23198 tmp_tmp = SUBDI (GET_H_ACC40S (((FLD (f_ACC40Si)) + (2))), GET_H_ACC40S (((FLD (f_ACC40Si)) + (3))));
23199 if (GTDI (tmp_tmp, 549755813887)) {
23202 DI opval = 549755813887;
23203 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23204 written |= (1 << 7);
23205 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23207 frvbf_media_overflow (current_cpu, 4);
23210 if (LTDI (tmp_tmp, INVDI (549755813887))) {
23213 DI opval = INVDI (549755813887);
23214 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23215 written |= (1 << 7);
23216 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23218 frvbf_media_overflow (current_cpu, 4);
23222 DI opval = tmp_tmp;
23223 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23224 written |= (1 << 7);
23225 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23236 abuf->written = written;
23241 /* masaccs: masaccs$pack $ACC40Si,$ACC40Sk */
23244 SEM_FN_NAME (frvbf,masaccs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23246 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
23247 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23248 int UNUSED written = 0;
23249 IADDR UNUSED pc = abuf->addr;
23250 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23252 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Si))) {
23253 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23254 if (ANDSI (FLD (f_ACC40Si), SUBSI (2, 1))) {
23255 frvbf_media_acc_not_aligned (current_cpu);
23257 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23258 frvbf_media_acc_not_aligned (current_cpu);
23263 tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))));
23264 if (GTDI (tmp_tmp, 549755813887)) {
23267 DI opval = 549755813887;
23268 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23269 written |= (1 << 4);
23270 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23272 frvbf_media_overflow (current_cpu, 8);
23275 if (LTDI (tmp_tmp, INVDI (549755813887))) {
23278 DI opval = INVDI (549755813887);
23279 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23280 written |= (1 << 4);
23281 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23283 frvbf_media_overflow (current_cpu, 8);
23287 DI opval = tmp_tmp;
23288 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23289 written |= (1 << 4);
23290 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23297 tmp_tmp = SUBDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))));
23298 if (GTDI (tmp_tmp, 549755813887)) {
23301 DI opval = 549755813887;
23302 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23303 written |= (1 << 5);
23304 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23306 frvbf_media_overflow (current_cpu, 4);
23309 if (LTDI (tmp_tmp, INVDI (549755813887))) {
23312 DI opval = INVDI (549755813887);
23313 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23314 written |= (1 << 5);
23315 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23317 frvbf_media_overflow (current_cpu, 4);
23321 DI opval = tmp_tmp;
23322 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23323 written |= (1 << 5);
23324 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23335 abuf->written = written;
23340 /* mdasaccs: mdasaccs$pack $ACC40Si,$ACC40Sk */
23343 SEM_FN_NAME (frvbf,mdasaccs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23345 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
23346 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23347 int UNUSED written = 0;
23348 IADDR UNUSED pc = abuf->addr;
23349 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23351 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Si))) {
23352 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23353 if (ANDSI (FLD (f_ACC40Si), SUBSI (4, 1))) {
23354 frvbf_media_acc_not_aligned (current_cpu);
23356 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
23357 frvbf_media_acc_not_aligned (current_cpu);
23362 tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))));
23363 if (GTDI (tmp_tmp, 549755813887)) {
23366 DI opval = 549755813887;
23367 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23368 written |= (1 << 6);
23369 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23371 frvbf_media_overflow (current_cpu, 8);
23374 if (LTDI (tmp_tmp, INVDI (549755813887))) {
23377 DI opval = INVDI (549755813887);
23378 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23379 written |= (1 << 6);
23380 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23382 frvbf_media_overflow (current_cpu, 8);
23386 DI opval = tmp_tmp;
23387 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23388 written |= (1 << 6);
23389 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23396 tmp_tmp = SUBDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))));
23397 if (GTDI (tmp_tmp, 549755813887)) {
23400 DI opval = 549755813887;
23401 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23402 written |= (1 << 7);
23403 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23405 frvbf_media_overflow (current_cpu, 4);
23408 if (LTDI (tmp_tmp, INVDI (549755813887))) {
23411 DI opval = INVDI (549755813887);
23412 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23413 written |= (1 << 7);
23414 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23416 frvbf_media_overflow (current_cpu, 4);
23420 DI opval = tmp_tmp;
23421 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23422 written |= (1 << 7);
23423 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23430 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Si)) + (2))), GET_H_ACC40S (((FLD (f_ACC40Si)) + (3))));
23431 if (GTDI (tmp_tmp, 549755813887)) {
23434 DI opval = 549755813887;
23435 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
23436 written |= (1 << 8);
23437 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23439 frvbf_media_overflow (current_cpu, 2);
23442 if (LTDI (tmp_tmp, INVDI (549755813887))) {
23445 DI opval = INVDI (549755813887);
23446 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
23447 written |= (1 << 8);
23448 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23450 frvbf_media_overflow (current_cpu, 2);
23454 DI opval = tmp_tmp;
23455 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
23456 written |= (1 << 8);
23457 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23464 tmp_tmp = SUBDI (GET_H_ACC40S (((FLD (f_ACC40Si)) + (2))), GET_H_ACC40S (((FLD (f_ACC40Si)) + (3))));
23465 if (GTDI (tmp_tmp, 549755813887)) {
23468 DI opval = 549755813887;
23469 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
23470 written |= (1 << 9);
23471 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23473 frvbf_media_overflow (current_cpu, 1);
23476 if (LTDI (tmp_tmp, INVDI (549755813887))) {
23479 DI opval = INVDI (549755813887);
23480 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
23481 written |= (1 << 9);
23482 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23484 frvbf_media_overflow (current_cpu, 1);
23488 DI opval = tmp_tmp;
23489 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
23490 written |= (1 << 9);
23491 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23502 abuf->written = written;
23507 /* mmulhs: mmulhs$pack $FRinti,$FRintj,$ACC40Sk */
23510 SEM_FN_NAME (frvbf,mmulhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23512 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23513 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23514 int UNUSED written = 0;
23515 IADDR UNUSED pc = abuf->addr;
23516 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23518 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23519 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23520 frvbf_media_acc_not_aligned (current_cpu);
23528 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23529 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23530 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23531 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23534 DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
23535 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23536 written |= (1 << 9);
23537 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23540 DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
23541 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23542 written |= (1 << 10);
23543 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23549 abuf->written = written;
23554 /* mmulhu: mmulhu$pack $FRinti,$FRintj,$ACC40Sk */
23557 SEM_FN_NAME (frvbf,mmulhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23559 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23560 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23561 int UNUSED written = 0;
23562 IADDR UNUSED pc = abuf->addr;
23563 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23565 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23566 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23567 frvbf_media_acc_not_aligned (current_cpu);
23575 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23576 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23577 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23578 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23581 DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
23582 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23583 written |= (1 << 9);
23584 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23587 DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
23588 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23589 written |= (1 << 10);
23590 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23596 abuf->written = written;
23601 /* mmulxhs: mmulxhs$pack $FRinti,$FRintj,$ACC40Sk */
23604 SEM_FN_NAME (frvbf,mmulxhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23606 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23607 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23608 int UNUSED written = 0;
23609 IADDR UNUSED pc = abuf->addr;
23610 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23612 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23613 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23614 frvbf_media_acc_not_aligned (current_cpu);
23622 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23623 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23624 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23625 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23628 DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
23629 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23630 written |= (1 << 9);
23631 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23634 DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
23635 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23636 written |= (1 << 10);
23637 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23643 abuf->written = written;
23648 /* mmulxhu: mmulxhu$pack $FRinti,$FRintj,$ACC40Sk */
23651 SEM_FN_NAME (frvbf,mmulxhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23653 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23654 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23655 int UNUSED written = 0;
23656 IADDR UNUSED pc = abuf->addr;
23657 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23659 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23660 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23661 frvbf_media_acc_not_aligned (current_cpu);
23669 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23670 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23671 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23672 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23675 DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
23676 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23677 written |= (1 << 9);
23678 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23681 DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
23682 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23683 written |= (1 << 10);
23684 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23690 abuf->written = written;
23695 /* cmmulhs: cmmulhs$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
23698 SEM_FN_NAME (frvbf,cmmulhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23700 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23701 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23702 int UNUSED written = 0;
23703 IADDR UNUSED pc = abuf->addr;
23704 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23706 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23707 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23708 frvbf_media_acc_not_aligned (current_cpu);
23710 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
23717 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23718 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23719 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23720 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23723 DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
23724 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23725 written |= (1 << 11);
23726 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23729 DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
23730 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23731 written |= (1 << 12);
23732 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23739 abuf->written = written;
23744 /* cmmulhu: cmmulhu$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
23747 SEM_FN_NAME (frvbf,cmmulhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23749 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23750 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23751 int UNUSED written = 0;
23752 IADDR UNUSED pc = abuf->addr;
23753 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23755 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23756 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23757 frvbf_media_acc_not_aligned (current_cpu);
23759 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
23766 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23767 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23768 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23769 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23772 DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
23773 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23774 written |= (1 << 11);
23775 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23778 DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
23779 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23780 written |= (1 << 12);
23781 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23788 abuf->written = written;
23793 /* mqmulhs: mqmulhs$pack $FRintieven,$FRintjeven,$ACC40Sk */
23796 SEM_FN_NAME (frvbf,mqmulhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23798 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
23799 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23800 int UNUSED written = 0;
23801 IADDR UNUSED pc = abuf->addr;
23802 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23804 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23805 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
23806 frvbf_media_acc_not_aligned (current_cpu);
23808 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
23809 frvbf_media_register_not_aligned (current_cpu);
23817 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23818 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23819 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23820 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23823 DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
23824 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23825 written |= (1 << 13);
23826 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23829 DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
23830 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23831 written |= (1 << 14);
23832 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23835 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23836 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23837 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23838 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23841 DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
23842 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
23843 written |= (1 << 15);
23844 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23847 DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
23848 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
23849 written |= (1 << 16);
23850 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23857 abuf->written = written;
23862 /* mqmulhu: mqmulhu$pack $FRintieven,$FRintjeven,$ACC40Sk */
23865 SEM_FN_NAME (frvbf,mqmulhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23867 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
23868 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23869 int UNUSED written = 0;
23870 IADDR UNUSED pc = abuf->addr;
23871 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23873 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23874 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
23875 frvbf_media_acc_not_aligned (current_cpu);
23877 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
23878 frvbf_media_register_not_aligned (current_cpu);
23886 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23887 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23888 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23889 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23892 DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
23893 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23894 written |= (1 << 13);
23895 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23898 DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
23899 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23900 written |= (1 << 14);
23901 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23904 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23905 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23906 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23907 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23910 DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
23911 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
23912 written |= (1 << 15);
23913 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23916 DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
23917 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
23918 written |= (1 << 16);
23919 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23926 abuf->written = written;
23931 /* mqmulxhs: mqmulxhs$pack $FRintieven,$FRintjeven,$ACC40Sk */
23934 SEM_FN_NAME (frvbf,mqmulxhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23936 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
23937 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23938 int UNUSED written = 0;
23939 IADDR UNUSED pc = abuf->addr;
23940 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23942 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
23943 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
23944 frvbf_media_acc_not_aligned (current_cpu);
23946 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
23947 frvbf_media_register_not_aligned (current_cpu);
23955 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23956 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23957 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23958 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23961 DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
23962 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23963 written |= (1 << 13);
23964 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23967 DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
23968 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23969 written |= (1 << 14);
23970 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23973 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23974 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23975 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23976 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23979 DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
23980 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
23981 written |= (1 << 15);
23982 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23985 DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
23986 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
23987 written |= (1 << 16);
23988 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23995 abuf->written = written;
24000 /* mqmulxhu: mqmulxhu$pack $FRintieven,$FRintjeven,$ACC40Sk */
24003 SEM_FN_NAME (frvbf,mqmulxhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24005 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
24006 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24007 int UNUSED written = 0;
24008 IADDR UNUSED pc = abuf->addr;
24009 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24011 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
24012 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
24013 frvbf_media_acc_not_aligned (current_cpu);
24015 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
24016 frvbf_media_register_not_aligned (current_cpu);
24024 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24025 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24026 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24027 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24030 DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
24031 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24032 written |= (1 << 13);
24033 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24036 DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
24037 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24038 written |= (1 << 14);
24039 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24042 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24043 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24044 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24045 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24048 DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
24049 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
24050 written |= (1 << 15);
24051 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24054 DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
24055 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
24056 written |= (1 << 16);
24057 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24064 abuf->written = written;
24069 /* cmqmulhs: cmqmulhs$pack $FRintieven,$FRintjeven,$ACC40Sk,$CCi,$cond */
24072 SEM_FN_NAME (frvbf,cmqmulhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24074 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
24075 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24076 int UNUSED written = 0;
24077 IADDR UNUSED pc = abuf->addr;
24078 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24080 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
24081 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
24082 frvbf_media_acc_not_aligned (current_cpu);
24084 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
24085 frvbf_media_register_not_aligned (current_cpu);
24087 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
24094 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24095 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24096 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24097 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24100 DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
24101 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24102 written |= (1 << 15);
24103 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24106 DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
24107 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24108 written |= (1 << 16);
24109 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24112 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24113 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24114 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24115 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24118 DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
24119 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
24120 written |= (1 << 17);
24121 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24124 DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
24125 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
24126 written |= (1 << 18);
24127 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24135 abuf->written = written;
24140 /* cmqmulhu: cmqmulhu$pack $FRintieven,$FRintjeven,$ACC40Sk,$CCi,$cond */
24143 SEM_FN_NAME (frvbf,cmqmulhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24145 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
24146 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24147 int UNUSED written = 0;
24148 IADDR UNUSED pc = abuf->addr;
24149 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24151 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
24152 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
24153 frvbf_media_acc_not_aligned (current_cpu);
24155 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
24156 frvbf_media_register_not_aligned (current_cpu);
24158 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
24165 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24166 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24167 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24168 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24171 DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
24172 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24173 written |= (1 << 15);
24174 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24177 DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
24178 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24179 written |= (1 << 16);
24180 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24183 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24184 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24185 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24186 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24189 DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
24190 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
24191 written |= (1 << 17);
24192 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24195 DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
24196 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
24197 written |= (1 << 18);
24198 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24206 abuf->written = written;
24211 /* mmachs: mmachs$pack $FRinti,$FRintj,$ACC40Sk */
24214 SEM_FN_NAME (frvbf,mmachs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24216 #define FLD(f) abuf->fields.sfmt_cmmachs.f
24217 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24218 int UNUSED written = 0;
24219 IADDR UNUSED pc = abuf->addr;
24220 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24222 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
24223 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
24224 frvbf_media_acc_not_aligned (current_cpu);
24232 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24233 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24234 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24235 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24239 tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
24240 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24243 DI opval = MAKEDI (127, 0xffffffff);
24244 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24245 written |= (1 << 11);
24246 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24248 frvbf_media_overflow (current_cpu, 8);
24251 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24254 DI opval = MAKEDI (0xffffff80, 0);
24255 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24256 written |= (1 << 11);
24257 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24259 frvbf_media_overflow (current_cpu, 8);
24263 DI opval = tmp_tmp;
24264 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24265 written |= (1 << 11);
24266 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24273 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (1))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
24274 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24277 DI opval = MAKEDI (127, 0xffffffff);
24278 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24279 written |= (1 << 12);
24280 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24282 frvbf_media_overflow (current_cpu, 4);
24285 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24288 DI opval = MAKEDI (0xffffff80, 0);
24289 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24290 written |= (1 << 12);
24291 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24293 frvbf_media_overflow (current_cpu, 4);
24297 DI opval = tmp_tmp;
24298 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24299 written |= (1 << 12);
24300 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24309 abuf->written = written;
24314 /* mmachu: mmachu$pack $FRinti,$FRintj,$ACC40Uk */
24317 SEM_FN_NAME (frvbf,mmachu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24319 #define FLD(f) abuf->fields.sfmt_cmmachu.f
24320 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24321 int UNUSED written = 0;
24322 IADDR UNUSED pc = abuf->addr;
24323 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24325 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Uk))) {
24326 if (ANDSI (FLD (f_ACC40Uk), SUBSI (2, 1))) {
24327 frvbf_media_acc_not_aligned (current_cpu);
24335 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24336 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24337 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24338 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24342 tmp_tmp = ADDDI (GET_H_ACC40U (FLD (f_ACC40Uk)), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
24343 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24346 UDI opval = MAKEDI (255, 0xffffffff);
24347 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24348 written |= (1 << 11);
24349 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24351 frvbf_media_overflow (current_cpu, 8);
24354 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24357 UDI opval = MAKEDI (0, 0);
24358 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24359 written |= (1 << 11);
24360 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24362 frvbf_media_overflow (current_cpu, 8);
24366 UDI opval = tmp_tmp;
24367 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24368 written |= (1 << 11);
24369 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24376 tmp_tmp = ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (1))), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
24377 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24380 UDI opval = MAKEDI (255, 0xffffffff);
24381 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24382 written |= (1 << 12);
24383 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24385 frvbf_media_overflow (current_cpu, 4);
24388 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24391 UDI opval = MAKEDI (0, 0);
24392 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24393 written |= (1 << 12);
24394 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24396 frvbf_media_overflow (current_cpu, 4);
24400 UDI opval = tmp_tmp;
24401 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24402 written |= (1 << 12);
24403 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24412 abuf->written = written;
24417 /* mmrdhs: mmrdhs$pack $FRinti,$FRintj,$ACC40Sk */
24420 SEM_FN_NAME (frvbf,mmrdhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24422 #define FLD(f) abuf->fields.sfmt_cmmachs.f
24423 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24424 int UNUSED written = 0;
24425 IADDR UNUSED pc = abuf->addr;
24426 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24428 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
24429 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
24430 frvbf_media_acc_not_aligned (current_cpu);
24438 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24439 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24440 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24441 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24445 tmp_tmp = SUBDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
24446 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24449 DI opval = MAKEDI (127, 0xffffffff);
24450 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24451 written |= (1 << 11);
24452 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24454 frvbf_media_overflow (current_cpu, 8);
24457 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24460 DI opval = MAKEDI (0xffffff80, 0);
24461 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24462 written |= (1 << 11);
24463 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24465 frvbf_media_overflow (current_cpu, 8);
24469 DI opval = tmp_tmp;
24470 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24471 written |= (1 << 11);
24472 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24479 tmp_tmp = SUBDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (1))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
24480 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24483 DI opval = MAKEDI (127, 0xffffffff);
24484 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24485 written |= (1 << 12);
24486 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24488 frvbf_media_overflow (current_cpu, 4);
24491 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24494 DI opval = MAKEDI (0xffffff80, 0);
24495 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24496 written |= (1 << 12);
24497 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24499 frvbf_media_overflow (current_cpu, 4);
24503 DI opval = tmp_tmp;
24504 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24505 written |= (1 << 12);
24506 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24515 abuf->written = written;
24520 /* mmrdhu: mmrdhu$pack $FRinti,$FRintj,$ACC40Uk */
24523 SEM_FN_NAME (frvbf,mmrdhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24525 #define FLD(f) abuf->fields.sfmt_cmmachu.f
24526 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24527 int UNUSED written = 0;
24528 IADDR UNUSED pc = abuf->addr;
24529 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24531 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Uk))) {
24532 if (ANDSI (FLD (f_ACC40Uk), SUBSI (2, 1))) {
24533 frvbf_media_acc_not_aligned (current_cpu);
24541 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24542 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24543 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24544 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24548 tmp_tmp = SUBDI (GET_H_ACC40U (FLD (f_ACC40Uk)), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
24549 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24552 UDI opval = MAKEDI (255, 0xffffffff);
24553 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24554 written |= (1 << 11);
24555 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24557 frvbf_media_overflow (current_cpu, 8);
24560 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24563 UDI opval = MAKEDI (0, 0);
24564 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24565 written |= (1 << 11);
24566 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24568 frvbf_media_overflow (current_cpu, 8);
24572 UDI opval = tmp_tmp;
24573 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24574 written |= (1 << 11);
24575 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24582 tmp_tmp = SUBDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (1))), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
24583 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24586 UDI opval = MAKEDI (255, 0xffffffff);
24587 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24588 written |= (1 << 12);
24589 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24591 frvbf_media_overflow (current_cpu, 4);
24594 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24597 UDI opval = MAKEDI (0, 0);
24598 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24599 written |= (1 << 12);
24600 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24602 frvbf_media_overflow (current_cpu, 4);
24606 UDI opval = tmp_tmp;
24607 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24608 written |= (1 << 12);
24609 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24618 abuf->written = written;
24623 /* cmmachs: cmmachs$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
24626 SEM_FN_NAME (frvbf,cmmachs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24628 #define FLD(f) abuf->fields.sfmt_cmmachs.f
24629 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24630 int UNUSED written = 0;
24631 IADDR UNUSED pc = abuf->addr;
24632 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24634 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
24635 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
24636 frvbf_media_acc_not_aligned (current_cpu);
24638 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
24645 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24646 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24647 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24648 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24652 tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
24653 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24656 DI opval = MAKEDI (127, 0xffffffff);
24657 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24658 written |= (1 << 13);
24659 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24661 frvbf_media_overflow (current_cpu, 8);
24664 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24667 DI opval = MAKEDI (0xffffff80, 0);
24668 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24669 written |= (1 << 13);
24670 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24672 frvbf_media_overflow (current_cpu, 8);
24676 DI opval = tmp_tmp;
24677 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24678 written |= (1 << 13);
24679 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24686 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (1))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
24687 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24690 DI opval = MAKEDI (127, 0xffffffff);
24691 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24692 written |= (1 << 14);
24693 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24695 frvbf_media_overflow (current_cpu, 4);
24698 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24701 DI opval = MAKEDI (0xffffff80, 0);
24702 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24703 written |= (1 << 14);
24704 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24706 frvbf_media_overflow (current_cpu, 4);
24710 DI opval = tmp_tmp;
24711 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24712 written |= (1 << 14);
24713 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24723 abuf->written = written;
24728 /* cmmachu: cmmachu$pack $FRinti,$FRintj,$ACC40Uk,$CCi,$cond */
24731 SEM_FN_NAME (frvbf,cmmachu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24733 #define FLD(f) abuf->fields.sfmt_cmmachu.f
24734 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24735 int UNUSED written = 0;
24736 IADDR UNUSED pc = abuf->addr;
24737 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24739 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Uk))) {
24740 if (ANDSI (FLD (f_ACC40Uk), SUBSI (2, 1))) {
24741 frvbf_media_acc_not_aligned (current_cpu);
24743 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
24750 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24751 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24752 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24753 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24757 tmp_tmp = ADDDI (GET_H_ACC40U (FLD (f_ACC40Uk)), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
24758 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24761 UDI opval = MAKEDI (255, 0xffffffff);
24762 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24763 written |= (1 << 13);
24764 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24766 frvbf_media_overflow (current_cpu, 8);
24769 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24772 UDI opval = MAKEDI (0, 0);
24773 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24774 written |= (1 << 13);
24775 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24777 frvbf_media_overflow (current_cpu, 8);
24781 UDI opval = tmp_tmp;
24782 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24783 written |= (1 << 13);
24784 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24791 tmp_tmp = ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (1))), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
24792 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24795 UDI opval = MAKEDI (255, 0xffffffff);
24796 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24797 written |= (1 << 14);
24798 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24800 frvbf_media_overflow (current_cpu, 4);
24803 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24806 UDI opval = MAKEDI (0, 0);
24807 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24808 written |= (1 << 14);
24809 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24811 frvbf_media_overflow (current_cpu, 4);
24815 UDI opval = tmp_tmp;
24816 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24817 written |= (1 << 14);
24818 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24828 abuf->written = written;
24833 /* mqmachs: mqmachs$pack $FRintieven,$FRintjeven,$ACC40Sk */
24836 SEM_FN_NAME (frvbf,mqmachs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24838 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
24839 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24840 int UNUSED written = 0;
24841 IADDR UNUSED pc = abuf->addr;
24842 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24844 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
24845 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
24846 frvbf_media_acc_not_aligned (current_cpu);
24848 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
24849 frvbf_media_register_not_aligned (current_cpu);
24857 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24858 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24859 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24860 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24864 tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
24865 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24868 DI opval = MAKEDI (127, 0xffffffff);
24869 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24870 written |= (1 << 17);
24871 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24873 frvbf_media_overflow (current_cpu, 8);
24876 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24879 DI opval = MAKEDI (0xffffff80, 0);
24880 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24881 written |= (1 << 17);
24882 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24884 frvbf_media_overflow (current_cpu, 8);
24888 DI opval = tmp_tmp;
24889 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24890 written |= (1 << 17);
24891 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24898 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (1))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
24899 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24902 DI opval = MAKEDI (127, 0xffffffff);
24903 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24904 written |= (1 << 18);
24905 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24907 frvbf_media_overflow (current_cpu, 4);
24910 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24913 DI opval = MAKEDI (0xffffff80, 0);
24914 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24915 written |= (1 << 18);
24916 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24918 frvbf_media_overflow (current_cpu, 4);
24922 DI opval = tmp_tmp;
24923 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24924 written |= (1 << 18);
24925 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24931 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24932 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24933 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24934 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24938 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (2))), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
24939 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24942 DI opval = MAKEDI (127, 0xffffffff);
24943 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
24944 written |= (1 << 19);
24945 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24947 frvbf_media_overflow (current_cpu, 2);
24950 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24953 DI opval = MAKEDI (0xffffff80, 0);
24954 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
24955 written |= (1 << 19);
24956 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24958 frvbf_media_overflow (current_cpu, 2);
24962 DI opval = tmp_tmp;
24963 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
24964 written |= (1 << 19);
24965 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24972 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (3))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
24973 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24976 DI opval = MAKEDI (127, 0xffffffff);
24977 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
24978 written |= (1 << 20);
24979 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24981 frvbf_media_overflow (current_cpu, 1);
24984 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24987 DI opval = MAKEDI (0xffffff80, 0);
24988 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
24989 written |= (1 << 20);
24990 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24992 frvbf_media_overflow (current_cpu, 1);
24996 DI opval = tmp_tmp;
24997 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
24998 written |= (1 << 20);
24999 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25009 abuf->written = written;
25014 /* mqmachu: mqmachu$pack $FRintieven,$FRintjeven,$ACC40Uk */
25017 SEM_FN_NAME (frvbf,mqmachu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
25019 #define FLD(f) abuf->fields.sfmt_cmqmachu.f
25020 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
25021 int UNUSED written = 0;
25022 IADDR UNUSED pc = abuf->addr;
25023 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
25025 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Uk))) {
25026 if (ANDSI (FLD (f_ACC40Uk), SUBSI (4, 1))) {
25027 frvbf_media_acc_not_aligned (current_cpu);
25029 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
25030 frvbf_media_register_not_aligned (current_cpu);
25038 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25039 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25040 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25041 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25045 tmp_tmp = ADDDI (GET_H_ACC40U (FLD (f_ACC40Uk)), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
25046 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
25049 UDI opval = MAKEDI (255, 0xffffffff);
25050 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
25051 written |= (1 << 17);
25052 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25054 frvbf_media_overflow (current_cpu, 8);
25057 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
25060 UDI opval = MAKEDI (0, 0);
25061 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
25062 written |= (1 << 17);
25063 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25065 frvbf_media_overflow (current_cpu, 8);
25069 UDI opval = tmp_tmp;
25070 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
25071 written |= (1 << 17);
25072 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25079 tmp_tmp = ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (1))), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
25080 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
25083 UDI opval = MAKEDI (255, 0xffffffff);
25084 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
25085 written |= (1 << 18);
25086 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25088 frvbf_media_overflow (current_cpu, 4);
25091 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
25094 UDI opval = MAKEDI (0, 0);
25095 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
25096 written |= (1 << 18);
25097 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25099 frvbf_media_overflow (current_cpu, 4);
25103 UDI opval = tmp_tmp;
25104 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
25105 written |= (1 << 18);
25106 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25112 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25113 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25114 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25115 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25119 tmp_tmp = ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (2))), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
25120 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
25123 UDI opval = MAKEDI (255, 0xffffffff);
25124 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (2)), opval);
25125 written |= (1 << 19);
25126 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25128 frvbf_media_overflow (current_cpu, 2);
25131 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
25134 UDI opval = MAKEDI (0, 0);
25135 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (2)), opval);
25136 written |= (1 << 19);
25137 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25139 frvbf_media_overflow (current_cpu, 2);
25143 UDI opval = tmp_tmp;
25144 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (2)), opval);
25145 written |= (1 << 19);
25146 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25153 tmp_tmp = ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (3))), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
25154 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
25157 UDI opval = MAKEDI (255, 0xffffffff);
25158 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (3)), opval);
25159 written |= (1 << 20);
25160 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25162 frvbf_media_overflow (current_cpu, 1);
25165 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
25168 UDI opval = MAKEDI (0, 0);
25169 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (3)), opval);
25170 written |= (1 << 20);
25171 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25173 frvbf_media_overflow (current_cpu, 1);
25177 UDI opval = tmp_tmp;
25178 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (3)), opval);
25179 written |= (1 << 20);
25180 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25190 abuf->written = written;
25195 /* cmqmachs: cmqmachs$pack $FRintieven,$FRintjeven,$ACC40Sk,$CCi,$cond */
25198 SEM_FN_NAME (frvbf,cmqmachs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
25200 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
25201 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
25202 int UNUSED written = 0;
25203 IADDR UNUSED pc = abuf->addr;
25204 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
25206 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
25207 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
25208 frvbf_media_acc_not_aligned (current_cpu);
25210 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
25211 frvbf_media_register_not_aligned (current_cpu);
25213 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
25220 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25221 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25222 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25223 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25227 tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
25228 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25231 DI opval = MAKEDI (127, 0xffffffff);
25232 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25233 written |= (1 << 19);
25234 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25236 frvbf_media_overflow (current_cpu, 8);
25239 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25242 DI opval = MAKEDI (0xffffff80, 0);
25243 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25244 written |= (1 << 19);
25245 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25247 frvbf_media_overflow (current_cpu, 8);
25251 DI opval = tmp_tmp;
25252 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25253 written |= (1 << 19);
25254 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25261 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (1))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
25262 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25265 DI opval = MAKEDI (127, 0xffffffff);
25266 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25267 written |= (1 << 20);
25268 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25270 frvbf_media_overflow (current_cpu, 4);
25273 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25276 DI opval = MAKEDI (0xffffff80, 0);
25277 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25278 written |= (1 << 20);
25279 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25281 frvbf_media_overflow (current_cpu, 4);
25285 DI opval = tmp_tmp;
25286 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25287 written |= (1 << 20);
25288 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25294 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25295 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25296 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25297 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25301 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (2))), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
25302 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25305 DI opval = MAKEDI (127, 0xffffffff);
25306 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25307 written |= (1 << 21);
25308 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25310 frvbf_media_overflow (current_cpu, 2);
25313 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25316 DI opval = MAKEDI (0xffffff80, 0);
25317 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25318 written |= (1 << 21);
25319 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25321 frvbf_media_overflow (current_cpu, 2);
25325 DI opval = tmp_tmp;
25326 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25327 written |= (1 << 21);
25328 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25335 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (3))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
25336 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25339 DI opval = MAKEDI (127, 0xffffffff);
25340 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25341 written |= (1 << 22);
25342 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25344 frvbf_media_overflow (current_cpu, 1);
25347 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25350 DI opval = MAKEDI (0xffffff80, 0);
25351 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25352 written |= (1 << 22);
25353 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25355 frvbf_media_overflow (current_cpu, 1);
25359 DI opval = tmp_tmp;
25360 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25361 written |= (1 << 22);
25362 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25373 abuf->written = written;
25378 /* cmqmachu: cmqmachu$pack $FRintieven,$FRintjeven,$ACC40Uk,$CCi,$cond */
25381 SEM_FN_NAME (frvbf,cmqmachu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
25383 #define FLD(f) abuf->fields.sfmt_cmqmachu.f
25384 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
25385 int UNUSED written = 0;
25386 IADDR UNUSED pc = abuf->addr;
25387 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
25389 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Uk))) {
25390 if (ANDSI (FLD (f_ACC40Uk), SUBSI (4, 1))) {
25391 frvbf_media_acc_not_aligned (current_cpu);
25393 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
25394 frvbf_media_register_not_aligned (current_cpu);
25396 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
25403 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25404 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25405 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25406 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25410 tmp_tmp = ADDDI (GET_H_ACC40U (FLD (f_ACC40Uk)), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
25411 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
25414 UDI opval = MAKEDI (255, 0xffffffff);
25415 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
25416 written |= (1 << 19);
25417 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25419 frvbf_media_overflow (current_cpu, 8);
25422 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
25425 UDI opval = MAKEDI (0, 0);
25426 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
25427 written |= (1 << 19);
25428 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25430 frvbf_media_overflow (current_cpu, 8);
25434 UDI opval = tmp_tmp;
25435 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
25436 written |= (1 << 19);
25437 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25444 tmp_tmp = ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (1))), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
25445 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
25448 UDI opval = MAKEDI (255, 0xffffffff);
25449 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
25450 written |= (1 << 20);
25451 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25453 frvbf_media_overflow (current_cpu, 4);
25456 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
25459 UDI opval = MAKEDI (0, 0);
25460 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
25461 written |= (1 << 20);
25462 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25464 frvbf_media_overflow (current_cpu, 4);
25468 UDI opval = tmp_tmp;
25469 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
25470 written |= (1 << 20);
25471 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25477 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25478 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25479 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25480 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25484 tmp_tmp = ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (2))), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
25485 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
25488 UDI opval = MAKEDI (255, 0xffffffff);
25489 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (2)), opval);
25490 written |= (1 << 21);
25491 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25493 frvbf_media_overflow (current_cpu, 2);
25496 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
25499 UDI opval = MAKEDI (0, 0);
25500 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (2)), opval);
25501 written |= (1 << 21);
25502 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25504 frvbf_media_overflow (current_cpu, 2);
25508 UDI opval = tmp_tmp;
25509 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (2)), opval);
25510 written |= (1 << 21);
25511 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25518 tmp_tmp = ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (3))), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
25519 if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
25522 UDI opval = MAKEDI (255, 0xffffffff);
25523 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (3)), opval);
25524 written |= (1 << 22);
25525 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25527 frvbf_media_overflow (current_cpu, 1);
25530 if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
25533 UDI opval = MAKEDI (0, 0);
25534 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (3)), opval);
25535 written |= (1 << 22);
25536 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25538 frvbf_media_overflow (current_cpu, 1);
25542 UDI opval = tmp_tmp;
25543 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (3)), opval);
25544 written |= (1 << 22);
25545 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25556 abuf->written = written;
25561 /* mqxmachs: mqxmachs$pack $FRintieven,$FRintjeven,$ACC40Sk */
25564 SEM_FN_NAME (frvbf,mqxmachs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
25566 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
25567 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
25568 int UNUSED written = 0;
25569 IADDR UNUSED pc = abuf->addr;
25570 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
25572 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
25573 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
25574 frvbf_media_acc_not_aligned (current_cpu);
25576 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
25577 frvbf_media_register_not_aligned (current_cpu);
25585 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25586 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25587 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25588 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25592 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (2))), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
25593 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25596 DI opval = MAKEDI (127, 0xffffffff);
25597 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25598 written |= (1 << 19);
25599 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25601 frvbf_media_overflow (current_cpu, 2);
25604 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25607 DI opval = MAKEDI (0xffffff80, 0);
25608 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25609 written |= (1 << 19);
25610 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25612 frvbf_media_overflow (current_cpu, 2);
25616 DI opval = tmp_tmp;
25617 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25618 written |= (1 << 19);
25619 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25626 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (3))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
25627 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25630 DI opval = MAKEDI (127, 0xffffffff);
25631 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25632 written |= (1 << 20);
25633 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25635 frvbf_media_overflow (current_cpu, 1);
25638 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25641 DI opval = MAKEDI (0xffffff80, 0);
25642 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25643 written |= (1 << 20);
25644 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25646 frvbf_media_overflow (current_cpu, 1);
25650 DI opval = tmp_tmp;
25651 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25652 written |= (1 << 20);
25653 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25659 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25660 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25661 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25662 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25666 tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
25667 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25670 DI opval = MAKEDI (127, 0xffffffff);
25671 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25672 written |= (1 << 17);
25673 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25675 frvbf_media_overflow (current_cpu, 8);
25678 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25681 DI opval = MAKEDI (0xffffff80, 0);
25682 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25683 written |= (1 << 17);
25684 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25686 frvbf_media_overflow (current_cpu, 8);
25690 DI opval = tmp_tmp;
25691 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25692 written |= (1 << 17);
25693 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25700 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (1))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
25701 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25704 DI opval = MAKEDI (127, 0xffffffff);
25705 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25706 written |= (1 << 18);
25707 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25709 frvbf_media_overflow (current_cpu, 4);
25712 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25715 DI opval = MAKEDI (0xffffff80, 0);
25716 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25717 written |= (1 << 18);
25718 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25720 frvbf_media_overflow (current_cpu, 4);
25724 DI opval = tmp_tmp;
25725 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25726 written |= (1 << 18);
25727 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25737 abuf->written = written;
25742 /* mqxmacxhs: mqxmacxhs$pack $FRintieven,$FRintjeven,$ACC40Sk */
25745 SEM_FN_NAME (frvbf,mqxmacxhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
25747 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
25748 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
25749 int UNUSED written = 0;
25750 IADDR UNUSED pc = abuf->addr;
25751 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
25753 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
25754 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
25755 frvbf_media_acc_not_aligned (current_cpu);
25757 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
25758 frvbf_media_register_not_aligned (current_cpu);
25766 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25767 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25768 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25769 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25773 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (2))), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo)));
25774 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25777 DI opval = MAKEDI (127, 0xffffffff);
25778 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25779 written |= (1 << 19);
25780 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25782 frvbf_media_overflow (current_cpu, 2);
25785 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25788 DI opval = MAKEDI (0xffffff80, 0);
25789 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25790 written |= (1 << 19);
25791 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25793 frvbf_media_overflow (current_cpu, 2);
25797 DI opval = tmp_tmp;
25798 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25799 written |= (1 << 19);
25800 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25807 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (3))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi)));
25808 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25811 DI opval = MAKEDI (127, 0xffffffff);
25812 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25813 written |= (1 << 20);
25814 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25816 frvbf_media_overflow (current_cpu, 1);
25819 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25822 DI opval = MAKEDI (0xffffff80, 0);
25823 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25824 written |= (1 << 20);
25825 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25827 frvbf_media_overflow (current_cpu, 1);
25831 DI opval = tmp_tmp;
25832 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25833 written |= (1 << 20);
25834 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25840 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25841 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25842 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25843 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25847 tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo)));
25848 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25851 DI opval = MAKEDI (127, 0xffffffff);
25852 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25853 written |= (1 << 17);
25854 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25856 frvbf_media_overflow (current_cpu, 8);
25859 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25862 DI opval = MAKEDI (0xffffff80, 0);
25863 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25864 written |= (1 << 17);
25865 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25867 frvbf_media_overflow (current_cpu, 8);
25871 DI opval = tmp_tmp;
25872 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25873 written |= (1 << 17);
25874 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25881 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (1))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi)));
25882 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25885 DI opval = MAKEDI (127, 0xffffffff);
25886 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25887 written |= (1 << 18);
25888 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25890 frvbf_media_overflow (current_cpu, 4);
25893 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25896 DI opval = MAKEDI (0xffffff80, 0);
25897 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25898 written |= (1 << 18);
25899 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25901 frvbf_media_overflow (current_cpu, 4);
25905 DI opval = tmp_tmp;
25906 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25907 written |= (1 << 18);
25908 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25918 abuf->written = written;
25923 /* mqmacxhs: mqmacxhs$pack $FRintieven,$FRintjeven,$ACC40Sk */
25926 SEM_FN_NAME (frvbf,mqmacxhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
25928 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
25929 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
25930 int UNUSED written = 0;
25931 IADDR UNUSED pc = abuf->addr;
25932 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
25934 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
25935 if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
25936 frvbf_media_acc_not_aligned (current_cpu);
25938 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
25939 frvbf_media_register_not_aligned (current_cpu);
25947 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25948 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25949 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25950 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25954 tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo)));
25955 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25958 DI opval = MAKEDI (127, 0xffffffff);
25959 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25960 written |= (1 << 17);
25961 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25963 frvbf_media_overflow (current_cpu, 8);
25966 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25969 DI opval = MAKEDI (0xffffff80, 0);
25970 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25971 written |= (1 << 17);
25972 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25974 frvbf_media_overflow (current_cpu, 8);
25978 DI opval = tmp_tmp;
25979 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25980 written |= (1 << 17);
25981 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25988 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (1))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi)));
25989 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25992 DI opval = MAKEDI (127, 0xffffffff);
25993 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25994 written |= (1 << 18);
25995 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25997 frvbf_media_overflow (current_cpu, 4);
26000 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
26003 DI opval = MAKEDI (0xffffff80, 0);
26004 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26005 written |= (1 << 18);
26006 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26008 frvbf_media_overflow (current_cpu, 4);
26012 DI opval = tmp_tmp;
26013 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26014 written |= (1 << 18);
26015 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26021 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26022 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26023 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26024 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26028 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (2))), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo)));
26029 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
26032 DI opval = MAKEDI (127, 0xffffffff);
26033 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
26034 written |= (1 << 19);
26035 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26037 frvbf_media_overflow (current_cpu, 2);
26040 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
26043 DI opval = MAKEDI (0xffffff80, 0);
26044 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
26045 written |= (1 << 19);
26046 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26048 frvbf_media_overflow (current_cpu, 2);
26052 DI opval = tmp_tmp;
26053 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
26054 written |= (1 << 19);
26055 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26062 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (3))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi)));
26063 if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
26066 DI opval = MAKEDI (127, 0xffffffff);
26067 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
26068 written |= (1 << 20);
26069 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26071 frvbf_media_overflow (current_cpu, 1);
26074 if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
26077 DI opval = MAKEDI (0xffffff80, 0);
26078 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
26079 written |= (1 << 20);
26080 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26082 frvbf_media_overflow (current_cpu, 1);
26086 DI opval = tmp_tmp;
26087 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
26088 written |= (1 << 20);
26089 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26099 abuf->written = written;
26104 /* mcpxrs: mcpxrs$pack $FRinti,$FRintj,$ACC40Sk */
26107 SEM_FN_NAME (frvbf,mcpxrs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26109 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26110 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26111 int UNUSED written = 0;
26112 IADDR UNUSED pc = abuf->addr;
26113 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26115 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
26122 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26123 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26124 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26125 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26130 tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
26131 tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
26132 tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26133 if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26136 DI opval = MAKEDI (127, 0xffffffff);
26137 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26138 written |= (1 << 9);
26139 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26141 frvbf_media_overflow (current_cpu, 8);
26144 if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26147 DI opval = MAKEDI (0xffffff80, 0);
26148 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26149 written |= (1 << 9);
26150 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26152 frvbf_media_overflow (current_cpu, 8);
26156 DI opval = tmp_tmp1;
26157 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26158 written |= (1 << 9);
26159 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26167 abuf->written = written;
26172 /* mcpxru: mcpxru$pack $FRinti,$FRintj,$ACC40Sk */
26175 SEM_FN_NAME (frvbf,mcpxru) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26177 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26178 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26179 int UNUSED written = 0;
26180 IADDR UNUSED pc = abuf->addr;
26181 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26183 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
26190 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26191 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26192 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26193 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26198 tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
26199 tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
26200 tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26201 if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
26204 DI opval = MAKEDI (255, 0xffffffff);
26205 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26206 written |= (1 << 9);
26207 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26209 frvbf_media_overflow (current_cpu, 8);
26212 if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
26215 DI opval = MAKEDI (0, 0);
26216 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26217 written |= (1 << 9);
26218 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26220 frvbf_media_overflow (current_cpu, 8);
26224 DI opval = tmp_tmp1;
26225 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26226 written |= (1 << 9);
26227 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26235 abuf->written = written;
26240 /* mcpxis: mcpxis$pack $FRinti,$FRintj,$ACC40Sk */
26243 SEM_FN_NAME (frvbf,mcpxis) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26245 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26246 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26247 int UNUSED written = 0;
26248 IADDR UNUSED pc = abuf->addr;
26249 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26251 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
26258 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26259 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26260 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26261 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26266 tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
26267 tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
26268 tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
26269 if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26272 DI opval = MAKEDI (127, 0xffffffff);
26273 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26274 written |= (1 << 9);
26275 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26277 frvbf_media_overflow (current_cpu, 8);
26280 if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26283 DI opval = MAKEDI (0xffffff80, 0);
26284 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26285 written |= (1 << 9);
26286 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26288 frvbf_media_overflow (current_cpu, 8);
26292 DI opval = tmp_tmp1;
26293 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26294 written |= (1 << 9);
26295 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26303 abuf->written = written;
26308 /* mcpxiu: mcpxiu$pack $FRinti,$FRintj,$ACC40Sk */
26311 SEM_FN_NAME (frvbf,mcpxiu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26313 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26314 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26315 int UNUSED written = 0;
26316 IADDR UNUSED pc = abuf->addr;
26317 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26319 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
26326 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26327 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26328 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26329 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26334 tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
26335 tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
26336 tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
26337 if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
26340 DI opval = MAKEDI (255, 0xffffffff);
26341 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26342 written |= (1 << 9);
26343 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26345 frvbf_media_overflow (current_cpu, 8);
26348 if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
26351 DI opval = MAKEDI (0, 0);
26352 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26353 written |= (1 << 9);
26354 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26356 frvbf_media_overflow (current_cpu, 8);
26360 DI opval = tmp_tmp1;
26361 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26362 written |= (1 << 9);
26363 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26371 abuf->written = written;
26376 /* cmcpxrs: cmcpxrs$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
26379 SEM_FN_NAME (frvbf,cmcpxrs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26381 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26382 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26383 int UNUSED written = 0;
26384 IADDR UNUSED pc = abuf->addr;
26385 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26387 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
26388 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
26395 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26396 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26397 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26398 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26403 tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
26404 tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
26405 tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26406 if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26409 DI opval = MAKEDI (127, 0xffffffff);
26410 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26411 written |= (1 << 11);
26412 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26414 frvbf_media_overflow (current_cpu, 8);
26417 if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26420 DI opval = MAKEDI (0xffffff80, 0);
26421 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26422 written |= (1 << 11);
26423 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26425 frvbf_media_overflow (current_cpu, 8);
26429 DI opval = tmp_tmp1;
26430 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26431 written |= (1 << 11);
26432 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26441 abuf->written = written;
26446 /* cmcpxru: cmcpxru$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
26449 SEM_FN_NAME (frvbf,cmcpxru) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26451 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26452 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26453 int UNUSED written = 0;
26454 IADDR UNUSED pc = abuf->addr;
26455 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26457 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
26458 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
26465 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26466 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26467 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26468 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26473 tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
26474 tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
26475 tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26476 if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
26479 DI opval = MAKEDI (255, 0xffffffff);
26480 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26481 written |= (1 << 11);
26482 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26484 frvbf_media_overflow (current_cpu, 8);
26487 if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
26490 DI opval = MAKEDI (0, 0);
26491 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26492 written |= (1 << 11);
26493 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26495 frvbf_media_overflow (current_cpu, 8);
26499 DI opval = tmp_tmp1;
26500 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26501 written |= (1 << 11);
26502 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26511 abuf->written = written;
26516 /* cmcpxis: cmcpxis$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
26519 SEM_FN_NAME (frvbf,cmcpxis) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26521 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26522 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26523 int UNUSED written = 0;
26524 IADDR UNUSED pc = abuf->addr;
26525 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26527 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
26528 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
26535 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26536 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26537 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26538 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26543 tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
26544 tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
26545 tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
26546 if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26549 DI opval = MAKEDI (127, 0xffffffff);
26550 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26551 written |= (1 << 11);
26552 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26554 frvbf_media_overflow (current_cpu, 8);
26557 if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26560 DI opval = MAKEDI (0xffffff80, 0);
26561 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26562 written |= (1 << 11);
26563 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26565 frvbf_media_overflow (current_cpu, 8);
26569 DI opval = tmp_tmp1;
26570 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26571 written |= (1 << 11);
26572 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26581 abuf->written = written;
26586 /* cmcpxiu: cmcpxiu$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
26589 SEM_FN_NAME (frvbf,cmcpxiu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26591 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26592 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26593 int UNUSED written = 0;
26594 IADDR UNUSED pc = abuf->addr;
26595 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26597 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
26598 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
26605 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26606 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26607 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26608 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26613 tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
26614 tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
26615 tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
26616 if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
26619 DI opval = MAKEDI (255, 0xffffffff);
26620 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26621 written |= (1 << 11);
26622 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26624 frvbf_media_overflow (current_cpu, 8);
26627 if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
26630 DI opval = MAKEDI (0, 0);
26631 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26632 written |= (1 << 11);
26633 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26635 frvbf_media_overflow (current_cpu, 8);
26639 DI opval = tmp_tmp1;
26640 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26641 written |= (1 << 11);
26642 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26651 abuf->written = written;
26656 /* mqcpxrs: mqcpxrs$pack $FRintieven,$FRintjeven,$ACC40Sk */
26659 SEM_FN_NAME (frvbf,mqcpxrs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26661 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
26662 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26663 int UNUSED written = 0;
26664 IADDR UNUSED pc = abuf->addr;
26665 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26667 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
26668 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
26669 frvbf_media_acc_not_aligned (current_cpu);
26671 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
26672 frvbf_media_register_not_aligned (current_cpu);
26680 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26681 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26682 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26683 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26688 tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
26689 tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
26690 tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26691 if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26694 DI opval = MAKEDI (127, 0xffffffff);
26695 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26696 written |= (1 << 13);
26697 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26699 frvbf_media_overflow (current_cpu, 8);
26702 if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26705 DI opval = MAKEDI (0xffffff80, 0);
26706 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26707 written |= (1 << 13);
26708 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26710 frvbf_media_overflow (current_cpu, 8);
26714 DI opval = tmp_tmp1;
26715 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26716 written |= (1 << 13);
26717 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26723 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26724 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26725 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26726 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26731 tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
26732 tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
26733 tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26734 if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26737 DI opval = MAKEDI (127, 0xffffffff);
26738 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26739 written |= (1 << 14);
26740 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26742 frvbf_media_overflow (current_cpu, 4);
26745 if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26748 DI opval = MAKEDI (0xffffff80, 0);
26749 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26750 written |= (1 << 14);
26751 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26753 frvbf_media_overflow (current_cpu, 4);
26757 DI opval = tmp_tmp1;
26758 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26759 written |= (1 << 14);
26760 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26770 abuf->written = written;
26775 /* mqcpxru: mqcpxru$pack $FRintieven,$FRintjeven,$ACC40Sk */
26778 SEM_FN_NAME (frvbf,mqcpxru) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26780 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
26781 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26782 int UNUSED written = 0;
26783 IADDR UNUSED pc = abuf->addr;
26784 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26786 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
26787 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
26788 frvbf_media_acc_not_aligned (current_cpu);
26790 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
26791 frvbf_media_register_not_aligned (current_cpu);
26799 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26800 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26801 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26802 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26807 tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
26808 tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
26809 tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26810 if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
26813 DI opval = MAKEDI (255, 0xffffffff);
26814 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26815 written |= (1 << 13);
26816 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26818 frvbf_media_overflow (current_cpu, 8);
26821 if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
26824 DI opval = MAKEDI (0, 0);
26825 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26826 written |= (1 << 13);
26827 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26829 frvbf_media_overflow (current_cpu, 8);
26833 DI opval = tmp_tmp1;
26834 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26835 written |= (1 << 13);
26836 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26842 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26843 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26844 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26845 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26850 tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
26851 tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
26852 tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26853 if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
26856 DI opval = MAKEDI (255, 0xffffffff);
26857 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26858 written |= (1 << 14);
26859 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26861 frvbf_media_overflow (current_cpu, 4);
26864 if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
26867 DI opval = MAKEDI (0, 0);
26868 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26869 written |= (1 << 14);
26870 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26872 frvbf_media_overflow (current_cpu, 4);
26876 DI opval = tmp_tmp1;
26877 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26878 written |= (1 << 14);
26879 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26889 abuf->written = written;
26894 /* mqcpxis: mqcpxis$pack $FRintieven,$FRintjeven,$ACC40Sk */
26897 SEM_FN_NAME (frvbf,mqcpxis) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26899 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
26900 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26901 int UNUSED written = 0;
26902 IADDR UNUSED pc = abuf->addr;
26903 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26905 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
26906 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
26907 frvbf_media_acc_not_aligned (current_cpu);
26909 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
26910 frvbf_media_register_not_aligned (current_cpu);
26918 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26919 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26920 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26921 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26926 tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
26927 tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
26928 tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
26929 if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26932 DI opval = MAKEDI (127, 0xffffffff);
26933 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26934 written |= (1 << 13);
26935 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26937 frvbf_media_overflow (current_cpu, 8);
26940 if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26943 DI opval = MAKEDI (0xffffff80, 0);
26944 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26945 written |= (1 << 13);
26946 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26948 frvbf_media_overflow (current_cpu, 8);
26952 DI opval = tmp_tmp1;
26953 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26954 written |= (1 << 13);
26955 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26961 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26962 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26963 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26964 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26969 tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
26970 tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
26971 tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
26972 if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26975 DI opval = MAKEDI (127, 0xffffffff);
26976 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26977 written |= (1 << 14);
26978 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26980 frvbf_media_overflow (current_cpu, 4);
26983 if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26986 DI opval = MAKEDI (0xffffff80, 0);
26987 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26988 written |= (1 << 14);
26989 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26991 frvbf_media_overflow (current_cpu, 4);
26995 DI opval = tmp_tmp1;
26996 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26997 written |= (1 << 14);
26998 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
27008 abuf->written = written;
27013 /* mqcpxiu: mqcpxiu$pack $FRintieven,$FRintjeven,$ACC40Sk */
27016 SEM_FN_NAME (frvbf,mqcpxiu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27018 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
27019 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27020 int UNUSED written = 0;
27021 IADDR UNUSED pc = abuf->addr;
27022 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27024 if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
27025 if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
27026 frvbf_media_acc_not_aligned (current_cpu);
27028 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
27029 frvbf_media_register_not_aligned (current_cpu);
27037 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
27038 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
27039 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
27040 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
27045 tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
27046 tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
27047 tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
27048 if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
27051 DI opval = MAKEDI (255, 0xffffffff);
27052 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
27053 written |= (1 << 13);
27054 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
27056 frvbf_media_overflow (current_cpu, 8);
27059 if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
27062 DI opval = MAKEDI (0, 0);
27063 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
27064 written |= (1 << 13);
27065 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
27067 frvbf_media_overflow (current_cpu, 8);
27071 DI opval = tmp_tmp1;
27072 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
27073 written |= (1 << 13);
27074 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
27080 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
27081 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
27082 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
27083 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
27088 tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
27089 tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
27090 tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
27091 if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
27094 DI opval = MAKEDI (255, 0xffffffff);
27095 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
27096 written |= (1 << 14);
27097 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
27099 frvbf_media_overflow (current_cpu, 4);
27102 if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
27105 DI opval = MAKEDI (0, 0);
27106 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
27107 written |= (1 << 14);
27108 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
27110 frvbf_media_overflow (current_cpu, 4);
27114 DI opval = tmp_tmp1;
27115 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
27116 written |= (1 << 14);
27117 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
27127 abuf->written = written;
27132 /* mexpdhw: mexpdhw$pack $FRinti,$u6,$FRintk */
27135 SEM_FN_NAME (frvbf,mexpdhw) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27137 #define FLD(f) abuf->fields.sfmt_cmexpdhw.f
27138 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27139 int UNUSED written = 0;
27140 IADDR UNUSED pc = abuf->addr;
27141 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27145 if (ANDSI (FLD (f_u6), 1)) {
27146 tmp_tmp = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
27148 tmp_tmp = GET_H_FR_HI (((FLD (f_FRi)) + (0)));
27151 UHI opval = tmp_tmp;
27152 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27153 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27156 UHI opval = tmp_tmp;
27157 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27158 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27166 /* cmexpdhw: cmexpdhw$pack $FRinti,$u6,$FRintk,$CCi,$cond */
27169 SEM_FN_NAME (frvbf,cmexpdhw) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27171 #define FLD(f) abuf->fields.sfmt_cmexpdhw.f
27172 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27173 int UNUSED written = 0;
27174 IADDR UNUSED pc = abuf->addr;
27175 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27177 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
27180 if (ANDSI (FLD (f_u6), 1)) {
27181 tmp_tmp = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
27183 tmp_tmp = GET_H_FR_HI (((FLD (f_FRi)) + (0)));
27186 UHI opval = tmp_tmp;
27187 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27188 written |= (1 << 7);
27189 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27192 UHI opval = tmp_tmp;
27193 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27194 written |= (1 << 8);
27195 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27200 abuf->written = written;
27205 /* mexpdhd: mexpdhd$pack $FRinti,$u6,$FRintkeven */
27208 SEM_FN_NAME (frvbf,mexpdhd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27210 #define FLD(f) abuf->fields.sfmt_cmexpdhd.f
27211 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27212 int UNUSED written = 0;
27213 IADDR UNUSED pc = abuf->addr;
27214 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27216 if (ANDSI (FLD (f_FRk), SUBSI (2, 1))) {
27217 frvbf_media_register_not_aligned (current_cpu);
27222 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27223 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27224 written |= (1 << 6);
27225 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27227 if (ANDSI (FLD (f_u6), 1)) {
27228 tmp_tmp = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
27230 tmp_tmp = GET_H_FR_HI (((FLD (f_FRi)) + (0)));
27233 UHI opval = tmp_tmp;
27234 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27235 written |= (1 << 7);
27236 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27239 UHI opval = tmp_tmp;
27240 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27241 written |= (1 << 9);
27242 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27245 UHI opval = tmp_tmp;
27246 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
27247 written |= (1 << 8);
27248 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27251 UHI opval = tmp_tmp;
27252 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
27253 written |= (1 << 10);
27254 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27259 abuf->written = written;
27264 /* cmexpdhd: cmexpdhd$pack $FRinti,$u6,$FRintkeven,$CCi,$cond */
27267 SEM_FN_NAME (frvbf,cmexpdhd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27269 #define FLD(f) abuf->fields.sfmt_cmexpdhd.f
27270 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27271 int UNUSED written = 0;
27272 IADDR UNUSED pc = abuf->addr;
27273 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27275 if (ANDSI (FLD (f_FRk), SUBSI (2, 1))) {
27276 frvbf_media_register_not_aligned (current_cpu);
27278 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
27282 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27283 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27284 written |= (1 << 8);
27285 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27287 if (ANDSI (FLD (f_u6), 1)) {
27288 tmp_tmp = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
27290 tmp_tmp = GET_H_FR_HI (((FLD (f_FRi)) + (0)));
27293 UHI opval = tmp_tmp;
27294 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27295 written |= (1 << 9);
27296 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27299 UHI opval = tmp_tmp;
27300 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27301 written |= (1 << 11);
27302 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27305 UHI opval = tmp_tmp;
27306 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
27307 written |= (1 << 10);
27308 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27311 UHI opval = tmp_tmp;
27312 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
27313 written |= (1 << 12);
27314 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27320 abuf->written = written;
27325 /* mpackh: mpackh$pack $FRinti,$FRintj,$FRintk */
27328 SEM_FN_NAME (frvbf,mpackh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27330 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
27331 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27332 int UNUSED written = 0;
27333 IADDR UNUSED pc = abuf->addr;
27334 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27338 UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
27339 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27340 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27343 UHI opval = GET_H_FR_LO (((FLD (f_FRj)) + (0)));
27344 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27345 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27353 /* mdpackh: mdpackh$pack $FRintieven,$FRintjeven,$FRintkeven */
27356 SEM_FN_NAME (frvbf,mdpackh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27358 #define FLD(f) abuf->fields.sfmt_mdpackh.f
27359 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27360 int UNUSED written = 0;
27361 IADDR UNUSED pc = abuf->addr;
27362 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27364 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
27365 frvbf_media_register_not_aligned (current_cpu);
27369 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
27370 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
27371 written |= (1 << 10);
27372 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27375 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27376 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27377 written |= (1 << 11);
27378 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27381 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27382 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27383 written |= (1 << 12);
27384 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27388 UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
27389 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27390 written |= (1 << 13);
27391 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27394 UHI opval = GET_H_FR_LO (((FLD (f_FRj)) + (0)));
27395 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27396 written |= (1 << 15);
27397 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27402 UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (1)));
27403 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
27404 written |= (1 << 14);
27405 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27408 UHI opval = GET_H_FR_LO (((FLD (f_FRj)) + (1)));
27409 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
27410 written |= (1 << 16);
27411 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27417 abuf->written = written;
27422 /* munpackh: munpackh$pack $FRinti,$FRintkeven */
27425 SEM_FN_NAME (frvbf,munpackh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27427 #define FLD(f) abuf->fields.sfmt_munpackh.f
27428 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27429 int UNUSED written = 0;
27430 IADDR UNUSED pc = abuf->addr;
27431 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27433 if (ANDSI (FLD (f_FRk), SUBSI (2, 1))) {
27434 frvbf_media_register_not_aligned (current_cpu);
27438 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
27439 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
27440 written |= (1 << 6);
27441 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27444 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27445 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27446 written |= (1 << 7);
27447 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27451 UHI opval = GET_H_FR_HI (((FLD (f_FRi)) + (0)));
27452 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27453 written |= (1 << 8);
27454 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27457 UHI opval = GET_H_FR_HI (((FLD (f_FRi)) + (0)));
27458 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27459 written |= (1 << 10);
27460 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27463 UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
27464 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (ADDSI (0, 1))), opval);
27465 written |= (1 << 9);
27466 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27469 UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
27470 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (ADDSI (0, 1))), opval);
27471 written |= (1 << 11);
27472 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27478 abuf->written = written;
27483 /* mdunpackh: mdunpackh$pack $FRintieven,$FRintk */
27486 SEM_FN_NAME (frvbf,mdunpackh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27488 #define FLD(f) abuf->fields.sfmt_mdunpackh.f
27489 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27490 int UNUSED written = 0;
27491 IADDR UNUSED pc = abuf->addr;
27492 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27494 if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (4, 1)))) {
27495 frvbf_media_register_not_aligned (current_cpu);
27499 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
27500 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
27501 written |= (1 << 8);
27502 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27505 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27506 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27507 written |= (1 << 9);
27508 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27512 UHI opval = GET_H_FR_HI (((FLD (f_FRi)) + (0)));
27513 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27514 written |= (1 << 10);
27515 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27518 UHI opval = GET_H_FR_HI (((FLD (f_FRi)) + (0)));
27519 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27520 written |= (1 << 14);
27521 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27524 UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
27525 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (ADDSI (0, 1))), opval);
27526 written |= (1 << 12);
27527 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27530 UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
27531 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (ADDSI (0, 1))), opval);
27532 written |= (1 << 16);
27533 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27538 UHI opval = GET_H_FR_HI (((FLD (f_FRi)) + (1)));
27539 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (2)), opval);
27540 written |= (1 << 11);
27541 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27544 UHI opval = GET_H_FR_HI (((FLD (f_FRi)) + (1)));
27545 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (2)), opval);
27546 written |= (1 << 15);
27547 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27550 UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (1)));
27551 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (ADDSI (2, 1))), opval);
27552 written |= (1 << 13);
27553 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27556 UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (1)));
27557 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (ADDSI (2, 1))), opval);
27558 written |= (1 << 17);
27559 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27565 abuf->written = written;
27570 /* mbtoh: mbtoh$pack $FRintj,$FRintkeven */
27573 SEM_FN_NAME (frvbf,mbtoh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27575 #define FLD(f) abuf->fields.sfmt_cmbtoh.f
27576 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27577 int UNUSED written = 0;
27578 IADDR UNUSED pc = abuf->addr;
27579 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27583 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27584 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27585 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27588 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27589 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27590 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27592 if (ANDSI (FLD (f_FRk), SUBSI (2, 1))) {
27593 frvbf_media_register_not_aligned (current_cpu);
27597 UHI opval = GET_H_FR_3 (((FLD (f_FRj)) + (0)));
27598 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27599 written |= (1 << 10);
27600 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27603 UHI opval = GET_H_FR_2 (((FLD (f_FRj)) + (0)));
27604 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27605 written |= (1 << 12);
27606 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27609 UHI opval = GET_H_FR_1 (((FLD (f_FRj)) + (0)));
27610 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
27611 written |= (1 << 11);
27612 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27615 UHI opval = GET_H_FR_0 (((FLD (f_FRj)) + (0)));
27616 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
27617 written |= (1 << 13);
27618 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27624 abuf->written = written;
27629 /* cmbtoh: cmbtoh$pack $FRintj,$FRintkeven,$CCi,$cond */
27632 SEM_FN_NAME (frvbf,cmbtoh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27634 #define FLD(f) abuf->fields.sfmt_cmbtoh.f
27635 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27636 int UNUSED written = 0;
27637 IADDR UNUSED pc = abuf->addr;
27638 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27642 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27643 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27644 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27647 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27648 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27649 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27651 if (ANDSI (FLD (f_FRk), SUBSI (2, 1))) {
27652 frvbf_media_register_not_aligned (current_cpu);
27654 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
27657 UHI opval = GET_H_FR_3 (((FLD (f_FRj)) + (0)));
27658 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27659 written |= (1 << 12);
27660 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27663 UHI opval = GET_H_FR_2 (((FLD (f_FRj)) + (0)));
27664 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27665 written |= (1 << 14);
27666 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27669 UHI opval = GET_H_FR_1 (((FLD (f_FRj)) + (0)));
27670 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
27671 written |= (1 << 13);
27672 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27675 UHI opval = GET_H_FR_0 (((FLD (f_FRj)) + (0)));
27676 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
27677 written |= (1 << 15);
27678 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27685 abuf->written = written;
27690 /* mhtob: mhtob$pack $FRintjeven,$FRintk */
27693 SEM_FN_NAME (frvbf,mhtob) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27695 #define FLD(f) abuf->fields.sfmt_cmhtob.f
27696 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27697 int UNUSED written = 0;
27698 IADDR UNUSED pc = abuf->addr;
27699 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27703 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27704 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27705 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27708 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27709 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27710 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27712 if (ANDSI (FLD (f_FRj), SUBSI (2, 1))) {
27713 frvbf_media_register_not_aligned (current_cpu);
27717 UHI opval = GET_H_FR_HI (((FLD (f_FRj)) + (0)));
27718 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_3_set, ((FLD (f_FRk)) + (0)), opval);
27719 written |= (1 << 13);
27720 TRACE_RESULT (current_cpu, abuf, "fr_3", 'x', opval);
27723 UHI opval = GET_H_FR_LO (((FLD (f_FRj)) + (0)));
27724 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_2_set, ((FLD (f_FRk)) + (0)), opval);
27725 written |= (1 << 12);
27726 TRACE_RESULT (current_cpu, abuf, "fr_2", 'x', opval);
27729 UHI opval = GET_H_FR_HI (((FLD (f_FRj)) + (1)));
27730 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_1_set, ((FLD (f_FRk)) + (0)), opval);
27731 written |= (1 << 11);
27732 TRACE_RESULT (current_cpu, abuf, "fr_1", 'x', opval);
27735 UHI opval = GET_H_FR_LO (((FLD (f_FRj)) + (1)));
27736 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_0_set, ((FLD (f_FRk)) + (0)), opval);
27737 written |= (1 << 10);
27738 TRACE_RESULT (current_cpu, abuf, "fr_0", 'x', opval);
27744 abuf->written = written;
27749 /* cmhtob: cmhtob$pack $FRintjeven,$FRintk,$CCi,$cond */
27752 SEM_FN_NAME (frvbf,cmhtob) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27754 #define FLD(f) abuf->fields.sfmt_cmhtob.f
27755 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27756 int UNUSED written = 0;
27757 IADDR UNUSED pc = abuf->addr;
27758 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27762 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27763 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27764 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27767 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27768 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27769 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27771 if (ANDSI (FLD (f_FRj), SUBSI (2, 1))) {
27772 frvbf_media_register_not_aligned (current_cpu);
27774 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
27777 UHI opval = GET_H_FR_HI (((FLD (f_FRj)) + (0)));
27778 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_3_set, ((FLD (f_FRk)) + (0)), opval);
27779 written |= (1 << 15);
27780 TRACE_RESULT (current_cpu, abuf, "fr_3", 'x', opval);
27783 UHI opval = GET_H_FR_LO (((FLD (f_FRj)) + (0)));
27784 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_2_set, ((FLD (f_FRk)) + (0)), opval);
27785 written |= (1 << 14);
27786 TRACE_RESULT (current_cpu, abuf, "fr_2", 'x', opval);
27789 UHI opval = GET_H_FR_HI (((FLD (f_FRj)) + (1)));
27790 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_1_set, ((FLD (f_FRk)) + (0)), opval);
27791 written |= (1 << 13);
27792 TRACE_RESULT (current_cpu, abuf, "fr_1", 'x', opval);
27795 UHI opval = GET_H_FR_LO (((FLD (f_FRj)) + (1)));
27796 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_0_set, ((FLD (f_FRk)) + (0)), opval);
27797 written |= (1 << 12);
27798 TRACE_RESULT (current_cpu, abuf, "fr_0", 'x', opval);
27805 abuf->written = written;
27810 /* mbtohe: mbtohe$pack $FRintj,$FRintk */
27813 SEM_FN_NAME (frvbf,mbtohe) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27815 #define FLD(f) abuf->fields.sfmt_cmbtohe.f
27816 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27817 int UNUSED written = 0;
27818 IADDR UNUSED pc = abuf->addr;
27819 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27823 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27824 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27825 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27828 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27829 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27830 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27832 if (ANDSI (FLD (f_FRk), SUBSI (4, 1))) {
27833 frvbf_media_register_not_aligned (current_cpu);
27837 UHI opval = GET_H_FR_3 (((FLD (f_FRj)) + (0)));
27838 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27839 written |= (1 << 10);
27840 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27843 UHI opval = GET_H_FR_3 (((FLD (f_FRj)) + (0)));
27844 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27845 written |= (1 << 14);
27846 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27849 UHI opval = GET_H_FR_2 (((FLD (f_FRj)) + (0)));
27850 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
27851 written |= (1 << 11);
27852 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27855 UHI opval = GET_H_FR_2 (((FLD (f_FRj)) + (0)));
27856 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
27857 written |= (1 << 15);
27858 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27861 UHI opval = GET_H_FR_1 (((FLD (f_FRj)) + (0)));
27862 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (2)), opval);
27863 written |= (1 << 12);
27864 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27867 UHI opval = GET_H_FR_1 (((FLD (f_FRj)) + (0)));
27868 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (2)), opval);
27869 written |= (1 << 16);
27870 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27873 UHI opval = GET_H_FR_0 (((FLD (f_FRj)) + (0)));
27874 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (3)), opval);
27875 written |= (1 << 13);
27876 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27879 UHI opval = GET_H_FR_0 (((FLD (f_FRj)) + (0)));
27880 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (3)), opval);
27881 written |= (1 << 17);
27882 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27888 abuf->written = written;
27893 /* cmbtohe: cmbtohe$pack $FRintj,$FRintk,$CCi,$cond */
27896 SEM_FN_NAME (frvbf,cmbtohe) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27898 #define FLD(f) abuf->fields.sfmt_cmbtohe.f
27899 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27900 int UNUSED written = 0;
27901 IADDR UNUSED pc = abuf->addr;
27902 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27906 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27907 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27908 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27911 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27912 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27913 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27915 if (ANDSI (FLD (f_FRk), SUBSI (4, 1))) {
27916 frvbf_media_register_not_aligned (current_cpu);
27918 if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
27921 UHI opval = GET_H_FR_3 (((FLD (f_FRj)) + (0)));
27922 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27923 written |= (1 << 12);
27924 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27927 UHI opval = GET_H_FR_3 (((FLD (f_FRj)) + (0)));
27928 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27929 written |= (1 << 16);
27930 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27933 UHI opval = GET_H_FR_2 (((FLD (f_FRj)) + (0)));
27934 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
27935 written |= (1 << 13);
27936 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27939 UHI opval = GET_H_FR_2 (((FLD (f_FRj)) + (0)));
27940 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
27941 written |= (1 << 17);
27942 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27945 UHI opval = GET_H_FR_1 (((FLD (f_FRj)) + (0)));
27946 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (2)), opval);
27947 written |= (1 << 14);
27948 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27951 UHI opval = GET_H_FR_1 (((FLD (f_FRj)) + (0)));
27952 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (2)), opval);
27953 written |= (1 << 18);
27954 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27957 UHI opval = GET_H_FR_0 (((FLD (f_FRj)) + (0)));
27958 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (3)), opval);
27959 written |= (1 << 15);
27960 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27963 UHI opval = GET_H_FR_0 (((FLD (f_FRj)) + (0)));
27964 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (3)), opval);
27965 written |= (1 << 19);
27966 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27973 abuf->written = written;
27978 /* mnop: mnop$pack */
27981 SEM_FN_NAME (frvbf,mnop) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27983 #define FLD(f) abuf->fields.fmt_empty.f
27984 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27985 int UNUSED written = 0;
27986 IADDR UNUSED pc = abuf->addr;
27987 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27989 ((void) 0); /*nop*/
27995 /* mclracc-0: mclracc$pack $ACC40Sk,$A0 */
27998 SEM_FN_NAME (frvbf,mclracc_0) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
28000 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
28001 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
28002 int UNUSED written = 0;
28003 IADDR UNUSED pc = abuf->addr;
28004 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
28006 frvbf_clear_accumulators (current_cpu, FLD (f_ACC40Sk), 0);
28012 /* mclracc-1: mclracc$pack $ACC40Sk,$A1 */
28015 SEM_FN_NAME (frvbf,mclracc_1) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
28017 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
28018 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
28019 int UNUSED written = 0;
28020 IADDR UNUSED pc = abuf->addr;
28021 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
28023 frvbf_clear_accumulators (current_cpu, FLD (f_ACC40Sk), 1);
28029 /* mrdacc: mrdacc$pack $ACC40Si,$FRintk */
28032 SEM_FN_NAME (frvbf,mrdacc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
28034 #define FLD(f) abuf->fields.sfmt_mcuti.f
28035 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
28036 int UNUSED written = 0;
28037 IADDR UNUSED pc = abuf->addr;
28038 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
28041 SI opval = GET_H_ACC40S (FLD (f_ACC40Si));
28042 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
28043 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
28050 /* mrdaccg: mrdaccg$pack $ACCGi,$FRintk */
28053 SEM_FN_NAME (frvbf,mrdaccg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
28055 #define FLD(f) abuf->fields.sfmt_mrdaccg.f
28056 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
28057 int UNUSED written = 0;
28058 IADDR UNUSED pc = abuf->addr;
28059 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
28062 SI opval = GET_H_ACCG (FLD (f_ACCGi));
28063 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
28064 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
28071 /* mwtacc: mwtacc$pack $FRinti,$ACC40Sk */
28074 SEM_FN_NAME (frvbf,mwtacc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
28076 #define FLD(f) abuf->fields.sfmt_cmmachs.f
28077 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
28078 int UNUSED written = 0;
28079 IADDR UNUSED pc = abuf->addr;
28080 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
28083 DI opval = ORDI (ANDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MAKEDI (0xffffffff, 0)), GET_H_FR_INT (FLD (f_FRi)));
28084 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
28085 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
28092 /* mwtaccg: mwtaccg$pack $FRinti,$ACCGk */
28095 SEM_FN_NAME (frvbf,mwtaccg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
28097 #define FLD(f) abuf->fields.sfmt_mwtaccg.f
28098 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
28099 int UNUSED written = 0;
28100 IADDR UNUSED pc = abuf->addr;
28101 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
28104 frv_ref_SI (GET_H_ACCG (FLD (f_ACCGk)));
28106 USI opval = GET_H_FR_INT (FLD (f_FRi));
28107 sim_queue_fn_si_write (current_cpu, frvbf_h_accg_set, FLD (f_ACCGk), opval);
28108 TRACE_RESULT (current_cpu, abuf, "accg", 'x', opval);
28116 /* mcop1: mcop1$pack $FRi,$FRj,$FRk */
28119 SEM_FN_NAME (frvbf,mcop1) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
28121 #define FLD(f) abuf->fields.fmt_empty.f
28122 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
28123 int UNUSED written = 0;
28124 IADDR UNUSED pc = abuf->addr;
28125 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
28127 frvbf_media_cop (current_cpu, 1);
28133 /* mcop2: mcop2$pack $FRi,$FRj,$FRk */
28136 SEM_FN_NAME (frvbf,mcop2) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
28138 #define FLD(f) abuf->fields.fmt_empty.f
28139 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
28140 int UNUSED written = 0;
28141 IADDR UNUSED pc = abuf->addr;
28142 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
28144 frvbf_media_cop (current_cpu, 2);
28150 /* fnop: fnop$pack */
28153 SEM_FN_NAME (frvbf,fnop) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
28155 #define FLD(f) abuf->fields.fmt_empty.f
28156 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
28157 int UNUSED written = 0;
28158 IADDR UNUSED pc = abuf->addr;
28159 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
28161 ((void) 0); /*nop*/
28167 /* Table of all semantic fns. */
28169 static const struct sem_fn_desc sem_fns[] = {
28170 { FRVBF_INSN_X_INVALID, SEM_FN_NAME (frvbf,x_invalid) },
28171 { FRVBF_INSN_X_AFTER, SEM_FN_NAME (frvbf,x_after) },
28172 { FRVBF_INSN_X_BEFORE, SEM_FN_NAME (frvbf,x_before) },
28173 { FRVBF_INSN_X_CTI_CHAIN, SEM_FN_NAME (frvbf,x_cti_chain) },
28174 { FRVBF_INSN_X_CHAIN, SEM_FN_NAME (frvbf,x_chain) },
28175 { FRVBF_INSN_X_BEGIN, SEM_FN_NAME (frvbf,x_begin) },
28176 { FRVBF_INSN_ADD, SEM_FN_NAME (frvbf,add) },
28177 { FRVBF_INSN_SUB, SEM_FN_NAME (frvbf,sub) },
28178 { FRVBF_INSN_AND, SEM_FN_NAME (frvbf,and) },
28179 { FRVBF_INSN_OR, SEM_FN_NAME (frvbf,or) },
28180 { FRVBF_INSN_XOR, SEM_FN_NAME (frvbf,xor) },
28181 { FRVBF_INSN_NOT, SEM_FN_NAME (frvbf,not) },
28182 { FRVBF_INSN_SDIV, SEM_FN_NAME (frvbf,sdiv) },
28183 { FRVBF_INSN_NSDIV, SEM_FN_NAME (frvbf,nsdiv) },
28184 { FRVBF_INSN_UDIV, SEM_FN_NAME (frvbf,udiv) },
28185 { FRVBF_INSN_NUDIV, SEM_FN_NAME (frvbf,nudiv) },
28186 { FRVBF_INSN_SMUL, SEM_FN_NAME (frvbf,smul) },
28187 { FRVBF_INSN_UMUL, SEM_FN_NAME (frvbf,umul) },
28188 { FRVBF_INSN_SMU, SEM_FN_NAME (frvbf,smu) },
28189 { FRVBF_INSN_SMASS, SEM_FN_NAME (frvbf,smass) },
28190 { FRVBF_INSN_SMSSS, SEM_FN_NAME (frvbf,smsss) },
28191 { FRVBF_INSN_SLL, SEM_FN_NAME (frvbf,sll) },
28192 { FRVBF_INSN_SRL, SEM_FN_NAME (frvbf,srl) },
28193 { FRVBF_INSN_SRA, SEM_FN_NAME (frvbf,sra) },
28194 { FRVBF_INSN_SLASS, SEM_FN_NAME (frvbf,slass) },
28195 { FRVBF_INSN_SCUTSS, SEM_FN_NAME (frvbf,scutss) },
28196 { FRVBF_INSN_SCAN, SEM_FN_NAME (frvbf,scan) },
28197 { FRVBF_INSN_CADD, SEM_FN_NAME (frvbf,cadd) },
28198 { FRVBF_INSN_CSUB, SEM_FN_NAME (frvbf,csub) },
28199 { FRVBF_INSN_CAND, SEM_FN_NAME (frvbf,cand) },
28200 { FRVBF_INSN_COR, SEM_FN_NAME (frvbf,cor) },
28201 { FRVBF_INSN_CXOR, SEM_FN_NAME (frvbf,cxor) },
28202 { FRVBF_INSN_CNOT, SEM_FN_NAME (frvbf,cnot) },
28203 { FRVBF_INSN_CSMUL, SEM_FN_NAME (frvbf,csmul) },
28204 { FRVBF_INSN_CSDIV, SEM_FN_NAME (frvbf,csdiv) },
28205 { FRVBF_INSN_CUDIV, SEM_FN_NAME (frvbf,cudiv) },
28206 { FRVBF_INSN_CSLL, SEM_FN_NAME (frvbf,csll) },
28207 { FRVBF_INSN_CSRL, SEM_FN_NAME (frvbf,csrl) },
28208 { FRVBF_INSN_CSRA, SEM_FN_NAME (frvbf,csra) },
28209 { FRVBF_INSN_CSCAN, SEM_FN_NAME (frvbf,cscan) },
28210 { FRVBF_INSN_ADDCC, SEM_FN_NAME (frvbf,addcc) },
28211 { FRVBF_INSN_SUBCC, SEM_FN_NAME (frvbf,subcc) },
28212 { FRVBF_INSN_ANDCC, SEM_FN_NAME (frvbf,andcc) },
28213 { FRVBF_INSN_ORCC, SEM_FN_NAME (frvbf,orcc) },
28214 { FRVBF_INSN_XORCC, SEM_FN_NAME (frvbf,xorcc) },
28215 { FRVBF_INSN_SLLCC, SEM_FN_NAME (frvbf,sllcc) },
28216 { FRVBF_INSN_SRLCC, SEM_FN_NAME (frvbf,srlcc) },
28217 { FRVBF_INSN_SRACC, SEM_FN_NAME (frvbf,sracc) },
28218 { FRVBF_INSN_SMULCC, SEM_FN_NAME (frvbf,smulcc) },
28219 { FRVBF_INSN_UMULCC, SEM_FN_NAME (frvbf,umulcc) },
28220 { FRVBF_INSN_CADDCC, SEM_FN_NAME (frvbf,caddcc) },
28221 { FRVBF_INSN_CSUBCC, SEM_FN_NAME (frvbf,csubcc) },
28222 { FRVBF_INSN_CSMULCC, SEM_FN_NAME (frvbf,csmulcc) },
28223 { FRVBF_INSN_CANDCC, SEM_FN_NAME (frvbf,candcc) },
28224 { FRVBF_INSN_CORCC, SEM_FN_NAME (frvbf,corcc) },
28225 { FRVBF_INSN_CXORCC, SEM_FN_NAME (frvbf,cxorcc) },
28226 { FRVBF_INSN_CSLLCC, SEM_FN_NAME (frvbf,csllcc) },
28227 { FRVBF_INSN_CSRLCC, SEM_FN_NAME (frvbf,csrlcc) },
28228 { FRVBF_INSN_CSRACC, SEM_FN_NAME (frvbf,csracc) },
28229 { FRVBF_INSN_ADDX, SEM_FN_NAME (frvbf,addx) },
28230 { FRVBF_INSN_SUBX, SEM_FN_NAME (frvbf,subx) },
28231 { FRVBF_INSN_ADDXCC, SEM_FN_NAME (frvbf,addxcc) },
28232 { FRVBF_INSN_SUBXCC, SEM_FN_NAME (frvbf,subxcc) },
28233 { FRVBF_INSN_ADDSS, SEM_FN_NAME (frvbf,addss) },
28234 { FRVBF_INSN_SUBSS, SEM_FN_NAME (frvbf,subss) },
28235 { FRVBF_INSN_ADDI, SEM_FN_NAME (frvbf,addi) },
28236 { FRVBF_INSN_SUBI, SEM_FN_NAME (frvbf,subi) },
28237 { FRVBF_INSN_ANDI, SEM_FN_NAME (frvbf,andi) },
28238 { FRVBF_INSN_ORI, SEM_FN_NAME (frvbf,ori) },
28239 { FRVBF_INSN_XORI, SEM_FN_NAME (frvbf,xori) },
28240 { FRVBF_INSN_SDIVI, SEM_FN_NAME (frvbf,sdivi) },
28241 { FRVBF_INSN_NSDIVI, SEM_FN_NAME (frvbf,nsdivi) },
28242 { FRVBF_INSN_UDIVI, SEM_FN_NAME (frvbf,udivi) },
28243 { FRVBF_INSN_NUDIVI, SEM_FN_NAME (frvbf,nudivi) },
28244 { FRVBF_INSN_SMULI, SEM_FN_NAME (frvbf,smuli) },
28245 { FRVBF_INSN_UMULI, SEM_FN_NAME (frvbf,umuli) },
28246 { FRVBF_INSN_SLLI, SEM_FN_NAME (frvbf,slli) },
28247 { FRVBF_INSN_SRLI, SEM_FN_NAME (frvbf,srli) },
28248 { FRVBF_INSN_SRAI, SEM_FN_NAME (frvbf,srai) },
28249 { FRVBF_INSN_SCANI, SEM_FN_NAME (frvbf,scani) },
28250 { FRVBF_INSN_ADDICC, SEM_FN_NAME (frvbf,addicc) },
28251 { FRVBF_INSN_SUBICC, SEM_FN_NAME (frvbf,subicc) },
28252 { FRVBF_INSN_ANDICC, SEM_FN_NAME (frvbf,andicc) },
28253 { FRVBF_INSN_ORICC, SEM_FN_NAME (frvbf,oricc) },
28254 { FRVBF_INSN_XORICC, SEM_FN_NAME (frvbf,xoricc) },
28255 { FRVBF_INSN_SMULICC, SEM_FN_NAME (frvbf,smulicc) },
28256 { FRVBF_INSN_UMULICC, SEM_FN_NAME (frvbf,umulicc) },
28257 { FRVBF_INSN_SLLICC, SEM_FN_NAME (frvbf,sllicc) },
28258 { FRVBF_INSN_SRLICC, SEM_FN_NAME (frvbf,srlicc) },
28259 { FRVBF_INSN_SRAICC, SEM_FN_NAME (frvbf,sraicc) },
28260 { FRVBF_INSN_ADDXI, SEM_FN_NAME (frvbf,addxi) },
28261 { FRVBF_INSN_SUBXI, SEM_FN_NAME (frvbf,subxi) },
28262 { FRVBF_INSN_ADDXICC, SEM_FN_NAME (frvbf,addxicc) },
28263 { FRVBF_INSN_SUBXICC, SEM_FN_NAME (frvbf,subxicc) },
28264 { FRVBF_INSN_CMPB, SEM_FN_NAME (frvbf,cmpb) },
28265 { FRVBF_INSN_CMPBA, SEM_FN_NAME (frvbf,cmpba) },
28266 { FRVBF_INSN_SETLO, SEM_FN_NAME (frvbf,setlo) },
28267 { FRVBF_INSN_SETHI, SEM_FN_NAME (frvbf,sethi) },
28268 { FRVBF_INSN_SETLOS, SEM_FN_NAME (frvbf,setlos) },
28269 { FRVBF_INSN_LDSB, SEM_FN_NAME (frvbf,ldsb) },
28270 { FRVBF_INSN_LDUB, SEM_FN_NAME (frvbf,ldub) },
28271 { FRVBF_INSN_LDSH, SEM_FN_NAME (frvbf,ldsh) },
28272 { FRVBF_INSN_LDUH, SEM_FN_NAME (frvbf,lduh) },
28273 { FRVBF_INSN_LD, SEM_FN_NAME (frvbf,ld) },
28274 { FRVBF_INSN_LDBF, SEM_FN_NAME (frvbf,ldbf) },
28275 { FRVBF_INSN_LDHF, SEM_FN_NAME (frvbf,ldhf) },
28276 { FRVBF_INSN_LDF, SEM_FN_NAME (frvbf,ldf) },
28277 { FRVBF_INSN_LDC, SEM_FN_NAME (frvbf,ldc) },
28278 { FRVBF_INSN_NLDSB, SEM_FN_NAME (frvbf,nldsb) },
28279 { FRVBF_INSN_NLDUB, SEM_FN_NAME (frvbf,nldub) },
28280 { FRVBF_INSN_NLDSH, SEM_FN_NAME (frvbf,nldsh) },
28281 { FRVBF_INSN_NLDUH, SEM_FN_NAME (frvbf,nlduh) },
28282 { FRVBF_INSN_NLD, SEM_FN_NAME (frvbf,nld) },
28283 { FRVBF_INSN_NLDBF, SEM_FN_NAME (frvbf,nldbf) },
28284 { FRVBF_INSN_NLDHF, SEM_FN_NAME (frvbf,nldhf) },
28285 { FRVBF_INSN_NLDF, SEM_FN_NAME (frvbf,nldf) },
28286 { FRVBF_INSN_LDD, SEM_FN_NAME (frvbf,ldd) },
28287 { FRVBF_INSN_LDDF, SEM_FN_NAME (frvbf,lddf) },
28288 { FRVBF_INSN_LDDC, SEM_FN_NAME (frvbf,lddc) },
28289 { FRVBF_INSN_NLDD, SEM_FN_NAME (frvbf,nldd) },
28290 { FRVBF_INSN_NLDDF, SEM_FN_NAME (frvbf,nlddf) },
28291 { FRVBF_INSN_LDQ, SEM_FN_NAME (frvbf,ldq) },
28292 { FRVBF_INSN_LDQF, SEM_FN_NAME (frvbf,ldqf) },
28293 { FRVBF_INSN_LDQC, SEM_FN_NAME (frvbf,ldqc) },
28294 { FRVBF_INSN_NLDQ, SEM_FN_NAME (frvbf,nldq) },
28295 { FRVBF_INSN_NLDQF, SEM_FN_NAME (frvbf,nldqf) },
28296 { FRVBF_INSN_LDSBU, SEM_FN_NAME (frvbf,ldsbu) },
28297 { FRVBF_INSN_LDUBU, SEM_FN_NAME (frvbf,ldubu) },
28298 { FRVBF_INSN_LDSHU, SEM_FN_NAME (frvbf,ldshu) },
28299 { FRVBF_INSN_LDUHU, SEM_FN_NAME (frvbf,lduhu) },
28300 { FRVBF_INSN_LDU, SEM_FN_NAME (frvbf,ldu) },
28301 { FRVBF_INSN_NLDSBU, SEM_FN_NAME (frvbf,nldsbu) },
28302 { FRVBF_INSN_NLDUBU, SEM_FN_NAME (frvbf,nldubu) },
28303 { FRVBF_INSN_NLDSHU, SEM_FN_NAME (frvbf,nldshu) },
28304 { FRVBF_INSN_NLDUHU, SEM_FN_NAME (frvbf,nlduhu) },
28305 { FRVBF_INSN_NLDU, SEM_FN_NAME (frvbf,nldu) },
28306 { FRVBF_INSN_LDBFU, SEM_FN_NAME (frvbf,ldbfu) },
28307 { FRVBF_INSN_LDHFU, SEM_FN_NAME (frvbf,ldhfu) },
28308 { FRVBF_INSN_LDFU, SEM_FN_NAME (frvbf,ldfu) },
28309 { FRVBF_INSN_LDCU, SEM_FN_NAME (frvbf,ldcu) },
28310 { FRVBF_INSN_NLDBFU, SEM_FN_NAME (frvbf,nldbfu) },
28311 { FRVBF_INSN_NLDHFU, SEM_FN_NAME (frvbf,nldhfu) },
28312 { FRVBF_INSN_NLDFU, SEM_FN_NAME (frvbf,nldfu) },
28313 { FRVBF_INSN_LDDU, SEM_FN_NAME (frvbf,lddu) },
28314 { FRVBF_INSN_NLDDU, SEM_FN_NAME (frvbf,nlddu) },
28315 { FRVBF_INSN_LDDFU, SEM_FN_NAME (frvbf,lddfu) },
28316 { FRVBF_INSN_LDDCU, SEM_FN_NAME (frvbf,lddcu) },
28317 { FRVBF_INSN_NLDDFU, SEM_FN_NAME (frvbf,nlddfu) },
28318 { FRVBF_INSN_LDQU, SEM_FN_NAME (frvbf,ldqu) },
28319 { FRVBF_INSN_NLDQU, SEM_FN_NAME (frvbf,nldqu) },
28320 { FRVBF_INSN_LDQFU, SEM_FN_NAME (frvbf,ldqfu) },
28321 { FRVBF_INSN_LDQCU, SEM_FN_NAME (frvbf,ldqcu) },
28322 { FRVBF_INSN_NLDQFU, SEM_FN_NAME (frvbf,nldqfu) },
28323 { FRVBF_INSN_LDSBI, SEM_FN_NAME (frvbf,ldsbi) },
28324 { FRVBF_INSN_LDSHI, SEM_FN_NAME (frvbf,ldshi) },
28325 { FRVBF_INSN_LDI, SEM_FN_NAME (frvbf,ldi) },
28326 { FRVBF_INSN_LDUBI, SEM_FN_NAME (frvbf,ldubi) },
28327 { FRVBF_INSN_LDUHI, SEM_FN_NAME (frvbf,lduhi) },
28328 { FRVBF_INSN_LDBFI, SEM_FN_NAME (frvbf,ldbfi) },
28329 { FRVBF_INSN_LDHFI, SEM_FN_NAME (frvbf,ldhfi) },
28330 { FRVBF_INSN_LDFI, SEM_FN_NAME (frvbf,ldfi) },
28331 { FRVBF_INSN_NLDSBI, SEM_FN_NAME (frvbf,nldsbi) },
28332 { FRVBF_INSN_NLDUBI, SEM_FN_NAME (frvbf,nldubi) },
28333 { FRVBF_INSN_NLDSHI, SEM_FN_NAME (frvbf,nldshi) },
28334 { FRVBF_INSN_NLDUHI, SEM_FN_NAME (frvbf,nlduhi) },
28335 { FRVBF_INSN_NLDI, SEM_FN_NAME (frvbf,nldi) },
28336 { FRVBF_INSN_NLDBFI, SEM_FN_NAME (frvbf,nldbfi) },
28337 { FRVBF_INSN_NLDHFI, SEM_FN_NAME (frvbf,nldhfi) },
28338 { FRVBF_INSN_NLDFI, SEM_FN_NAME (frvbf,nldfi) },
28339 { FRVBF_INSN_LDDI, SEM_FN_NAME (frvbf,lddi) },
28340 { FRVBF_INSN_LDDFI, SEM_FN_NAME (frvbf,lddfi) },
28341 { FRVBF_INSN_NLDDI, SEM_FN_NAME (frvbf,nlddi) },
28342 { FRVBF_INSN_NLDDFI, SEM_FN_NAME (frvbf,nlddfi) },
28343 { FRVBF_INSN_LDQI, SEM_FN_NAME (frvbf,ldqi) },
28344 { FRVBF_INSN_LDQFI, SEM_FN_NAME (frvbf,ldqfi) },
28345 { FRVBF_INSN_NLDQFI, SEM_FN_NAME (frvbf,nldqfi) },
28346 { FRVBF_INSN_STB, SEM_FN_NAME (frvbf,stb) },
28347 { FRVBF_INSN_STH, SEM_FN_NAME (frvbf,sth) },
28348 { FRVBF_INSN_ST, SEM_FN_NAME (frvbf,st) },
28349 { FRVBF_INSN_STBF, SEM_FN_NAME (frvbf,stbf) },
28350 { FRVBF_INSN_STHF, SEM_FN_NAME (frvbf,sthf) },
28351 { FRVBF_INSN_STF, SEM_FN_NAME (frvbf,stf) },
28352 { FRVBF_INSN_STC, SEM_FN_NAME (frvbf,stc) },
28353 { FRVBF_INSN_STD, SEM_FN_NAME (frvbf,std) },
28354 { FRVBF_INSN_STDF, SEM_FN_NAME (frvbf,stdf) },
28355 { FRVBF_INSN_STDC, SEM_FN_NAME (frvbf,stdc) },
28356 { FRVBF_INSN_STQ, SEM_FN_NAME (frvbf,stq) },
28357 { FRVBF_INSN_STQF, SEM_FN_NAME (frvbf,stqf) },
28358 { FRVBF_INSN_STQC, SEM_FN_NAME (frvbf,stqc) },
28359 { FRVBF_INSN_STBU, SEM_FN_NAME (frvbf,stbu) },
28360 { FRVBF_INSN_STHU, SEM_FN_NAME (frvbf,sthu) },
28361 { FRVBF_INSN_STU, SEM_FN_NAME (frvbf,stu) },
28362 { FRVBF_INSN_STBFU, SEM_FN_NAME (frvbf,stbfu) },
28363 { FRVBF_INSN_STHFU, SEM_FN_NAME (frvbf,sthfu) },
28364 { FRVBF_INSN_STFU, SEM_FN_NAME (frvbf,stfu) },
28365 { FRVBF_INSN_STCU, SEM_FN_NAME (frvbf,stcu) },
28366 { FRVBF_INSN_STDU, SEM_FN_NAME (frvbf,stdu) },
28367 { FRVBF_INSN_STDFU, SEM_FN_NAME (frvbf,stdfu) },
28368 { FRVBF_INSN_STDCU, SEM_FN_NAME (frvbf,stdcu) },
28369 { FRVBF_INSN_STQU, SEM_FN_NAME (frvbf,stqu) },
28370 { FRVBF_INSN_STQFU, SEM_FN_NAME (frvbf,stqfu) },
28371 { FRVBF_INSN_STQCU, SEM_FN_NAME (frvbf,stqcu) },
28372 { FRVBF_INSN_CLDSB, SEM_FN_NAME (frvbf,cldsb) },
28373 { FRVBF_INSN_CLDUB, SEM_FN_NAME (frvbf,cldub) },
28374 { FRVBF_INSN_CLDSH, SEM_FN_NAME (frvbf,cldsh) },
28375 { FRVBF_INSN_CLDUH, SEM_FN_NAME (frvbf,clduh) },
28376 { FRVBF_INSN_CLD, SEM_FN_NAME (frvbf,cld) },
28377 { FRVBF_INSN_CLDBF, SEM_FN_NAME (frvbf,cldbf) },
28378 { FRVBF_INSN_CLDHF, SEM_FN_NAME (frvbf,cldhf) },
28379 { FRVBF_INSN_CLDF, SEM_FN_NAME (frvbf,cldf) },
28380 { FRVBF_INSN_CLDD, SEM_FN_NAME (frvbf,cldd) },
28381 { FRVBF_INSN_CLDDF, SEM_FN_NAME (frvbf,clddf) },
28382 { FRVBF_INSN_CLDQ, SEM_FN_NAME (frvbf,cldq) },
28383 { FRVBF_INSN_CLDSBU, SEM_FN_NAME (frvbf,cldsbu) },
28384 { FRVBF_INSN_CLDUBU, SEM_FN_NAME (frvbf,cldubu) },
28385 { FRVBF_INSN_CLDSHU, SEM_FN_NAME (frvbf,cldshu) },
28386 { FRVBF_INSN_CLDUHU, SEM_FN_NAME (frvbf,clduhu) },
28387 { FRVBF_INSN_CLDU, SEM_FN_NAME (frvbf,cldu) },
28388 { FRVBF_INSN_CLDBFU, SEM_FN_NAME (frvbf,cldbfu) },
28389 { FRVBF_INSN_CLDHFU, SEM_FN_NAME (frvbf,cldhfu) },
28390 { FRVBF_INSN_CLDFU, SEM_FN_NAME (frvbf,cldfu) },
28391 { FRVBF_INSN_CLDDU, SEM_FN_NAME (frvbf,clddu) },
28392 { FRVBF_INSN_CLDDFU, SEM_FN_NAME (frvbf,clddfu) },
28393 { FRVBF_INSN_CLDQU, SEM_FN_NAME (frvbf,cldqu) },
28394 { FRVBF_INSN_CSTB, SEM_FN_NAME (frvbf,cstb) },
28395 { FRVBF_INSN_CSTH, SEM_FN_NAME (frvbf,csth) },
28396 { FRVBF_INSN_CST, SEM_FN_NAME (frvbf,cst) },
28397 { FRVBF_INSN_CSTBF, SEM_FN_NAME (frvbf,cstbf) },
28398 { FRVBF_INSN_CSTHF, SEM_FN_NAME (frvbf,csthf) },
28399 { FRVBF_INSN_CSTF, SEM_FN_NAME (frvbf,cstf) },
28400 { FRVBF_INSN_CSTD, SEM_FN_NAME (frvbf,cstd) },
28401 { FRVBF_INSN_CSTDF, SEM_FN_NAME (frvbf,cstdf) },
28402 { FRVBF_INSN_CSTQ, SEM_FN_NAME (frvbf,cstq) },
28403 { FRVBF_INSN_CSTBU, SEM_FN_NAME (frvbf,cstbu) },
28404 { FRVBF_INSN_CSTHU, SEM_FN_NAME (frvbf,csthu) },
28405 { FRVBF_INSN_CSTU, SEM_FN_NAME (frvbf,cstu) },
28406 { FRVBF_INSN_CSTBFU, SEM_FN_NAME (frvbf,cstbfu) },
28407 { FRVBF_INSN_CSTHFU, SEM_FN_NAME (frvbf,csthfu) },
28408 { FRVBF_INSN_CSTFU, SEM_FN_NAME (frvbf,cstfu) },
28409 { FRVBF_INSN_CSTDU, SEM_FN_NAME (frvbf,cstdu) },
28410 { FRVBF_INSN_CSTDFU, SEM_FN_NAME (frvbf,cstdfu) },
28411 { FRVBF_INSN_STBI, SEM_FN_NAME (frvbf,stbi) },
28412 { FRVBF_INSN_STHI, SEM_FN_NAME (frvbf,sthi) },
28413 { FRVBF_INSN_STI, SEM_FN_NAME (frvbf,sti) },
28414 { FRVBF_INSN_STBFI, SEM_FN_NAME (frvbf,stbfi) },
28415 { FRVBF_INSN_STHFI, SEM_FN_NAME (frvbf,sthfi) },
28416 { FRVBF_INSN_STFI, SEM_FN_NAME (frvbf,stfi) },
28417 { FRVBF_INSN_STDI, SEM_FN_NAME (frvbf,stdi) },
28418 { FRVBF_INSN_STDFI, SEM_FN_NAME (frvbf,stdfi) },
28419 { FRVBF_INSN_STQI, SEM_FN_NAME (frvbf,stqi) },
28420 { FRVBF_INSN_STQFI, SEM_FN_NAME (frvbf,stqfi) },
28421 { FRVBF_INSN_SWAP, SEM_FN_NAME (frvbf,swap) },
28422 { FRVBF_INSN_SWAPI, SEM_FN_NAME (frvbf,swapi) },
28423 { FRVBF_INSN_CSWAP, SEM_FN_NAME (frvbf,cswap) },
28424 { FRVBF_INSN_MOVGF, SEM_FN_NAME (frvbf,movgf) },
28425 { FRVBF_INSN_MOVFG, SEM_FN_NAME (frvbf,movfg) },
28426 { FRVBF_INSN_MOVGFD, SEM_FN_NAME (frvbf,movgfd) },
28427 { FRVBF_INSN_MOVFGD, SEM_FN_NAME (frvbf,movfgd) },
28428 { FRVBF_INSN_MOVGFQ, SEM_FN_NAME (frvbf,movgfq) },
28429 { FRVBF_INSN_MOVFGQ, SEM_FN_NAME (frvbf,movfgq) },
28430 { FRVBF_INSN_CMOVGF, SEM_FN_NAME (frvbf,cmovgf) },
28431 { FRVBF_INSN_CMOVFG, SEM_FN_NAME (frvbf,cmovfg) },
28432 { FRVBF_INSN_CMOVGFD, SEM_FN_NAME (frvbf,cmovgfd) },
28433 { FRVBF_INSN_CMOVFGD, SEM_FN_NAME (frvbf,cmovfgd) },
28434 { FRVBF_INSN_MOVGS, SEM_FN_NAME (frvbf,movgs) },
28435 { FRVBF_INSN_MOVSG, SEM_FN_NAME (frvbf,movsg) },
28436 { FRVBF_INSN_BRA, SEM_FN_NAME (frvbf,bra) },
28437 { FRVBF_INSN_BNO, SEM_FN_NAME (frvbf,bno) },
28438 { FRVBF_INSN_BEQ, SEM_FN_NAME (frvbf,beq) },
28439 { FRVBF_INSN_BNE, SEM_FN_NAME (frvbf,bne) },
28440 { FRVBF_INSN_BLE, SEM_FN_NAME (frvbf,ble) },
28441 { FRVBF_INSN_BGT, SEM_FN_NAME (frvbf,bgt) },
28442 { FRVBF_INSN_BLT, SEM_FN_NAME (frvbf,blt) },
28443 { FRVBF_INSN_BGE, SEM_FN_NAME (frvbf,bge) },
28444 { FRVBF_INSN_BLS, SEM_FN_NAME (frvbf,bls) },
28445 { FRVBF_INSN_BHI, SEM_FN_NAME (frvbf,bhi) },
28446 { FRVBF_INSN_BC, SEM_FN_NAME (frvbf,bc) },
28447 { FRVBF_INSN_BNC, SEM_FN_NAME (frvbf,bnc) },
28448 { FRVBF_INSN_BN, SEM_FN_NAME (frvbf,bn) },
28449 { FRVBF_INSN_BP, SEM_FN_NAME (frvbf,bp) },
28450 { FRVBF_INSN_BV, SEM_FN_NAME (frvbf,bv) },
28451 { FRVBF_INSN_BNV, SEM_FN_NAME (frvbf,bnv) },
28452 { FRVBF_INSN_FBRA, SEM_FN_NAME (frvbf,fbra) },
28453 { FRVBF_INSN_FBNO, SEM_FN_NAME (frvbf,fbno) },
28454 { FRVBF_INSN_FBNE, SEM_FN_NAME (frvbf,fbne) },
28455 { FRVBF_INSN_FBEQ, SEM_FN_NAME (frvbf,fbeq) },
28456 { FRVBF_INSN_FBLG, SEM_FN_NAME (frvbf,fblg) },
28457 { FRVBF_INSN_FBUE, SEM_FN_NAME (frvbf,fbue) },
28458 { FRVBF_INSN_FBUL, SEM_FN_NAME (frvbf,fbul) },
28459 { FRVBF_INSN_FBGE, SEM_FN_NAME (frvbf,fbge) },
28460 { FRVBF_INSN_FBLT, SEM_FN_NAME (frvbf,fblt) },
28461 { FRVBF_INSN_FBUGE, SEM_FN_NAME (frvbf,fbuge) },
28462 { FRVBF_INSN_FBUG, SEM_FN_NAME (frvbf,fbug) },
28463 { FRVBF_INSN_FBLE, SEM_FN_NAME (frvbf,fble) },
28464 { FRVBF_INSN_FBGT, SEM_FN_NAME (frvbf,fbgt) },
28465 { FRVBF_INSN_FBULE, SEM_FN_NAME (frvbf,fbule) },
28466 { FRVBF_INSN_FBU, SEM_FN_NAME (frvbf,fbu) },
28467 { FRVBF_INSN_FBO, SEM_FN_NAME (frvbf,fbo) },
28468 { FRVBF_INSN_BCTRLR, SEM_FN_NAME (frvbf,bctrlr) },
28469 { FRVBF_INSN_BRALR, SEM_FN_NAME (frvbf,bralr) },
28470 { FRVBF_INSN_BNOLR, SEM_FN_NAME (frvbf,bnolr) },
28471 { FRVBF_INSN_BEQLR, SEM_FN_NAME (frvbf,beqlr) },
28472 { FRVBF_INSN_BNELR, SEM_FN_NAME (frvbf,bnelr) },
28473 { FRVBF_INSN_BLELR, SEM_FN_NAME (frvbf,blelr) },
28474 { FRVBF_INSN_BGTLR, SEM_FN_NAME (frvbf,bgtlr) },
28475 { FRVBF_INSN_BLTLR, SEM_FN_NAME (frvbf,bltlr) },
28476 { FRVBF_INSN_BGELR, SEM_FN_NAME (frvbf,bgelr) },
28477 { FRVBF_INSN_BLSLR, SEM_FN_NAME (frvbf,blslr) },
28478 { FRVBF_INSN_BHILR, SEM_FN_NAME (frvbf,bhilr) },
28479 { FRVBF_INSN_BCLR, SEM_FN_NAME (frvbf,bclr) },
28480 { FRVBF_INSN_BNCLR, SEM_FN_NAME (frvbf,bnclr) },
28481 { FRVBF_INSN_BNLR, SEM_FN_NAME (frvbf,bnlr) },
28482 { FRVBF_INSN_BPLR, SEM_FN_NAME (frvbf,bplr) },
28483 { FRVBF_INSN_BVLR, SEM_FN_NAME (frvbf,bvlr) },
28484 { FRVBF_INSN_BNVLR, SEM_FN_NAME (frvbf,bnvlr) },
28485 { FRVBF_INSN_FBRALR, SEM_FN_NAME (frvbf,fbralr) },
28486 { FRVBF_INSN_FBNOLR, SEM_FN_NAME (frvbf,fbnolr) },
28487 { FRVBF_INSN_FBEQLR, SEM_FN_NAME (frvbf,fbeqlr) },
28488 { FRVBF_INSN_FBNELR, SEM_FN_NAME (frvbf,fbnelr) },
28489 { FRVBF_INSN_FBLGLR, SEM_FN_NAME (frvbf,fblglr) },
28490 { FRVBF_INSN_FBUELR, SEM_FN_NAME (frvbf,fbuelr) },
28491 { FRVBF_INSN_FBULLR, SEM_FN_NAME (frvbf,fbullr) },
28492 { FRVBF_INSN_FBGELR, SEM_FN_NAME (frvbf,fbgelr) },
28493 { FRVBF_INSN_FBLTLR, SEM_FN_NAME (frvbf,fbltlr) },
28494 { FRVBF_INSN_FBUGELR, SEM_FN_NAME (frvbf,fbugelr) },
28495 { FRVBF_INSN_FBUGLR, SEM_FN_NAME (frvbf,fbuglr) },
28496 { FRVBF_INSN_FBLELR, SEM_FN_NAME (frvbf,fblelr) },
28497 { FRVBF_INSN_FBGTLR, SEM_FN_NAME (frvbf,fbgtlr) },
28498 { FRVBF_INSN_FBULELR, SEM_FN_NAME (frvbf,fbulelr) },
28499 { FRVBF_INSN_FBULR, SEM_FN_NAME (frvbf,fbulr) },
28500 { FRVBF_INSN_FBOLR, SEM_FN_NAME (frvbf,fbolr) },
28501 { FRVBF_INSN_BCRALR, SEM_FN_NAME (frvbf,bcralr) },
28502 { FRVBF_INSN_BCNOLR, SEM_FN_NAME (frvbf,bcnolr) },
28503 { FRVBF_INSN_BCEQLR, SEM_FN_NAME (frvbf,bceqlr) },
28504 { FRVBF_INSN_BCNELR, SEM_FN_NAME (frvbf,bcnelr) },
28505 { FRVBF_INSN_BCLELR, SEM_FN_NAME (frvbf,bclelr) },
28506 { FRVBF_INSN_BCGTLR, SEM_FN_NAME (frvbf,bcgtlr) },
28507 { FRVBF_INSN_BCLTLR, SEM_FN_NAME (frvbf,bcltlr) },
28508 { FRVBF_INSN_BCGELR, SEM_FN_NAME (frvbf,bcgelr) },
28509 { FRVBF_INSN_BCLSLR, SEM_FN_NAME (frvbf,bclslr) },
28510 { FRVBF_INSN_BCHILR, SEM_FN_NAME (frvbf,bchilr) },
28511 { FRVBF_INSN_BCCLR, SEM_FN_NAME (frvbf,bcclr) },
28512 { FRVBF_INSN_BCNCLR, SEM_FN_NAME (frvbf,bcnclr) },
28513 { FRVBF_INSN_BCNLR, SEM_FN_NAME (frvbf,bcnlr) },
28514 { FRVBF_INSN_BCPLR, SEM_FN_NAME (frvbf,bcplr) },
28515 { FRVBF_INSN_BCVLR, SEM_FN_NAME (frvbf,bcvlr) },
28516 { FRVBF_INSN_BCNVLR, SEM_FN_NAME (frvbf,bcnvlr) },
28517 { FRVBF_INSN_FCBRALR, SEM_FN_NAME (frvbf,fcbralr) },
28518 { FRVBF_INSN_FCBNOLR, SEM_FN_NAME (frvbf,fcbnolr) },
28519 { FRVBF_INSN_FCBEQLR, SEM_FN_NAME (frvbf,fcbeqlr) },
28520 { FRVBF_INSN_FCBNELR, SEM_FN_NAME (frvbf,fcbnelr) },
28521 { FRVBF_INSN_FCBLGLR, SEM_FN_NAME (frvbf,fcblglr) },
28522 { FRVBF_INSN_FCBUELR, SEM_FN_NAME (frvbf,fcbuelr) },
28523 { FRVBF_INSN_FCBULLR, SEM_FN_NAME (frvbf,fcbullr) },
28524 { FRVBF_INSN_FCBGELR, SEM_FN_NAME (frvbf,fcbgelr) },
28525 { FRVBF_INSN_FCBLTLR, SEM_FN_NAME (frvbf,fcbltlr) },
28526 { FRVBF_INSN_FCBUGELR, SEM_FN_NAME (frvbf,fcbugelr) },
28527 { FRVBF_INSN_FCBUGLR, SEM_FN_NAME (frvbf,fcbuglr) },
28528 { FRVBF_INSN_FCBLELR, SEM_FN_NAME (frvbf,fcblelr) },
28529 { FRVBF_INSN_FCBGTLR, SEM_FN_NAME (frvbf,fcbgtlr) },
28530 { FRVBF_INSN_FCBULELR, SEM_FN_NAME (frvbf,fcbulelr) },
28531 { FRVBF_INSN_FCBULR, SEM_FN_NAME (frvbf,fcbulr) },
28532 { FRVBF_INSN_FCBOLR, SEM_FN_NAME (frvbf,fcbolr) },
28533 { FRVBF_INSN_JMPL, SEM_FN_NAME (frvbf,jmpl) },
28534 { FRVBF_INSN_CALLL, SEM_FN_NAME (frvbf,calll) },
28535 { FRVBF_INSN_JMPIL, SEM_FN_NAME (frvbf,jmpil) },
28536 { FRVBF_INSN_CALLIL, SEM_FN_NAME (frvbf,callil) },
28537 { FRVBF_INSN_CALL, SEM_FN_NAME (frvbf,call) },
28538 { FRVBF_INSN_RETT, SEM_FN_NAME (frvbf,rett) },
28539 { FRVBF_INSN_REI, SEM_FN_NAME (frvbf,rei) },
28540 { FRVBF_INSN_TRA, SEM_FN_NAME (frvbf,tra) },
28541 { FRVBF_INSN_TNO, SEM_FN_NAME (frvbf,tno) },
28542 { FRVBF_INSN_TEQ, SEM_FN_NAME (frvbf,teq) },
28543 { FRVBF_INSN_TNE, SEM_FN_NAME (frvbf,tne) },
28544 { FRVBF_INSN_TLE, SEM_FN_NAME (frvbf,tle) },
28545 { FRVBF_INSN_TGT, SEM_FN_NAME (frvbf,tgt) },
28546 { FRVBF_INSN_TLT, SEM_FN_NAME (frvbf,tlt) },
28547 { FRVBF_INSN_TGE, SEM_FN_NAME (frvbf,tge) },
28548 { FRVBF_INSN_TLS, SEM_FN_NAME (frvbf,tls) },
28549 { FRVBF_INSN_THI, SEM_FN_NAME (frvbf,thi) },
28550 { FRVBF_INSN_TC, SEM_FN_NAME (frvbf,tc) },
28551 { FRVBF_INSN_TNC, SEM_FN_NAME (frvbf,tnc) },
28552 { FRVBF_INSN_TN, SEM_FN_NAME (frvbf,tn) },
28553 { FRVBF_INSN_TP, SEM_FN_NAME (frvbf,tp) },
28554 { FRVBF_INSN_TV, SEM_FN_NAME (frvbf,tv) },
28555 { FRVBF_INSN_TNV, SEM_FN_NAME (frvbf,tnv) },
28556 { FRVBF_INSN_FTRA, SEM_FN_NAME (frvbf,ftra) },
28557 { FRVBF_INSN_FTNO, SEM_FN_NAME (frvbf,ftno) },
28558 { FRVBF_INSN_FTNE, SEM_FN_NAME (frvbf,ftne) },
28559 { FRVBF_INSN_FTEQ, SEM_FN_NAME (frvbf,fteq) },
28560 { FRVBF_INSN_FTLG, SEM_FN_NAME (frvbf,ftlg) },
28561 { FRVBF_INSN_FTUE, SEM_FN_NAME (frvbf,ftue) },
28562 { FRVBF_INSN_FTUL, SEM_FN_NAME (frvbf,ftul) },
28563 { FRVBF_INSN_FTGE, SEM_FN_NAME (frvbf,ftge) },
28564 { FRVBF_INSN_FTLT, SEM_FN_NAME (frvbf,ftlt) },
28565 { FRVBF_INSN_FTUGE, SEM_FN_NAME (frvbf,ftuge) },
28566 { FRVBF_INSN_FTUG, SEM_FN_NAME (frvbf,ftug) },
28567 { FRVBF_INSN_FTLE, SEM_FN_NAME (frvbf,ftle) },
28568 { FRVBF_INSN_FTGT, SEM_FN_NAME (frvbf,ftgt) },
28569 { FRVBF_INSN_FTULE, SEM_FN_NAME (frvbf,ftule) },
28570 { FRVBF_INSN_FTU, SEM_FN_NAME (frvbf,ftu) },
28571 { FRVBF_INSN_FTO, SEM_FN_NAME (frvbf,fto) },
28572 { FRVBF_INSN_TIRA, SEM_FN_NAME (frvbf,tira) },
28573 { FRVBF_INSN_TINO, SEM_FN_NAME (frvbf,tino) },
28574 { FRVBF_INSN_TIEQ, SEM_FN_NAME (frvbf,tieq) },
28575 { FRVBF_INSN_TINE, SEM_FN_NAME (frvbf,tine) },
28576 { FRVBF_INSN_TILE, SEM_FN_NAME (frvbf,tile) },
28577 { FRVBF_INSN_TIGT, SEM_FN_NAME (frvbf,tigt) },
28578 { FRVBF_INSN_TILT, SEM_FN_NAME (frvbf,tilt) },
28579 { FRVBF_INSN_TIGE, SEM_FN_NAME (frvbf,tige) },
28580 { FRVBF_INSN_TILS, SEM_FN_NAME (frvbf,tils) },
28581 { FRVBF_INSN_TIHI, SEM_FN_NAME (frvbf,tihi) },
28582 { FRVBF_INSN_TIC, SEM_FN_NAME (frvbf,tic) },
28583 { FRVBF_INSN_TINC, SEM_FN_NAME (frvbf,tinc) },
28584 { FRVBF_INSN_TIN, SEM_FN_NAME (frvbf,tin) },
28585 { FRVBF_INSN_TIP, SEM_FN_NAME (frvbf,tip) },
28586 { FRVBF_INSN_TIV, SEM_FN_NAME (frvbf,tiv) },
28587 { FRVBF_INSN_TINV, SEM_FN_NAME (frvbf,tinv) },
28588 { FRVBF_INSN_FTIRA, SEM_FN_NAME (frvbf,ftira) },
28589 { FRVBF_INSN_FTINO, SEM_FN_NAME (frvbf,ftino) },
28590 { FRVBF_INSN_FTINE, SEM_FN_NAME (frvbf,ftine) },
28591 { FRVBF_INSN_FTIEQ, SEM_FN_NAME (frvbf,ftieq) },
28592 { FRVBF_INSN_FTILG, SEM_FN_NAME (frvbf,ftilg) },
28593 { FRVBF_INSN_FTIUE, SEM_FN_NAME (frvbf,ftiue) },
28594 { FRVBF_INSN_FTIUL, SEM_FN_NAME (frvbf,ftiul) },
28595 { FRVBF_INSN_FTIGE, SEM_FN_NAME (frvbf,ftige) },
28596 { FRVBF_INSN_FTILT, SEM_FN_NAME (frvbf,ftilt) },
28597 { FRVBF_INSN_FTIUGE, SEM_FN_NAME (frvbf,ftiuge) },
28598 { FRVBF_INSN_FTIUG, SEM_FN_NAME (frvbf,ftiug) },
28599 { FRVBF_INSN_FTILE, SEM_FN_NAME (frvbf,ftile) },
28600 { FRVBF_INSN_FTIGT, SEM_FN_NAME (frvbf,ftigt) },
28601 { FRVBF_INSN_FTIULE, SEM_FN_NAME (frvbf,ftiule) },
28602 { FRVBF_INSN_FTIU, SEM_FN_NAME (frvbf,ftiu) },
28603 { FRVBF_INSN_FTIO, SEM_FN_NAME (frvbf,ftio) },
28604 { FRVBF_INSN_BREAK, SEM_FN_NAME (frvbf,break) },
28605 { FRVBF_INSN_MTRAP, SEM_FN_NAME (frvbf,mtrap) },
28606 { FRVBF_INSN_ANDCR, SEM_FN_NAME (frvbf,andcr) },
28607 { FRVBF_INSN_ORCR, SEM_FN_NAME (frvbf,orcr) },
28608 { FRVBF_INSN_XORCR, SEM_FN_NAME (frvbf,xorcr) },
28609 { FRVBF_INSN_NANDCR, SEM_FN_NAME (frvbf,nandcr) },
28610 { FRVBF_INSN_NORCR, SEM_FN_NAME (frvbf,norcr) },
28611 { FRVBF_INSN_ANDNCR, SEM_FN_NAME (frvbf,andncr) },
28612 { FRVBF_INSN_ORNCR, SEM_FN_NAME (frvbf,orncr) },
28613 { FRVBF_INSN_NANDNCR, SEM_FN_NAME (frvbf,nandncr) },
28614 { FRVBF_INSN_NORNCR, SEM_FN_NAME (frvbf,norncr) },
28615 { FRVBF_INSN_NOTCR, SEM_FN_NAME (frvbf,notcr) },
28616 { FRVBF_INSN_CKRA, SEM_FN_NAME (frvbf,ckra) },
28617 { FRVBF_INSN_CKNO, SEM_FN_NAME (frvbf,ckno) },
28618 { FRVBF_INSN_CKEQ, SEM_FN_NAME (frvbf,ckeq) },
28619 { FRVBF_INSN_CKNE, SEM_FN_NAME (frvbf,ckne) },
28620 { FRVBF_INSN_CKLE, SEM_FN_NAME (frvbf,ckle) },
28621 { FRVBF_INSN_CKGT, SEM_FN_NAME (frvbf,ckgt) },
28622 { FRVBF_INSN_CKLT, SEM_FN_NAME (frvbf,cklt) },
28623 { FRVBF_INSN_CKGE, SEM_FN_NAME (frvbf,ckge) },
28624 { FRVBF_INSN_CKLS, SEM_FN_NAME (frvbf,ckls) },
28625 { FRVBF_INSN_CKHI, SEM_FN_NAME (frvbf,ckhi) },
28626 { FRVBF_INSN_CKC, SEM_FN_NAME (frvbf,ckc) },
28627 { FRVBF_INSN_CKNC, SEM_FN_NAME (frvbf,cknc) },
28628 { FRVBF_INSN_CKN, SEM_FN_NAME (frvbf,ckn) },
28629 { FRVBF_INSN_CKP, SEM_FN_NAME (frvbf,ckp) },
28630 { FRVBF_INSN_CKV, SEM_FN_NAME (frvbf,ckv) },
28631 { FRVBF_INSN_CKNV, SEM_FN_NAME (frvbf,cknv) },
28632 { FRVBF_INSN_FCKRA, SEM_FN_NAME (frvbf,fckra) },
28633 { FRVBF_INSN_FCKNO, SEM_FN_NAME (frvbf,fckno) },
28634 { FRVBF_INSN_FCKNE, SEM_FN_NAME (frvbf,fckne) },
28635 { FRVBF_INSN_FCKEQ, SEM_FN_NAME (frvbf,fckeq) },
28636 { FRVBF_INSN_FCKLG, SEM_FN_NAME (frvbf,fcklg) },
28637 { FRVBF_INSN_FCKUE, SEM_FN_NAME (frvbf,fckue) },
28638 { FRVBF_INSN_FCKUL, SEM_FN_NAME (frvbf,fckul) },
28639 { FRVBF_INSN_FCKGE, SEM_FN_NAME (frvbf,fckge) },
28640 { FRVBF_INSN_FCKLT, SEM_FN_NAME (frvbf,fcklt) },
28641 { FRVBF_INSN_FCKUGE, SEM_FN_NAME (frvbf,fckuge) },
28642 { FRVBF_INSN_FCKUG, SEM_FN_NAME (frvbf,fckug) },
28643 { FRVBF_INSN_FCKLE, SEM_FN_NAME (frvbf,fckle) },
28644 { FRVBF_INSN_FCKGT, SEM_FN_NAME (frvbf,fckgt) },
28645 { FRVBF_INSN_FCKULE, SEM_FN_NAME (frvbf,fckule) },
28646 { FRVBF_INSN_FCKU, SEM_FN_NAME (frvbf,fcku) },
28647 { FRVBF_INSN_FCKO, SEM_FN_NAME (frvbf,fcko) },
28648 { FRVBF_INSN_CCKRA, SEM_FN_NAME (frvbf,cckra) },
28649 { FRVBF_INSN_CCKNO, SEM_FN_NAME (frvbf,cckno) },
28650 { FRVBF_INSN_CCKEQ, SEM_FN_NAME (frvbf,cckeq) },
28651 { FRVBF_INSN_CCKNE, SEM_FN_NAME (frvbf,cckne) },
28652 { FRVBF_INSN_CCKLE, SEM_FN_NAME (frvbf,cckle) },
28653 { FRVBF_INSN_CCKGT, SEM_FN_NAME (frvbf,cckgt) },
28654 { FRVBF_INSN_CCKLT, SEM_FN_NAME (frvbf,ccklt) },
28655 { FRVBF_INSN_CCKGE, SEM_FN_NAME (frvbf,cckge) },
28656 { FRVBF_INSN_CCKLS, SEM_FN_NAME (frvbf,cckls) },
28657 { FRVBF_INSN_CCKHI, SEM_FN_NAME (frvbf,cckhi) },
28658 { FRVBF_INSN_CCKC, SEM_FN_NAME (frvbf,cckc) },
28659 { FRVBF_INSN_CCKNC, SEM_FN_NAME (frvbf,ccknc) },
28660 { FRVBF_INSN_CCKN, SEM_FN_NAME (frvbf,cckn) },
28661 { FRVBF_INSN_CCKP, SEM_FN_NAME (frvbf,cckp) },
28662 { FRVBF_INSN_CCKV, SEM_FN_NAME (frvbf,cckv) },
28663 { FRVBF_INSN_CCKNV, SEM_FN_NAME (frvbf,ccknv) },
28664 { FRVBF_INSN_CFCKRA, SEM_FN_NAME (frvbf,cfckra) },
28665 { FRVBF_INSN_CFCKNO, SEM_FN_NAME (frvbf,cfckno) },
28666 { FRVBF_INSN_CFCKNE, SEM_FN_NAME (frvbf,cfckne) },
28667 { FRVBF_INSN_CFCKEQ, SEM_FN_NAME (frvbf,cfckeq) },
28668 { FRVBF_INSN_CFCKLG, SEM_FN_NAME (frvbf,cfcklg) },
28669 { FRVBF_INSN_CFCKUE, SEM_FN_NAME (frvbf,cfckue) },
28670 { FRVBF_INSN_CFCKUL, SEM_FN_NAME (frvbf,cfckul) },
28671 { FRVBF_INSN_CFCKGE, SEM_FN_NAME (frvbf,cfckge) },
28672 { FRVBF_INSN_CFCKLT, SEM_FN_NAME (frvbf,cfcklt) },
28673 { FRVBF_INSN_CFCKUGE, SEM_FN_NAME (frvbf,cfckuge) },
28674 { FRVBF_INSN_CFCKUG, SEM_FN_NAME (frvbf,cfckug) },
28675 { FRVBF_INSN_CFCKLE, SEM_FN_NAME (frvbf,cfckle) },
28676 { FRVBF_INSN_CFCKGT, SEM_FN_NAME (frvbf,cfckgt) },
28677 { FRVBF_INSN_CFCKULE, SEM_FN_NAME (frvbf,cfckule) },
28678 { FRVBF_INSN_CFCKU, SEM_FN_NAME (frvbf,cfcku) },
28679 { FRVBF_INSN_CFCKO, SEM_FN_NAME (frvbf,cfcko) },
28680 { FRVBF_INSN_CJMPL, SEM_FN_NAME (frvbf,cjmpl) },
28681 { FRVBF_INSN_CCALLL, SEM_FN_NAME (frvbf,ccalll) },
28682 { FRVBF_INSN_ICI, SEM_FN_NAME (frvbf,ici) },
28683 { FRVBF_INSN_DCI, SEM_FN_NAME (frvbf,dci) },
28684 { FRVBF_INSN_ICEI, SEM_FN_NAME (frvbf,icei) },
28685 { FRVBF_INSN_DCEI, SEM_FN_NAME (frvbf,dcei) },
28686 { FRVBF_INSN_DCF, SEM_FN_NAME (frvbf,dcf) },
28687 { FRVBF_INSN_DCEF, SEM_FN_NAME (frvbf,dcef) },
28688 { FRVBF_INSN_WITLB, SEM_FN_NAME (frvbf,witlb) },
28689 { FRVBF_INSN_WDTLB, SEM_FN_NAME (frvbf,wdtlb) },
28690 { FRVBF_INSN_ITLBI, SEM_FN_NAME (frvbf,itlbi) },
28691 { FRVBF_INSN_DTLBI, SEM_FN_NAME (frvbf,dtlbi) },
28692 { FRVBF_INSN_ICPL, SEM_FN_NAME (frvbf,icpl) },
28693 { FRVBF_INSN_DCPL, SEM_FN_NAME (frvbf,dcpl) },
28694 { FRVBF_INSN_ICUL, SEM_FN_NAME (frvbf,icul) },
28695 { FRVBF_INSN_DCUL, SEM_FN_NAME (frvbf,dcul) },
28696 { FRVBF_INSN_BAR, SEM_FN_NAME (frvbf,bar) },
28697 { FRVBF_INSN_MEMBAR, SEM_FN_NAME (frvbf,membar) },
28698 { FRVBF_INSN_LRAI, SEM_FN_NAME (frvbf,lrai) },
28699 { FRVBF_INSN_LRAD, SEM_FN_NAME (frvbf,lrad) },
28700 { FRVBF_INSN_TLBPR, SEM_FN_NAME (frvbf,tlbpr) },
28701 { FRVBF_INSN_COP1, SEM_FN_NAME (frvbf,cop1) },
28702 { FRVBF_INSN_COP2, SEM_FN_NAME (frvbf,cop2) },
28703 { FRVBF_INSN_CLRGR, SEM_FN_NAME (frvbf,clrgr) },
28704 { FRVBF_INSN_CLRFR, SEM_FN_NAME (frvbf,clrfr) },
28705 { FRVBF_INSN_CLRGA, SEM_FN_NAME (frvbf,clrga) },
28706 { FRVBF_INSN_CLRFA, SEM_FN_NAME (frvbf,clrfa) },
28707 { FRVBF_INSN_COMMITGR, SEM_FN_NAME (frvbf,commitgr) },
28708 { FRVBF_INSN_COMMITFR, SEM_FN_NAME (frvbf,commitfr) },
28709 { FRVBF_INSN_COMMITGA, SEM_FN_NAME (frvbf,commitga) },
28710 { FRVBF_INSN_COMMITFA, SEM_FN_NAME (frvbf,commitfa) },
28711 { FRVBF_INSN_FITOS, SEM_FN_NAME (frvbf,fitos) },
28712 { FRVBF_INSN_FSTOI, SEM_FN_NAME (frvbf,fstoi) },
28713 { FRVBF_INSN_FITOD, SEM_FN_NAME (frvbf,fitod) },
28714 { FRVBF_INSN_FDTOI, SEM_FN_NAME (frvbf,fdtoi) },
28715 { FRVBF_INSN_FDITOS, SEM_FN_NAME (frvbf,fditos) },
28716 { FRVBF_INSN_FDSTOI, SEM_FN_NAME (frvbf,fdstoi) },
28717 { FRVBF_INSN_NFDITOS, SEM_FN_NAME (frvbf,nfditos) },
28718 { FRVBF_INSN_NFDSTOI, SEM_FN_NAME (frvbf,nfdstoi) },
28719 { FRVBF_INSN_CFITOS, SEM_FN_NAME (frvbf,cfitos) },
28720 { FRVBF_INSN_CFSTOI, SEM_FN_NAME (frvbf,cfstoi) },
28721 { FRVBF_INSN_NFITOS, SEM_FN_NAME (frvbf,nfitos) },
28722 { FRVBF_INSN_NFSTOI, SEM_FN_NAME (frvbf,nfstoi) },
28723 { FRVBF_INSN_FMOVS, SEM_FN_NAME (frvbf,fmovs) },
28724 { FRVBF_INSN_FMOVD, SEM_FN_NAME (frvbf,fmovd) },
28725 { FRVBF_INSN_FDMOVS, SEM_FN_NAME (frvbf,fdmovs) },
28726 { FRVBF_INSN_CFMOVS, SEM_FN_NAME (frvbf,cfmovs) },
28727 { FRVBF_INSN_FNEGS, SEM_FN_NAME (frvbf,fnegs) },
28728 { FRVBF_INSN_FNEGD, SEM_FN_NAME (frvbf,fnegd) },
28729 { FRVBF_INSN_FDNEGS, SEM_FN_NAME (frvbf,fdnegs) },
28730 { FRVBF_INSN_CFNEGS, SEM_FN_NAME (frvbf,cfnegs) },
28731 { FRVBF_INSN_FABSS, SEM_FN_NAME (frvbf,fabss) },
28732 { FRVBF_INSN_FABSD, SEM_FN_NAME (frvbf,fabsd) },
28733 { FRVBF_INSN_FDABSS, SEM_FN_NAME (frvbf,fdabss) },
28734 { FRVBF_INSN_CFABSS, SEM_FN_NAME (frvbf,cfabss) },
28735 { FRVBF_INSN_FSQRTS, SEM_FN_NAME (frvbf,fsqrts) },
28736 { FRVBF_INSN_FDSQRTS, SEM_FN_NAME (frvbf,fdsqrts) },
28737 { FRVBF_INSN_NFDSQRTS, SEM_FN_NAME (frvbf,nfdsqrts) },
28738 { FRVBF_INSN_FSQRTD, SEM_FN_NAME (frvbf,fsqrtd) },
28739 { FRVBF_INSN_CFSQRTS, SEM_FN_NAME (frvbf,cfsqrts) },
28740 { FRVBF_INSN_NFSQRTS, SEM_FN_NAME (frvbf,nfsqrts) },
28741 { FRVBF_INSN_FADDS, SEM_FN_NAME (frvbf,fadds) },
28742 { FRVBF_INSN_FSUBS, SEM_FN_NAME (frvbf,fsubs) },
28743 { FRVBF_INSN_FMULS, SEM_FN_NAME (frvbf,fmuls) },
28744 { FRVBF_INSN_FDIVS, SEM_FN_NAME (frvbf,fdivs) },
28745 { FRVBF_INSN_FADDD, SEM_FN_NAME (frvbf,faddd) },
28746 { FRVBF_INSN_FSUBD, SEM_FN_NAME (frvbf,fsubd) },
28747 { FRVBF_INSN_FMULD, SEM_FN_NAME (frvbf,fmuld) },
28748 { FRVBF_INSN_FDIVD, SEM_FN_NAME (frvbf,fdivd) },
28749 { FRVBF_INSN_CFADDS, SEM_FN_NAME (frvbf,cfadds) },
28750 { FRVBF_INSN_CFSUBS, SEM_FN_NAME (frvbf,cfsubs) },
28751 { FRVBF_INSN_CFMULS, SEM_FN_NAME (frvbf,cfmuls) },
28752 { FRVBF_INSN_CFDIVS, SEM_FN_NAME (frvbf,cfdivs) },
28753 { FRVBF_INSN_NFADDS, SEM_FN_NAME (frvbf,nfadds) },
28754 { FRVBF_INSN_NFSUBS, SEM_FN_NAME (frvbf,nfsubs) },
28755 { FRVBF_INSN_NFMULS, SEM_FN_NAME (frvbf,nfmuls) },
28756 { FRVBF_INSN_NFDIVS, SEM_FN_NAME (frvbf,nfdivs) },
28757 { FRVBF_INSN_FCMPS, SEM_FN_NAME (frvbf,fcmps) },
28758 { FRVBF_INSN_FCMPD, SEM_FN_NAME (frvbf,fcmpd) },
28759 { FRVBF_INSN_CFCMPS, SEM_FN_NAME (frvbf,cfcmps) },
28760 { FRVBF_INSN_FDCMPS, SEM_FN_NAME (frvbf,fdcmps) },
28761 { FRVBF_INSN_FMADDS, SEM_FN_NAME (frvbf,fmadds) },
28762 { FRVBF_INSN_FMSUBS, SEM_FN_NAME (frvbf,fmsubs) },
28763 { FRVBF_INSN_FMADDD, SEM_FN_NAME (frvbf,fmaddd) },
28764 { FRVBF_INSN_FMSUBD, SEM_FN_NAME (frvbf,fmsubd) },
28765 { FRVBF_INSN_FDMADDS, SEM_FN_NAME (frvbf,fdmadds) },
28766 { FRVBF_INSN_NFDMADDS, SEM_FN_NAME (frvbf,nfdmadds) },
28767 { FRVBF_INSN_CFMADDS, SEM_FN_NAME (frvbf,cfmadds) },
28768 { FRVBF_INSN_CFMSUBS, SEM_FN_NAME (frvbf,cfmsubs) },
28769 { FRVBF_INSN_NFMADDS, SEM_FN_NAME (frvbf,nfmadds) },
28770 { FRVBF_INSN_NFMSUBS, SEM_FN_NAME (frvbf,nfmsubs) },
28771 { FRVBF_INSN_FMAS, SEM_FN_NAME (frvbf,fmas) },
28772 { FRVBF_INSN_FMSS, SEM_FN_NAME (frvbf,fmss) },
28773 { FRVBF_INSN_FDMAS, SEM_FN_NAME (frvbf,fdmas) },
28774 { FRVBF_INSN_FDMSS, SEM_FN_NAME (frvbf,fdmss) },
28775 { FRVBF_INSN_NFDMAS, SEM_FN_NAME (frvbf,nfdmas) },
28776 { FRVBF_INSN_NFDMSS, SEM_FN_NAME (frvbf,nfdmss) },
28777 { FRVBF_INSN_CFMAS, SEM_FN_NAME (frvbf,cfmas) },
28778 { FRVBF_INSN_CFMSS, SEM_FN_NAME (frvbf,cfmss) },
28779 { FRVBF_INSN_FMAD, SEM_FN_NAME (frvbf,fmad) },
28780 { FRVBF_INSN_FMSD, SEM_FN_NAME (frvbf,fmsd) },
28781 { FRVBF_INSN_NFMAS, SEM_FN_NAME (frvbf,nfmas) },
28782 { FRVBF_INSN_NFMSS, SEM_FN_NAME (frvbf,nfmss) },
28783 { FRVBF_INSN_FDADDS, SEM_FN_NAME (frvbf,fdadds) },
28784 { FRVBF_INSN_FDSUBS, SEM_FN_NAME (frvbf,fdsubs) },
28785 { FRVBF_INSN_FDMULS, SEM_FN_NAME (frvbf,fdmuls) },
28786 { FRVBF_INSN_FDDIVS, SEM_FN_NAME (frvbf,fddivs) },
28787 { FRVBF_INSN_FDSADS, SEM_FN_NAME (frvbf,fdsads) },
28788 { FRVBF_INSN_FDMULCS, SEM_FN_NAME (frvbf,fdmulcs) },
28789 { FRVBF_INSN_NFDMULCS, SEM_FN_NAME (frvbf,nfdmulcs) },
28790 { FRVBF_INSN_NFDADDS, SEM_FN_NAME (frvbf,nfdadds) },
28791 { FRVBF_INSN_NFDSUBS, SEM_FN_NAME (frvbf,nfdsubs) },
28792 { FRVBF_INSN_NFDMULS, SEM_FN_NAME (frvbf,nfdmuls) },
28793 { FRVBF_INSN_NFDDIVS, SEM_FN_NAME (frvbf,nfddivs) },
28794 { FRVBF_INSN_NFDSADS, SEM_FN_NAME (frvbf,nfdsads) },
28795 { FRVBF_INSN_NFDCMPS, SEM_FN_NAME (frvbf,nfdcmps) },
28796 { FRVBF_INSN_MHSETLOS, SEM_FN_NAME (frvbf,mhsetlos) },
28797 { FRVBF_INSN_MHSETHIS, SEM_FN_NAME (frvbf,mhsethis) },
28798 { FRVBF_INSN_MHDSETS, SEM_FN_NAME (frvbf,mhdsets) },
28799 { FRVBF_INSN_MHSETLOH, SEM_FN_NAME (frvbf,mhsetloh) },
28800 { FRVBF_INSN_MHSETHIH, SEM_FN_NAME (frvbf,mhsethih) },
28801 { FRVBF_INSN_MHDSETH, SEM_FN_NAME (frvbf,mhdseth) },
28802 { FRVBF_INSN_MAND, SEM_FN_NAME (frvbf,mand) },
28803 { FRVBF_INSN_MOR, SEM_FN_NAME (frvbf,mor) },
28804 { FRVBF_INSN_MXOR, SEM_FN_NAME (frvbf,mxor) },
28805 { FRVBF_INSN_CMAND, SEM_FN_NAME (frvbf,cmand) },
28806 { FRVBF_INSN_CMOR, SEM_FN_NAME (frvbf,cmor) },
28807 { FRVBF_INSN_CMXOR, SEM_FN_NAME (frvbf,cmxor) },
28808 { FRVBF_INSN_MNOT, SEM_FN_NAME (frvbf,mnot) },
28809 { FRVBF_INSN_CMNOT, SEM_FN_NAME (frvbf,cmnot) },
28810 { FRVBF_INSN_MROTLI, SEM_FN_NAME (frvbf,mrotli) },
28811 { FRVBF_INSN_MROTRI, SEM_FN_NAME (frvbf,mrotri) },
28812 { FRVBF_INSN_MWCUT, SEM_FN_NAME (frvbf,mwcut) },
28813 { FRVBF_INSN_MWCUTI, SEM_FN_NAME (frvbf,mwcuti) },
28814 { FRVBF_INSN_MCUT, SEM_FN_NAME (frvbf,mcut) },
28815 { FRVBF_INSN_MCUTI, SEM_FN_NAME (frvbf,mcuti) },
28816 { FRVBF_INSN_MCUTSS, SEM_FN_NAME (frvbf,mcutss) },
28817 { FRVBF_INSN_MCUTSSI, SEM_FN_NAME (frvbf,mcutssi) },
28818 { FRVBF_INSN_MDCUTSSI, SEM_FN_NAME (frvbf,mdcutssi) },
28819 { FRVBF_INSN_MAVEH, SEM_FN_NAME (frvbf,maveh) },
28820 { FRVBF_INSN_MSLLHI, SEM_FN_NAME (frvbf,msllhi) },
28821 { FRVBF_INSN_MSRLHI, SEM_FN_NAME (frvbf,msrlhi) },
28822 { FRVBF_INSN_MSRAHI, SEM_FN_NAME (frvbf,msrahi) },
28823 { FRVBF_INSN_MDROTLI, SEM_FN_NAME (frvbf,mdrotli) },
28824 { FRVBF_INSN_MCPLHI, SEM_FN_NAME (frvbf,mcplhi) },
28825 { FRVBF_INSN_MCPLI, SEM_FN_NAME (frvbf,mcpli) },
28826 { FRVBF_INSN_MSATHS, SEM_FN_NAME (frvbf,msaths) },
28827 { FRVBF_INSN_MQSATHS, SEM_FN_NAME (frvbf,mqsaths) },
28828 { FRVBF_INSN_MSATHU, SEM_FN_NAME (frvbf,msathu) },
28829 { FRVBF_INSN_MCMPSH, SEM_FN_NAME (frvbf,mcmpsh) },
28830 { FRVBF_INSN_MCMPUH, SEM_FN_NAME (frvbf,mcmpuh) },
28831 { FRVBF_INSN_MABSHS, SEM_FN_NAME (frvbf,mabshs) },
28832 { FRVBF_INSN_MADDHSS, SEM_FN_NAME (frvbf,maddhss) },
28833 { FRVBF_INSN_MADDHUS, SEM_FN_NAME (frvbf,maddhus) },
28834 { FRVBF_INSN_MSUBHSS, SEM_FN_NAME (frvbf,msubhss) },
28835 { FRVBF_INSN_MSUBHUS, SEM_FN_NAME (frvbf,msubhus) },
28836 { FRVBF_INSN_CMADDHSS, SEM_FN_NAME (frvbf,cmaddhss) },
28837 { FRVBF_INSN_CMADDHUS, SEM_FN_NAME (frvbf,cmaddhus) },
28838 { FRVBF_INSN_CMSUBHSS, SEM_FN_NAME (frvbf,cmsubhss) },
28839 { FRVBF_INSN_CMSUBHUS, SEM_FN_NAME (frvbf,cmsubhus) },
28840 { FRVBF_INSN_MQADDHSS, SEM_FN_NAME (frvbf,mqaddhss) },
28841 { FRVBF_INSN_MQADDHUS, SEM_FN_NAME (frvbf,mqaddhus) },
28842 { FRVBF_INSN_MQSUBHSS, SEM_FN_NAME (frvbf,mqsubhss) },
28843 { FRVBF_INSN_MQSUBHUS, SEM_FN_NAME (frvbf,mqsubhus) },
28844 { FRVBF_INSN_CMQADDHSS, SEM_FN_NAME (frvbf,cmqaddhss) },
28845 { FRVBF_INSN_CMQADDHUS, SEM_FN_NAME (frvbf,cmqaddhus) },
28846 { FRVBF_INSN_CMQSUBHSS, SEM_FN_NAME (frvbf,cmqsubhss) },
28847 { FRVBF_INSN_CMQSUBHUS, SEM_FN_NAME (frvbf,cmqsubhus) },
28848 { FRVBF_INSN_MQLCLRHS, SEM_FN_NAME (frvbf,mqlclrhs) },
28849 { FRVBF_INSN_MQLMTHS, SEM_FN_NAME (frvbf,mqlmths) },
28850 { FRVBF_INSN_MQSLLHI, SEM_FN_NAME (frvbf,mqsllhi) },
28851 { FRVBF_INSN_MQSRAHI, SEM_FN_NAME (frvbf,mqsrahi) },
28852 { FRVBF_INSN_MADDACCS, SEM_FN_NAME (frvbf,maddaccs) },
28853 { FRVBF_INSN_MSUBACCS, SEM_FN_NAME (frvbf,msubaccs) },
28854 { FRVBF_INSN_MDADDACCS, SEM_FN_NAME (frvbf,mdaddaccs) },
28855 { FRVBF_INSN_MDSUBACCS, SEM_FN_NAME (frvbf,mdsubaccs) },
28856 { FRVBF_INSN_MASACCS, SEM_FN_NAME (frvbf,masaccs) },
28857 { FRVBF_INSN_MDASACCS, SEM_FN_NAME (frvbf,mdasaccs) },
28858 { FRVBF_INSN_MMULHS, SEM_FN_NAME (frvbf,mmulhs) },
28859 { FRVBF_INSN_MMULHU, SEM_FN_NAME (frvbf,mmulhu) },
28860 { FRVBF_INSN_MMULXHS, SEM_FN_NAME (frvbf,mmulxhs) },
28861 { FRVBF_INSN_MMULXHU, SEM_FN_NAME (frvbf,mmulxhu) },
28862 { FRVBF_INSN_CMMULHS, SEM_FN_NAME (frvbf,cmmulhs) },
28863 { FRVBF_INSN_CMMULHU, SEM_FN_NAME (frvbf,cmmulhu) },
28864 { FRVBF_INSN_MQMULHS, SEM_FN_NAME (frvbf,mqmulhs) },
28865 { FRVBF_INSN_MQMULHU, SEM_FN_NAME (frvbf,mqmulhu) },
28866 { FRVBF_INSN_MQMULXHS, SEM_FN_NAME (frvbf,mqmulxhs) },
28867 { FRVBF_INSN_MQMULXHU, SEM_FN_NAME (frvbf,mqmulxhu) },
28868 { FRVBF_INSN_CMQMULHS, SEM_FN_NAME (frvbf,cmqmulhs) },
28869 { FRVBF_INSN_CMQMULHU, SEM_FN_NAME (frvbf,cmqmulhu) },
28870 { FRVBF_INSN_MMACHS, SEM_FN_NAME (frvbf,mmachs) },
28871 { FRVBF_INSN_MMACHU, SEM_FN_NAME (frvbf,mmachu) },
28872 { FRVBF_INSN_MMRDHS, SEM_FN_NAME (frvbf,mmrdhs) },
28873 { FRVBF_INSN_MMRDHU, SEM_FN_NAME (frvbf,mmrdhu) },
28874 { FRVBF_INSN_CMMACHS, SEM_FN_NAME (frvbf,cmmachs) },
28875 { FRVBF_INSN_CMMACHU, SEM_FN_NAME (frvbf,cmmachu) },
28876 { FRVBF_INSN_MQMACHS, SEM_FN_NAME (frvbf,mqmachs) },
28877 { FRVBF_INSN_MQMACHU, SEM_FN_NAME (frvbf,mqmachu) },
28878 { FRVBF_INSN_CMQMACHS, SEM_FN_NAME (frvbf,cmqmachs) },
28879 { FRVBF_INSN_CMQMACHU, SEM_FN_NAME (frvbf,cmqmachu) },
28880 { FRVBF_INSN_MQXMACHS, SEM_FN_NAME (frvbf,mqxmachs) },
28881 { FRVBF_INSN_MQXMACXHS, SEM_FN_NAME (frvbf,mqxmacxhs) },
28882 { FRVBF_INSN_MQMACXHS, SEM_FN_NAME (frvbf,mqmacxhs) },
28883 { FRVBF_INSN_MCPXRS, SEM_FN_NAME (frvbf,mcpxrs) },
28884 { FRVBF_INSN_MCPXRU, SEM_FN_NAME (frvbf,mcpxru) },
28885 { FRVBF_INSN_MCPXIS, SEM_FN_NAME (frvbf,mcpxis) },
28886 { FRVBF_INSN_MCPXIU, SEM_FN_NAME (frvbf,mcpxiu) },
28887 { FRVBF_INSN_CMCPXRS, SEM_FN_NAME (frvbf,cmcpxrs) },
28888 { FRVBF_INSN_CMCPXRU, SEM_FN_NAME (frvbf,cmcpxru) },
28889 { FRVBF_INSN_CMCPXIS, SEM_FN_NAME (frvbf,cmcpxis) },
28890 { FRVBF_INSN_CMCPXIU, SEM_FN_NAME (frvbf,cmcpxiu) },
28891 { FRVBF_INSN_MQCPXRS, SEM_FN_NAME (frvbf,mqcpxrs) },
28892 { FRVBF_INSN_MQCPXRU, SEM_FN_NAME (frvbf,mqcpxru) },
28893 { FRVBF_INSN_MQCPXIS, SEM_FN_NAME (frvbf,mqcpxis) },
28894 { FRVBF_INSN_MQCPXIU, SEM_FN_NAME (frvbf,mqcpxiu) },
28895 { FRVBF_INSN_MEXPDHW, SEM_FN_NAME (frvbf,mexpdhw) },
28896 { FRVBF_INSN_CMEXPDHW, SEM_FN_NAME (frvbf,cmexpdhw) },
28897 { FRVBF_INSN_MEXPDHD, SEM_FN_NAME (frvbf,mexpdhd) },
28898 { FRVBF_INSN_CMEXPDHD, SEM_FN_NAME (frvbf,cmexpdhd) },
28899 { FRVBF_INSN_MPACKH, SEM_FN_NAME (frvbf,mpackh) },
28900 { FRVBF_INSN_MDPACKH, SEM_FN_NAME (frvbf,mdpackh) },
28901 { FRVBF_INSN_MUNPACKH, SEM_FN_NAME (frvbf,munpackh) },
28902 { FRVBF_INSN_MDUNPACKH, SEM_FN_NAME (frvbf,mdunpackh) },
28903 { FRVBF_INSN_MBTOH, SEM_FN_NAME (frvbf,mbtoh) },
28904 { FRVBF_INSN_CMBTOH, SEM_FN_NAME (frvbf,cmbtoh) },
28905 { FRVBF_INSN_MHTOB, SEM_FN_NAME (frvbf,mhtob) },
28906 { FRVBF_INSN_CMHTOB, SEM_FN_NAME (frvbf,cmhtob) },
28907 { FRVBF_INSN_MBTOHE, SEM_FN_NAME (frvbf,mbtohe) },
28908 { FRVBF_INSN_CMBTOHE, SEM_FN_NAME (frvbf,cmbtohe) },
28909 { FRVBF_INSN_MNOP, SEM_FN_NAME (frvbf,mnop) },
28910 { FRVBF_INSN_MCLRACC_0, SEM_FN_NAME (frvbf,mclracc_0) },
28911 { FRVBF_INSN_MCLRACC_1, SEM_FN_NAME (frvbf,mclracc_1) },
28912 { FRVBF_INSN_MRDACC, SEM_FN_NAME (frvbf,mrdacc) },
28913 { FRVBF_INSN_MRDACCG, SEM_FN_NAME (frvbf,mrdaccg) },
28914 { FRVBF_INSN_MWTACC, SEM_FN_NAME (frvbf,mwtacc) },
28915 { FRVBF_INSN_MWTACCG, SEM_FN_NAME (frvbf,mwtaccg) },
28916 { FRVBF_INSN_MCOP1, SEM_FN_NAME (frvbf,mcop1) },
28917 { FRVBF_INSN_MCOP2, SEM_FN_NAME (frvbf,mcop2) },
28918 { FRVBF_INSN_FNOP, SEM_FN_NAME (frvbf,fnop) },
28922 /* Add the semantic fns to IDESC_TABLE. */
28925 SEM_FN_NAME (frvbf,init_idesc_table) (SIM_CPU *current_cpu)
28927 IDESC *idesc_table = CPU_IDESC (current_cpu);
28928 const struct sem_fn_desc *sf;
28929 int mach_num = MACH_NUM (CPU_MACH (current_cpu));
28931 for (sf = &sem_fns[0]; sf->fn != 0; ++sf)
28933 const CGEN_INSN *insn = idesc_table[sf->index].idata;
28934 int valid_p = (CGEN_INSN_VIRTUAL_P (insn)
28935 || CGEN_INSN_MACH_HAS_P (insn, mach_num));
28938 idesc_table[sf->index].sem_fast = sf->fn;
28940 idesc_table[sf->index].sem_fast = SEM_FN_NAME (frvbf,x_invalid);
28943 idesc_table[sf->index].sem_full = sf->fn;
28945 idesc_table[sf->index].sem_full = SEM_FN_NAME (frvbf,x_invalid);