1 /* Simulator instruction semantics for frvbf.
3 THIS FILE IS MACHINE GENERATED WITH CGEN.
5 Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
7 This file is part of the GNU simulators.
9 This program is free software; you can redistribute it and/or modify
10 it under the terms of the GNU General Public License as published by
11 the Free Software Foundation; either version 2, or (at your option)
14 This program is distributed in the hope that it will be useful,
15 but WITHOUT ANY WARRANTY; without even the implied warranty of
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 GNU General Public License for more details.
19 You should have received a copy of the GNU General Public License along
20 with this program; if not, write to the Free Software Foundation, Inc.,
21 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
25 #define WANT_CPU frvbf
26 #define WANT_CPU_FRVBF
33 #if defined (__STDC__) || defined (ALMOST_STDC) || defined (HAVE_STRINGIZE)
34 #define GET_ATTR(cpu, num, attr) CGEN_ATTR_VALUE (NULL, abuf->idesc->attrs, CGEN_INSN_##attr)
36 #define GET_ATTR(cpu, num, attr) CGEN_ATTR_VALUE (NULL, abuf->idesc->attrs, CGEN_INSN_/**/attr)
39 /* This is used so that we can compile two copies of the semantic code,
40 one with full feature support and one without that runs fast(er).
41 FAST_P, when desired, is defined on the command line, -DFAST_P=1. */
43 #define SEM_FN_NAME(cpu,fn) XCONCAT3 (cpu,_semf_,fn)
45 #define TRACE_RESULT(cpu, abuf, name, type, val)
47 #define SEM_FN_NAME(cpu,fn) XCONCAT3 (cpu,_sem_,fn)
50 /* x-invalid: --invalid-- */
53 SEM_FN_NAME (frvbf
,x_invalid
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
55 #define FLD(f) abuf->fields.fmt_empty.f
56 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
57 int UNUSED written
= 0;
58 IADDR UNUSED pc
= abuf
->addr
;
59 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 0);
62 /* Update the recorded pc in the cpu state struct.
63 Only necessary for WITH_SCACHE case, but to avoid the
64 conditional compilation .... */
66 /* Virtual insns have zero size. Overwrite vpc with address of next insn
67 using the default-insn-bitsize spec. When executing insns in parallel
68 we may want to queue the fault and continue execution. */
69 vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
70 vpc
= sim_engine_invalid_insn (current_cpu
, pc
, vpc
);
77 /* x-after: --after-- */
80 SEM_FN_NAME (frvbf
,x_after
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
82 #define FLD(f) abuf->fields.fmt_empty.f
83 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
84 int UNUSED written
= 0;
85 IADDR UNUSED pc
= abuf
->addr
;
86 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 0);
89 #if WITH_SCACHE_PBB_FRVBF
90 frvbf_pbb_after (current_cpu
, sem_arg
);
98 /* x-before: --before-- */
101 SEM_FN_NAME (frvbf
,x_before
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
103 #define FLD(f) abuf->fields.fmt_empty.f
104 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
105 int UNUSED written
= 0;
106 IADDR UNUSED pc
= abuf
->addr
;
107 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 0);
110 #if WITH_SCACHE_PBB_FRVBF
111 frvbf_pbb_before (current_cpu
, sem_arg
);
119 /* x-cti-chain: --cti-chain-- */
122 SEM_FN_NAME (frvbf
,x_cti_chain
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
124 #define FLD(f) abuf->fields.fmt_empty.f
125 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
126 int UNUSED written
= 0;
127 IADDR UNUSED pc
= abuf
->addr
;
128 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 0);
131 #if WITH_SCACHE_PBB_FRVBF
133 vpc
= frvbf_pbb_cti_chain (current_cpu
, sem_arg
,
134 pbb_br_type
, pbb_br_npc
);
137 /* FIXME: Allow provision of explicit ifmt spec in insn spec. */
138 vpc
= frvbf_pbb_cti_chain (current_cpu
, sem_arg
,
139 CPU_PBB_BR_TYPE (current_cpu
),
140 CPU_PBB_BR_NPC (current_cpu
));
149 /* x-chain: --chain-- */
152 SEM_FN_NAME (frvbf
,x_chain
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
154 #define FLD(f) abuf->fields.fmt_empty.f
155 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
156 int UNUSED written
= 0;
157 IADDR UNUSED pc
= abuf
->addr
;
158 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 0);
161 #if WITH_SCACHE_PBB_FRVBF
162 vpc
= frvbf_pbb_chain (current_cpu
, sem_arg
);
173 /* x-begin: --begin-- */
176 SEM_FN_NAME (frvbf
,x_begin
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
178 #define FLD(f) abuf->fields.fmt_empty.f
179 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
180 int UNUSED written
= 0;
181 IADDR UNUSED pc
= abuf
->addr
;
182 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 0);
185 #if WITH_SCACHE_PBB_FRVBF
186 #if defined DEFINE_SWITCH || defined FAST_P
187 /* In the switch case FAST_P is a constant, allowing several optimizations
188 in any called inline functions. */
189 vpc
= frvbf_pbb_begin (current_cpu
, FAST_P
);
191 #if 0 /* cgen engine can't handle dynamic fast/full switching yet. */
192 vpc
= frvbf_pbb_begin (current_cpu
, STATE_RUN_FAST_P (CPU_STATE (current_cpu
)));
194 vpc
= frvbf_pbb_begin (current_cpu
, 0);
204 /* add: add$pack $GRi,$GRj,$GRk */
207 SEM_FN_NAME (frvbf
,add
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
209 #define FLD(f) abuf->fields.sfmt_addcc.f
210 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
211 int UNUSED written
= 0;
212 IADDR UNUSED pc
= abuf
->addr
;
213 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
216 SI opval
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
217 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
218 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
225 /* sub: sub$pack $GRi,$GRj,$GRk */
228 SEM_FN_NAME (frvbf
,sub
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
230 #define FLD(f) abuf->fields.sfmt_addcc.f
231 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
232 int UNUSED written
= 0;
233 IADDR UNUSED pc
= abuf
->addr
;
234 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
237 SI opval
= SUBSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
238 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
239 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
246 /* and: and$pack $GRi,$GRj,$GRk */
249 SEM_FN_NAME (frvbf
,and) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
251 #define FLD(f) abuf->fields.sfmt_addcc.f
252 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
253 int UNUSED written
= 0;
254 IADDR UNUSED pc
= abuf
->addr
;
255 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
258 SI opval
= ANDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
259 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
260 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
267 /* or: or$pack $GRi,$GRj,$GRk */
270 SEM_FN_NAME (frvbf
,or) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
272 #define FLD(f) abuf->fields.sfmt_addcc.f
273 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
274 int UNUSED written
= 0;
275 IADDR UNUSED pc
= abuf
->addr
;
276 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
279 SI opval
= ORSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
280 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
281 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
288 /* xor: xor$pack $GRi,$GRj,$GRk */
291 SEM_FN_NAME (frvbf
,xor) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
293 #define FLD(f) abuf->fields.sfmt_addcc.f
294 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
295 int UNUSED written
= 0;
296 IADDR UNUSED pc
= abuf
->addr
;
297 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
300 SI opval
= XORSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
301 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
302 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
309 /* not: not$pack $GRj,$GRk */
312 SEM_FN_NAME (frvbf
,not) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
314 #define FLD(f) abuf->fields.sfmt_addcc.f
315 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
316 int UNUSED written
= 0;
317 IADDR UNUSED pc
= abuf
->addr
;
318 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
321 SI opval
= INVSI (GET_H_GR (FLD (f_GRj
)));
322 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
323 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
330 /* sdiv: sdiv$pack $GRi,$GRj,$GRk */
333 SEM_FN_NAME (frvbf
,sdiv
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
335 #define FLD(f) abuf->fields.sfmt_addcc.f
336 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
337 int UNUSED written
= 0;
338 IADDR UNUSED pc
= abuf
->addr
;
339 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
342 frvbf_signed_integer_divide (current_cpu
, GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)), FLD (f_GRk
), 0);
350 /* nsdiv: nsdiv$pack $GRi,$GRj,$GRk */
353 SEM_FN_NAME (frvbf
,nsdiv
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
355 #define FLD(f) abuf->fields.sfmt_addcc.f
356 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
357 int UNUSED written
= 0;
358 IADDR UNUSED pc
= abuf
->addr
;
359 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
362 frvbf_signed_integer_divide (current_cpu
, GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)), FLD (f_GRk
), 1);
370 /* udiv: udiv$pack $GRi,$GRj,$GRk */
373 SEM_FN_NAME (frvbf
,udiv
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
375 #define FLD(f) abuf->fields.sfmt_addcc.f
376 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
377 int UNUSED written
= 0;
378 IADDR UNUSED pc
= abuf
->addr
;
379 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
382 frvbf_unsigned_integer_divide (current_cpu
, GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)), FLD (f_GRk
), 0);
390 /* nudiv: nudiv$pack $GRi,$GRj,$GRk */
393 SEM_FN_NAME (frvbf
,nudiv
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
395 #define FLD(f) abuf->fields.sfmt_addcc.f
396 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
397 int UNUSED written
= 0;
398 IADDR UNUSED pc
= abuf
->addr
;
399 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
402 frvbf_unsigned_integer_divide (current_cpu
, GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)), FLD (f_GRk
), 1);
410 /* smul: smul$pack $GRi,$GRj,$GRdoublek */
413 SEM_FN_NAME (frvbf
,smul
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
415 #define FLD(f) abuf->fields.sfmt_smulcc.f
416 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
417 int UNUSED written
= 0;
418 IADDR UNUSED pc
= abuf
->addr
;
419 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
422 DI opval
= MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi
))), EXTSIDI (GET_H_GR (FLD (f_GRj
))));
423 sim_queue_fn_di_write (current_cpu
, frvbf_h_gr_double_set
, FLD (f_GRk
), opval
);
424 TRACE_RESULT (current_cpu
, abuf
, "gr_double", 'D', opval
);
431 /* umul: umul$pack $GRi,$GRj,$GRdoublek */
434 SEM_FN_NAME (frvbf
,umul
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
436 #define FLD(f) abuf->fields.sfmt_smulcc.f
437 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
438 int UNUSED written
= 0;
439 IADDR UNUSED pc
= abuf
->addr
;
440 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
443 DI opval
= MULDI (ZEXTSIDI (GET_H_GR (FLD (f_GRi
))), ZEXTSIDI (GET_H_GR (FLD (f_GRj
))));
444 sim_queue_fn_di_write (current_cpu
, frvbf_h_gr_double_set
, FLD (f_GRk
), opval
);
445 TRACE_RESULT (current_cpu
, abuf
, "gr_double", 'D', opval
);
452 /* sll: sll$pack $GRi,$GRj,$GRk */
455 SEM_FN_NAME (frvbf
,sll
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
457 #define FLD(f) abuf->fields.sfmt_addcc.f
458 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
459 int UNUSED written
= 0;
460 IADDR UNUSED pc
= abuf
->addr
;
461 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
464 SI opval
= SLLSI (GET_H_GR (FLD (f_GRi
)), ANDSI (GET_H_GR (FLD (f_GRj
)), 31));
465 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
466 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
473 /* srl: srl$pack $GRi,$GRj,$GRk */
476 SEM_FN_NAME (frvbf
,srl
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
478 #define FLD(f) abuf->fields.sfmt_addcc.f
479 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
480 int UNUSED written
= 0;
481 IADDR UNUSED pc
= abuf
->addr
;
482 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
485 SI opval
= SRLSI (GET_H_GR (FLD (f_GRi
)), ANDSI (GET_H_GR (FLD (f_GRj
)), 31));
486 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
487 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
494 /* sra: sra$pack $GRi,$GRj,$GRk */
497 SEM_FN_NAME (frvbf
,sra
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
499 #define FLD(f) abuf->fields.sfmt_addcc.f
500 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
501 int UNUSED written
= 0;
502 IADDR UNUSED pc
= abuf
->addr
;
503 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
506 SI opval
= SRASI (GET_H_GR (FLD (f_GRi
)), ANDSI (GET_H_GR (FLD (f_GRj
)), 31));
507 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
508 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
515 /* scan: scan$pack $GRi,$GRj,$GRk */
518 SEM_FN_NAME (frvbf
,scan
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
520 #define FLD(f) abuf->fields.sfmt_addcc.f
521 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
522 int UNUSED written
= 0;
523 IADDR UNUSED pc
= abuf
->addr
;
524 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
529 tmp_tmp1
= GET_H_GR (FLD (f_GRi
));
530 tmp_tmp2
= SRASI (GET_H_GR (FLD (f_GRj
)), 1);
532 SI opval
= frvbf_scan_result (current_cpu
, XORSI (tmp_tmp1
, tmp_tmp2
));
533 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
534 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
542 /* cadd: cadd$pack $GRi,$GRj,$GRk,$CCi,$cond */
545 SEM_FN_NAME (frvbf
,cadd
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
547 #define FLD(f) abuf->fields.sfmt_cswap.f
548 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
549 int UNUSED written
= 0;
550 IADDR UNUSED pc
= abuf
->addr
;
551 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
553 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
555 SI opval
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
556 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
558 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
562 abuf
->written
= written
;
567 /* csub: csub$pack $GRi,$GRj,$GRk,$CCi,$cond */
570 SEM_FN_NAME (frvbf
,csub
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
572 #define FLD(f) abuf->fields.sfmt_cswap.f
573 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
574 int UNUSED written
= 0;
575 IADDR UNUSED pc
= abuf
->addr
;
576 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
578 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
580 SI opval
= SUBSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
581 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
583 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
587 abuf
->written
= written
;
592 /* cand: cand$pack $GRi,$GRj,$GRk,$CCi,$cond */
595 SEM_FN_NAME (frvbf
,cand
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
597 #define FLD(f) abuf->fields.sfmt_cswap.f
598 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
599 int UNUSED written
= 0;
600 IADDR UNUSED pc
= abuf
->addr
;
601 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
603 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
605 SI opval
= ANDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
606 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
608 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
612 abuf
->written
= written
;
617 /* cor: cor$pack $GRi,$GRj,$GRk,$CCi,$cond */
620 SEM_FN_NAME (frvbf
,cor
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
622 #define FLD(f) abuf->fields.sfmt_cswap.f
623 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
624 int UNUSED written
= 0;
625 IADDR UNUSED pc
= abuf
->addr
;
626 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
628 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
630 SI opval
= ORSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
631 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
633 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
637 abuf
->written
= written
;
642 /* cxor: cxor$pack $GRi,$GRj,$GRk,$CCi,$cond */
645 SEM_FN_NAME (frvbf
,cxor
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
647 #define FLD(f) abuf->fields.sfmt_cswap.f
648 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
649 int UNUSED written
= 0;
650 IADDR UNUSED pc
= abuf
->addr
;
651 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
653 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
655 SI opval
= XORSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
656 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
658 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
662 abuf
->written
= written
;
667 /* cnot: cnot$pack $GRj,$GRk,$CCi,$cond */
670 SEM_FN_NAME (frvbf
,cnot
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
672 #define FLD(f) abuf->fields.sfmt_cswap.f
673 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
674 int UNUSED written
= 0;
675 IADDR UNUSED pc
= abuf
->addr
;
676 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
678 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
680 SI opval
= INVSI (GET_H_GR (FLD (f_GRj
)));
681 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
683 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
687 abuf
->written
= written
;
692 /* csmul: csmul$pack $GRi,$GRj,$GRdoublek,$CCi,$cond */
695 SEM_FN_NAME (frvbf
,csmul
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
697 #define FLD(f) abuf->fields.sfmt_clddu.f
698 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
699 int UNUSED written
= 0;
700 IADDR UNUSED pc
= abuf
->addr
;
701 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
703 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
705 DI opval
= MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi
))), EXTSIDI (GET_H_GR (FLD (f_GRj
))));
706 sim_queue_fn_di_write (current_cpu
, frvbf_h_gr_double_set
, FLD (f_GRk
), opval
);
708 TRACE_RESULT (current_cpu
, abuf
, "gr_double", 'D', opval
);
712 abuf
->written
= written
;
717 /* csdiv: csdiv$pack $GRi,$GRj,$GRk,$CCi,$cond */
720 SEM_FN_NAME (frvbf
,csdiv
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
722 #define FLD(f) abuf->fields.sfmt_cswap.f
723 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
724 int UNUSED written
= 0;
725 IADDR UNUSED pc
= abuf
->addr
;
726 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
728 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
730 frvbf_signed_integer_divide (current_cpu
, GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)), FLD (f_GRk
), 0);
735 abuf
->written
= written
;
740 /* cudiv: cudiv$pack $GRi,$GRj,$GRk,$CCi,$cond */
743 SEM_FN_NAME (frvbf
,cudiv
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
745 #define FLD(f) abuf->fields.sfmt_cswap.f
746 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
747 int UNUSED written
= 0;
748 IADDR UNUSED pc
= abuf
->addr
;
749 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
751 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
753 frvbf_unsigned_integer_divide (current_cpu
, GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)), FLD (f_GRk
), 0);
758 abuf
->written
= written
;
763 /* csll: csll$pack $GRi,$GRj,$GRk,$CCi,$cond */
766 SEM_FN_NAME (frvbf
,csll
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
768 #define FLD(f) abuf->fields.sfmt_cswap.f
769 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
770 int UNUSED written
= 0;
771 IADDR UNUSED pc
= abuf
->addr
;
772 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
774 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
776 SI opval
= SLLSI (GET_H_GR (FLD (f_GRi
)), ANDSI (GET_H_GR (FLD (f_GRj
)), 31));
777 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
779 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
783 abuf
->written
= written
;
788 /* csrl: csrl$pack $GRi,$GRj,$GRk,$CCi,$cond */
791 SEM_FN_NAME (frvbf
,csrl
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
793 #define FLD(f) abuf->fields.sfmt_cswap.f
794 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
795 int UNUSED written
= 0;
796 IADDR UNUSED pc
= abuf
->addr
;
797 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
799 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
801 SI opval
= SRLSI (GET_H_GR (FLD (f_GRi
)), ANDSI (GET_H_GR (FLD (f_GRj
)), 31));
802 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
804 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
808 abuf
->written
= written
;
813 /* csra: csra$pack $GRi,$GRj,$GRk,$CCi,$cond */
816 SEM_FN_NAME (frvbf
,csra
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
818 #define FLD(f) abuf->fields.sfmt_cswap.f
819 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
820 int UNUSED written
= 0;
821 IADDR UNUSED pc
= abuf
->addr
;
822 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
824 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
826 SI opval
= SRASI (GET_H_GR (FLD (f_GRi
)), ANDSI (GET_H_GR (FLD (f_GRj
)), 31));
827 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
829 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
833 abuf
->written
= written
;
838 /* cscan: cscan$pack $GRi,$GRj,$GRk,$CCi,$cond */
841 SEM_FN_NAME (frvbf
,cscan
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
843 #define FLD(f) abuf->fields.sfmt_cswap.f
844 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
845 int UNUSED written
= 0;
846 IADDR UNUSED pc
= abuf
->addr
;
847 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
849 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
853 tmp_tmp1
= GET_H_GR (FLD (f_GRi
));
854 tmp_tmp2
= SRASI (GET_H_GR (FLD (f_GRj
)), 1);
856 SI opval
= frvbf_scan_result (current_cpu
, XORSI (tmp_tmp1
, tmp_tmp2
));
857 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
859 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
864 abuf
->written
= written
;
869 /* addcc: addcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
872 SEM_FN_NAME (frvbf
,addcc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
874 #define FLD(f) abuf->fields.sfmt_addcc.f
875 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
876 int UNUSED written
= 0;
877 IADDR UNUSED pc
= abuf
->addr
;
878 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
884 tmp_cc
= CPU (h_iccr
[FLD (f_ICCi_1
)]);
885 tmp_tmp
= ADDOFSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)), 0);
886 if (EQBI (tmp_tmp
, 0)) {
887 tmp_cc
= ANDQI (tmp_cc
, 13);
889 tmp_cc
= ORQI (tmp_cc
, 2);
891 tmp_tmp
= ADDCFSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)), 0);
892 if (EQBI (tmp_tmp
, 0)) {
893 tmp_cc
= ANDQI (tmp_cc
, 14);
895 tmp_cc
= ORQI (tmp_cc
, 1);
897 tmp_result
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
898 if (EQSI (tmp_result
, 0)) {
899 tmp_cc
= ORQI (ANDQI (tmp_cc
, 7), 4);
901 if (LTSI (tmp_result
, 0)) {
902 tmp_cc
= ORQI (ANDQI (tmp_cc
, 11), 8);
904 tmp_cc
= ANDQI (tmp_cc
, 3);
908 SI opval
= tmp_result
;
909 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
910 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
914 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[FLD (f_ICCi_1
)]), opval
);
915 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
923 /* subcc: subcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
926 SEM_FN_NAME (frvbf
,subcc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
928 #define FLD(f) abuf->fields.sfmt_addcc.f
929 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
930 int UNUSED written
= 0;
931 IADDR UNUSED pc
= abuf
->addr
;
932 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
938 tmp_cc
= CPU (h_iccr
[FLD (f_ICCi_1
)]);
939 tmp_tmp
= SUBOFSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)), 0);
940 if (EQBI (tmp_tmp
, 0)) {
941 tmp_cc
= ANDQI (tmp_cc
, 13);
943 tmp_cc
= ORQI (tmp_cc
, 2);
945 tmp_tmp
= SUBCFSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)), 0);
946 if (EQBI (tmp_tmp
, 0)) {
947 tmp_cc
= ANDQI (tmp_cc
, 14);
949 tmp_cc
= ORQI (tmp_cc
, 1);
951 tmp_result
= SUBSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
952 if (EQSI (tmp_result
, 0)) {
953 tmp_cc
= ORQI (ANDQI (tmp_cc
, 7), 4);
955 if (LTSI (tmp_result
, 0)) {
956 tmp_cc
= ORQI (ANDQI (tmp_cc
, 11), 8);
958 tmp_cc
= ANDQI (tmp_cc
, 3);
962 SI opval
= tmp_result
;
963 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
964 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
968 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[FLD (f_ICCi_1
)]), opval
);
969 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
977 /* andcc: andcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
980 SEM_FN_NAME (frvbf
,andcc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
982 #define FLD(f) abuf->fields.sfmt_addcc.f
983 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
984 int UNUSED written
= 0;
985 IADDR UNUSED pc
= abuf
->addr
;
986 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
990 tmp_tmp
= ANDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
993 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
994 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
996 if (EQSI (tmp_tmp
, 0)) {
998 UQI opval
= ORQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_1
)]), 7), 4);
999 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[FLD (f_ICCi_1
)]), opval
);
1000 written
|= (1 << 4);
1001 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
1004 if (LTSI (tmp_tmp
, 0)) {
1006 UQI opval
= ORQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_1
)]), 11), 8);
1007 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[FLD (f_ICCi_1
)]), opval
);
1008 written
|= (1 << 4);
1009 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
1013 UQI opval
= ANDQI (CPU (h_iccr
[FLD (f_ICCi_1
)]), 3);
1014 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[FLD (f_ICCi_1
)]), opval
);
1015 written
|= (1 << 4);
1016 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
1022 abuf
->written
= written
;
1027 /* orcc: orcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1030 SEM_FN_NAME (frvbf
,orcc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1032 #define FLD(f) abuf->fields.sfmt_addcc.f
1033 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1034 int UNUSED written
= 0;
1035 IADDR UNUSED pc
= abuf
->addr
;
1036 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
1040 tmp_tmp
= ORSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
1043 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
1044 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
1046 if (EQSI (tmp_tmp
, 0)) {
1048 UQI opval
= ORQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_1
)]), 7), 4);
1049 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[FLD (f_ICCi_1
)]), opval
);
1050 written
|= (1 << 4);
1051 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
1054 if (LTSI (tmp_tmp
, 0)) {
1056 UQI opval
= ORQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_1
)]), 11), 8);
1057 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[FLD (f_ICCi_1
)]), opval
);
1058 written
|= (1 << 4);
1059 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
1063 UQI opval
= ANDQI (CPU (h_iccr
[FLD (f_ICCi_1
)]), 3);
1064 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[FLD (f_ICCi_1
)]), opval
);
1065 written
|= (1 << 4);
1066 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
1072 abuf
->written
= written
;
1077 /* xorcc: xorcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1080 SEM_FN_NAME (frvbf
,xorcc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1082 #define FLD(f) abuf->fields.sfmt_addcc.f
1083 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1084 int UNUSED written
= 0;
1085 IADDR UNUSED pc
= abuf
->addr
;
1086 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
1090 tmp_tmp
= XORSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
1093 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
1094 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
1096 if (EQSI (tmp_tmp
, 0)) {
1098 UQI opval
= ORQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_1
)]), 7), 4);
1099 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[FLD (f_ICCi_1
)]), opval
);
1100 written
|= (1 << 4);
1101 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
1104 if (LTSI (tmp_tmp
, 0)) {
1106 UQI opval
= ORQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_1
)]), 11), 8);
1107 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[FLD (f_ICCi_1
)]), opval
);
1108 written
|= (1 << 4);
1109 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
1113 UQI opval
= ANDQI (CPU (h_iccr
[FLD (f_ICCi_1
)]), 3);
1114 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[FLD (f_ICCi_1
)]), opval
);
1115 written
|= (1 << 4);
1116 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
1122 abuf
->written
= written
;
1127 /* sllcc: sllcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1130 SEM_FN_NAME (frvbf
,sllcc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1132 #define FLD(f) abuf->fields.sfmt_addcc.f
1133 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1134 int UNUSED written
= 0;
1135 IADDR UNUSED pc
= abuf
->addr
;
1136 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
1142 tmp_shift
= ANDSI (GET_H_GR (FLD (f_GRj
)), 31);
1143 tmp_cc
= frvbf_set_icc_for_shift_left (current_cpu
, GET_H_GR (FLD (f_GRi
)), tmp_shift
, CPU (h_iccr
[FLD (f_ICCi_1
)]));
1144 tmp_tmp
= SLLSI (GET_H_GR (FLD (f_GRi
)), tmp_shift
);
1147 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
1148 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
1150 if (EQSI (tmp_tmp
, 0)) {
1151 tmp_cc
= ORQI (ANDQI (tmp_cc
, 7), 4);
1153 if (LTSI (tmp_tmp
, 0)) {
1154 tmp_cc
= ORQI (ANDQI (tmp_cc
, 11), 8);
1156 tmp_cc
= ANDQI (tmp_cc
, 3);
1161 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[FLD (f_ICCi_1
)]), opval
);
1162 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
1170 /* srlcc: srlcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1173 SEM_FN_NAME (frvbf
,srlcc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1175 #define FLD(f) abuf->fields.sfmt_addcc.f
1176 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1177 int UNUSED written
= 0;
1178 IADDR UNUSED pc
= abuf
->addr
;
1179 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
1185 tmp_shift
= ANDSI (GET_H_GR (FLD (f_GRj
)), 31);
1186 tmp_cc
= frvbf_set_icc_for_shift_right (current_cpu
, GET_H_GR (FLD (f_GRi
)), tmp_shift
, CPU (h_iccr
[FLD (f_ICCi_1
)]));
1187 tmp_tmp
= SRLSI (GET_H_GR (FLD (f_GRi
)), tmp_shift
);
1190 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
1191 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
1193 if (EQSI (tmp_tmp
, 0)) {
1194 tmp_cc
= ORQI (ANDQI (tmp_cc
, 7), 4);
1196 if (LTSI (tmp_tmp
, 0)) {
1197 tmp_cc
= ORQI (ANDQI (tmp_cc
, 11), 8);
1199 tmp_cc
= ANDQI (tmp_cc
, 3);
1204 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[FLD (f_ICCi_1
)]), opval
);
1205 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
1213 /* sracc: sracc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1216 SEM_FN_NAME (frvbf
,sracc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1218 #define FLD(f) abuf->fields.sfmt_addcc.f
1219 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1220 int UNUSED written
= 0;
1221 IADDR UNUSED pc
= abuf
->addr
;
1222 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
1228 tmp_shift
= ANDSI (GET_H_GR (FLD (f_GRj
)), 31);
1229 tmp_cc
= frvbf_set_icc_for_shift_right (current_cpu
, GET_H_GR (FLD (f_GRi
)), tmp_shift
, CPU (h_iccr
[FLD (f_ICCi_1
)]));
1230 tmp_tmp
= SRASI (GET_H_GR (FLD (f_GRi
)), tmp_shift
);
1233 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
1234 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
1236 if (EQSI (tmp_tmp
, 0)) {
1237 tmp_cc
= ORQI (ANDQI (tmp_cc
, 7), 4);
1239 if (LTSI (tmp_tmp
, 0)) {
1240 tmp_cc
= ORQI (ANDQI (tmp_cc
, 11), 8);
1242 tmp_cc
= ANDQI (tmp_cc
, 3);
1247 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[FLD (f_ICCi_1
)]), opval
);
1248 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
1256 /* smulcc: smulcc$pack $GRi,$GRj,$GRdoublek,$ICCi_1 */
1259 SEM_FN_NAME (frvbf
,smulcc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1261 #define FLD(f) abuf->fields.sfmt_smulcc.f
1262 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1263 int UNUSED written
= 0;
1264 IADDR UNUSED pc
= abuf
->addr
;
1265 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
1270 tmp_cc
= CPU (h_iccr
[FLD (f_ICCi_1
)]);
1271 tmp_tmp
= MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi
))), EXTSIDI (GET_H_GR (FLD (f_GRj
))));
1272 if (EQDI (SRLDI (tmp_tmp
, 63), 0)) {
1273 tmp_cc
= ANDQI (tmp_cc
, 7);
1275 tmp_cc
= ORQI (tmp_cc
, 8);
1277 if (EQBI (EQDI (tmp_tmp
, 0), 0)) {
1278 tmp_cc
= ANDQI (tmp_cc
, 11);
1280 tmp_cc
= ORQI (tmp_cc
, 4);
1284 sim_queue_fn_di_write (current_cpu
, frvbf_h_gr_double_set
, FLD (f_GRk
), opval
);
1285 TRACE_RESULT (current_cpu
, abuf
, "gr_double", 'D', opval
);
1289 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[FLD (f_ICCi_1
)]), opval
);
1290 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
1298 /* umulcc: umulcc$pack $GRi,$GRj,$GRdoublek,$ICCi_1 */
1301 SEM_FN_NAME (frvbf
,umulcc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1303 #define FLD(f) abuf->fields.sfmt_smulcc.f
1304 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1305 int UNUSED written
= 0;
1306 IADDR UNUSED pc
= abuf
->addr
;
1307 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
1312 tmp_cc
= CPU (h_iccr
[FLD (f_ICCi_1
)]);
1313 tmp_tmp
= MULDI (ZEXTSIDI (GET_H_GR (FLD (f_GRi
))), ZEXTSIDI (GET_H_GR (FLD (f_GRj
))));
1314 if (EQDI (SRLDI (tmp_tmp
, 63), 0)) {
1315 tmp_cc
= ANDQI (tmp_cc
, 7);
1317 tmp_cc
= ORQI (tmp_cc
, 8);
1319 if (EQBI (EQDI (tmp_tmp
, 0), 0)) {
1320 tmp_cc
= ANDQI (tmp_cc
, 11);
1322 tmp_cc
= ORQI (tmp_cc
, 4);
1326 sim_queue_fn_di_write (current_cpu
, frvbf_h_gr_double_set
, FLD (f_GRk
), opval
);
1327 TRACE_RESULT (current_cpu
, abuf
, "gr_double", 'D', opval
);
1331 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[FLD (f_ICCi_1
)]), opval
);
1332 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
1340 /* caddcc: caddcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1343 SEM_FN_NAME (frvbf
,caddcc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1345 #define FLD(f) abuf->fields.sfmt_caddcc.f
1346 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1347 int UNUSED written
= 0;
1348 IADDR UNUSED pc
= abuf
->addr
;
1349 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
1351 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
1356 tmp_cc
= CPU (h_iccr
[((FLD (f_CCi
)) & (3))]);
1357 tmp_tmp
= ADDOFSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)), 0);
1358 if (EQBI (tmp_tmp
, 0)) {
1359 tmp_cc
= ANDQI (tmp_cc
, 13);
1361 tmp_cc
= ORQI (tmp_cc
, 2);
1363 tmp_tmp
= ADDCFSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)), 0);
1364 if (EQBI (tmp_tmp
, 0)) {
1365 tmp_cc
= ANDQI (tmp_cc
, 14);
1367 tmp_cc
= ORQI (tmp_cc
, 1);
1369 tmp_result
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
1370 if (EQSI (tmp_result
, 0)) {
1371 tmp_cc
= ORQI (ANDQI (tmp_cc
, 7), 4);
1373 if (LTSI (tmp_result
, 0)) {
1374 tmp_cc
= ORQI (ANDQI (tmp_cc
, 11), 8);
1376 tmp_cc
= ANDQI (tmp_cc
, 3);
1380 SI opval
= tmp_result
;
1381 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
1382 written
|= (1 << 6);
1383 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
1387 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[((FLD (f_CCi
)) & (3))]), opval
);
1388 written
|= (1 << 7);
1389 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
1394 abuf
->written
= written
;
1399 /* csubcc: csubcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1402 SEM_FN_NAME (frvbf
,csubcc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1404 #define FLD(f) abuf->fields.sfmt_caddcc.f
1405 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1406 int UNUSED written
= 0;
1407 IADDR UNUSED pc
= abuf
->addr
;
1408 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
1410 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
1415 tmp_cc
= CPU (h_iccr
[((FLD (f_CCi
)) & (3))]);
1416 tmp_tmp
= SUBOFSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)), 0);
1417 if (EQBI (tmp_tmp
, 0)) {
1418 tmp_cc
= ANDQI (tmp_cc
, 13);
1420 tmp_cc
= ORQI (tmp_cc
, 2);
1422 tmp_tmp
= SUBCFSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)), 0);
1423 if (EQBI (tmp_tmp
, 0)) {
1424 tmp_cc
= ANDQI (tmp_cc
, 14);
1426 tmp_cc
= ORQI (tmp_cc
, 1);
1428 tmp_result
= SUBSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
1429 if (EQSI (tmp_result
, 0)) {
1430 tmp_cc
= ORQI (ANDQI (tmp_cc
, 7), 4);
1432 if (LTSI (tmp_result
, 0)) {
1433 tmp_cc
= ORQI (ANDQI (tmp_cc
, 11), 8);
1435 tmp_cc
= ANDQI (tmp_cc
, 3);
1439 SI opval
= tmp_result
;
1440 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
1441 written
|= (1 << 6);
1442 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
1446 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[((FLD (f_CCi
)) & (3))]), opval
);
1447 written
|= (1 << 7);
1448 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
1453 abuf
->written
= written
;
1458 /* csmulcc: csmulcc$pack $GRi,$GRj,$GRdoublek,$CCi,$cond */
1461 SEM_FN_NAME (frvbf
,csmulcc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1463 #define FLD(f) abuf->fields.sfmt_csmulcc.f
1464 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1465 int UNUSED written
= 0;
1466 IADDR UNUSED pc
= abuf
->addr
;
1467 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
1469 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
1473 tmp_cc
= CPU (h_iccr
[((FLD (f_CCi
)) & (3))]);
1474 tmp_tmp
= MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi
))), EXTSIDI (GET_H_GR (FLD (f_GRj
))));
1475 if (EQDI (SRLDI (tmp_tmp
, 63), 0)) {
1476 tmp_cc
= ANDQI (tmp_cc
, 7);
1478 tmp_cc
= ORQI (tmp_cc
, 8);
1480 if (EQBI (EQDI (tmp_tmp
, 0), 0)) {
1481 tmp_cc
= ANDQI (tmp_cc
, 11);
1483 tmp_cc
= ORQI (tmp_cc
, 4);
1487 sim_queue_fn_di_write (current_cpu
, frvbf_h_gr_double_set
, FLD (f_GRk
), opval
);
1488 written
|= (1 << 6);
1489 TRACE_RESULT (current_cpu
, abuf
, "gr_double", 'D', opval
);
1493 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[((FLD (f_CCi
)) & (3))]), opval
);
1494 written
|= (1 << 7);
1495 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
1500 abuf
->written
= written
;
1505 /* candcc: candcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1508 SEM_FN_NAME (frvbf
,candcc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1510 #define FLD(f) abuf->fields.sfmt_caddcc.f
1511 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1512 int UNUSED written
= 0;
1513 IADDR UNUSED pc
= abuf
->addr
;
1514 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
1516 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
1519 tmp_tmp
= ANDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
1522 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
1523 written
|= (1 << 6);
1524 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
1526 if (EQSI (tmp_tmp
, 0)) {
1528 UQI opval
= ORQI (ANDQI (CPU (h_iccr
[((FLD (f_CCi
)) & (3))]), 7), 4);
1529 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[((FLD (f_CCi
)) & (3))]), opval
);
1530 written
|= (1 << 7);
1531 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
1534 if (LTSI (tmp_tmp
, 0)) {
1536 UQI opval
= ORQI (ANDQI (CPU (h_iccr
[((FLD (f_CCi
)) & (3))]), 11), 8);
1537 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[((FLD (f_CCi
)) & (3))]), opval
);
1538 written
|= (1 << 7);
1539 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
1543 UQI opval
= ANDQI (CPU (h_iccr
[((FLD (f_CCi
)) & (3))]), 3);
1544 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[((FLD (f_CCi
)) & (3))]), opval
);
1545 written
|= (1 << 7);
1546 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
1553 abuf
->written
= written
;
1558 /* corcc: corcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1561 SEM_FN_NAME (frvbf
,corcc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1563 #define FLD(f) abuf->fields.sfmt_caddcc.f
1564 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1565 int UNUSED written
= 0;
1566 IADDR UNUSED pc
= abuf
->addr
;
1567 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
1569 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
1572 tmp_tmp
= ORSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
1575 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
1576 written
|= (1 << 6);
1577 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
1579 if (EQSI (tmp_tmp
, 0)) {
1581 UQI opval
= ORQI (ANDQI (CPU (h_iccr
[((FLD (f_CCi
)) & (3))]), 7), 4);
1582 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[((FLD (f_CCi
)) & (3))]), opval
);
1583 written
|= (1 << 7);
1584 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
1587 if (LTSI (tmp_tmp
, 0)) {
1589 UQI opval
= ORQI (ANDQI (CPU (h_iccr
[((FLD (f_CCi
)) & (3))]), 11), 8);
1590 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[((FLD (f_CCi
)) & (3))]), opval
);
1591 written
|= (1 << 7);
1592 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
1596 UQI opval
= ANDQI (CPU (h_iccr
[((FLD (f_CCi
)) & (3))]), 3);
1597 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[((FLD (f_CCi
)) & (3))]), opval
);
1598 written
|= (1 << 7);
1599 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
1606 abuf
->written
= written
;
1611 /* cxorcc: cxorcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1614 SEM_FN_NAME (frvbf
,cxorcc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1616 #define FLD(f) abuf->fields.sfmt_caddcc.f
1617 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1618 int UNUSED written
= 0;
1619 IADDR UNUSED pc
= abuf
->addr
;
1620 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
1622 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
1625 tmp_tmp
= XORSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
1628 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
1629 written
|= (1 << 6);
1630 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
1632 if (EQSI (tmp_tmp
, 0)) {
1634 UQI opval
= ORQI (ANDQI (CPU (h_iccr
[((FLD (f_CCi
)) & (3))]), 7), 4);
1635 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[((FLD (f_CCi
)) & (3))]), opval
);
1636 written
|= (1 << 7);
1637 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
1640 if (LTSI (tmp_tmp
, 0)) {
1642 UQI opval
= ORQI (ANDQI (CPU (h_iccr
[((FLD (f_CCi
)) & (3))]), 11), 8);
1643 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[((FLD (f_CCi
)) & (3))]), opval
);
1644 written
|= (1 << 7);
1645 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
1649 UQI opval
= ANDQI (CPU (h_iccr
[((FLD (f_CCi
)) & (3))]), 3);
1650 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[((FLD (f_CCi
)) & (3))]), opval
);
1651 written
|= (1 << 7);
1652 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
1659 abuf
->written
= written
;
1664 /* csllcc: csllcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1667 SEM_FN_NAME (frvbf
,csllcc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1669 #define FLD(f) abuf->fields.sfmt_caddcc.f
1670 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1671 int UNUSED written
= 0;
1672 IADDR UNUSED pc
= abuf
->addr
;
1673 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
1675 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
1680 tmp_shift
= ANDSI (GET_H_GR (FLD (f_GRj
)), 31);
1681 tmp_cc
= frvbf_set_icc_for_shift_left (current_cpu
, GET_H_GR (FLD (f_GRi
)), tmp_shift
, CPU (h_iccr
[((FLD (f_CCi
)) & (3))]));
1682 tmp_tmp
= SLLSI (GET_H_GR (FLD (f_GRi
)), tmp_shift
);
1685 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
1686 written
|= (1 << 6);
1687 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
1689 if (EQSI (tmp_tmp
, 0)) {
1690 tmp_cc
= ORQI (ANDQI (tmp_cc
, 7), 4);
1692 if (LTSI (tmp_tmp
, 0)) {
1693 tmp_cc
= ORQI (ANDQI (tmp_cc
, 11), 8);
1695 tmp_cc
= ANDQI (tmp_cc
, 3);
1700 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[((FLD (f_CCi
)) & (3))]), opval
);
1701 written
|= (1 << 7);
1702 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
1707 abuf
->written
= written
;
1712 /* csrlcc: csrlcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1715 SEM_FN_NAME (frvbf
,csrlcc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1717 #define FLD(f) abuf->fields.sfmt_caddcc.f
1718 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1719 int UNUSED written
= 0;
1720 IADDR UNUSED pc
= abuf
->addr
;
1721 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
1723 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
1728 tmp_shift
= ANDSI (GET_H_GR (FLD (f_GRj
)), 31);
1729 tmp_cc
= frvbf_set_icc_for_shift_right (current_cpu
, GET_H_GR (FLD (f_GRi
)), tmp_shift
, CPU (h_iccr
[((FLD (f_CCi
)) & (3))]));
1730 tmp_tmp
= SRLSI (GET_H_GR (FLD (f_GRi
)), tmp_shift
);
1733 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
1734 written
|= (1 << 6);
1735 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
1737 if (EQSI (tmp_tmp
, 0)) {
1738 tmp_cc
= ORQI (ANDQI (tmp_cc
, 7), 4);
1740 if (LTSI (tmp_tmp
, 0)) {
1741 tmp_cc
= ORQI (ANDQI (tmp_cc
, 11), 8);
1743 tmp_cc
= ANDQI (tmp_cc
, 3);
1748 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[((FLD (f_CCi
)) & (3))]), opval
);
1749 written
|= (1 << 7);
1750 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
1755 abuf
->written
= written
;
1760 /* csracc: csracc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1763 SEM_FN_NAME (frvbf
,csracc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1765 #define FLD(f) abuf->fields.sfmt_caddcc.f
1766 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1767 int UNUSED written
= 0;
1768 IADDR UNUSED pc
= abuf
->addr
;
1769 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
1771 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
1776 tmp_shift
= ANDSI (GET_H_GR (FLD (f_GRj
)), 31);
1777 tmp_cc
= frvbf_set_icc_for_shift_right (current_cpu
, GET_H_GR (FLD (f_GRi
)), tmp_shift
, CPU (h_iccr
[((FLD (f_CCi
)) & (3))]));
1778 tmp_tmp
= SRASI (GET_H_GR (FLD (f_GRi
)), tmp_shift
);
1781 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
1782 written
|= (1 << 6);
1783 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
1785 if (EQSI (tmp_tmp
, 0)) {
1786 tmp_cc
= ORQI (ANDQI (tmp_cc
, 7), 4);
1788 if (LTSI (tmp_tmp
, 0)) {
1789 tmp_cc
= ORQI (ANDQI (tmp_cc
, 11), 8);
1791 tmp_cc
= ANDQI (tmp_cc
, 3);
1796 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[((FLD (f_CCi
)) & (3))]), opval
);
1797 written
|= (1 << 7);
1798 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
1803 abuf
->written
= written
;
1808 /* addx: addx$pack $GRi,$GRj,$GRk,$ICCi_1 */
1811 SEM_FN_NAME (frvbf
,addx
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1813 #define FLD(f) abuf->fields.sfmt_addcc.f
1814 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1815 int UNUSED written
= 0;
1816 IADDR UNUSED pc
= abuf
->addr
;
1817 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
1820 SI opval
= ADDCSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)), TRUNCQIBI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_1
)]), 1)));
1821 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
1822 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
1829 /* subx: subx$pack $GRi,$GRj,$GRk,$ICCi_1 */
1832 SEM_FN_NAME (frvbf
,subx
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1834 #define FLD(f) abuf->fields.sfmt_addcc.f
1835 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1836 int UNUSED written
= 0;
1837 IADDR UNUSED pc
= abuf
->addr
;
1838 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
1841 SI opval
= SUBCSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)), TRUNCQIBI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_1
)]), 1)));
1842 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
1843 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
1850 /* addxcc: addxcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1853 SEM_FN_NAME (frvbf
,addxcc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1855 #define FLD(f) abuf->fields.sfmt_addcc.f
1856 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1857 int UNUSED written
= 0;
1858 IADDR UNUSED pc
= abuf
->addr
;
1859 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
1864 tmp_cc
= CPU (h_iccr
[FLD (f_ICCi_1
)]);
1865 tmp_tmp
= ADDCSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)), TRUNCQIBI (ANDQI (tmp_cc
, 1)));
1866 if (EQSI (ADDOFSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)), TRUNCQIBI (ANDQI (tmp_cc
, 1))), 0)) {
1867 tmp_cc
= ANDQI (tmp_cc
, 13);
1869 tmp_cc
= ORQI (tmp_cc
, 2);
1871 if (EQSI (ADDCFSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)), TRUNCQIBI (ANDQI (tmp_cc
, 1))), 0)) {
1872 tmp_cc
= ANDQI (tmp_cc
, 14);
1874 tmp_cc
= ORQI (tmp_cc
, 1);
1876 if (EQSI (tmp_tmp
, 0)) {
1877 tmp_cc
= ORQI (ANDQI (tmp_cc
, 7), 4);
1879 if (LTSI (tmp_tmp
, 0)) {
1880 tmp_cc
= ORQI (ANDQI (tmp_cc
, 11), 8);
1882 tmp_cc
= ANDQI (tmp_cc
, 3);
1887 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
1888 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
1892 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[FLD (f_ICCi_1
)]), opval
);
1893 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
1901 /* subxcc: subxcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1904 SEM_FN_NAME (frvbf
,subxcc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1906 #define FLD(f) abuf->fields.sfmt_addcc.f
1907 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1908 int UNUSED written
= 0;
1909 IADDR UNUSED pc
= abuf
->addr
;
1910 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
1915 tmp_cc
= CPU (h_iccr
[FLD (f_ICCi_1
)]);
1916 tmp_tmp
= SUBCSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)), TRUNCQIBI (ANDQI (tmp_cc
, 1)));
1917 if (EQSI (SUBOFSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)), TRUNCQIBI (ANDQI (tmp_cc
, 1))), 0)) {
1918 tmp_cc
= ANDQI (tmp_cc
, 13);
1920 tmp_cc
= ORQI (tmp_cc
, 2);
1922 if (EQSI (SUBCFSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)), TRUNCQIBI (ANDQI (tmp_cc
, 1))), 0)) {
1923 tmp_cc
= ANDQI (tmp_cc
, 14);
1925 tmp_cc
= ORQI (tmp_cc
, 1);
1927 if (EQSI (tmp_tmp
, 0)) {
1928 tmp_cc
= ORQI (ANDQI (tmp_cc
, 7), 4);
1930 if (LTSI (tmp_tmp
, 0)) {
1931 tmp_cc
= ORQI (ANDQI (tmp_cc
, 11), 8);
1933 tmp_cc
= ANDQI (tmp_cc
, 3);
1938 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
1939 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
1943 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[FLD (f_ICCi_1
)]), opval
);
1944 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
1952 /* addi: addi$pack $GRi,$s12,$GRk */
1955 SEM_FN_NAME (frvbf
,addi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1957 #define FLD(f) abuf->fields.sfmt_swapi.f
1958 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1959 int UNUSED written
= 0;
1960 IADDR UNUSED pc
= abuf
->addr
;
1961 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
1964 SI opval
= ADDSI (GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
1965 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
1966 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
1973 /* subi: subi$pack $GRi,$s12,$GRk */
1976 SEM_FN_NAME (frvbf
,subi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1978 #define FLD(f) abuf->fields.sfmt_swapi.f
1979 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1980 int UNUSED written
= 0;
1981 IADDR UNUSED pc
= abuf
->addr
;
1982 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
1985 SI opval
= SUBSI (GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
1986 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
1987 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
1994 /* andi: andi$pack $GRi,$s12,$GRk */
1997 SEM_FN_NAME (frvbf
,andi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1999 #define FLD(f) abuf->fields.sfmt_swapi.f
2000 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2001 int UNUSED written
= 0;
2002 IADDR UNUSED pc
= abuf
->addr
;
2003 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2006 SI opval
= ANDSI (GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
2007 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
2008 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
2015 /* ori: ori$pack $GRi,$s12,$GRk */
2018 SEM_FN_NAME (frvbf
,ori
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2020 #define FLD(f) abuf->fields.sfmt_swapi.f
2021 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2022 int UNUSED written
= 0;
2023 IADDR UNUSED pc
= abuf
->addr
;
2024 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2027 SI opval
= ORSI (GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
2028 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
2029 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
2036 /* xori: xori$pack $GRi,$s12,$GRk */
2039 SEM_FN_NAME (frvbf
,xori
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2041 #define FLD(f) abuf->fields.sfmt_swapi.f
2042 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2043 int UNUSED written
= 0;
2044 IADDR UNUSED pc
= abuf
->addr
;
2045 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2048 SI opval
= XORSI (GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
2049 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
2050 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
2057 /* sdivi: sdivi$pack $GRi,$s12,$GRk */
2060 SEM_FN_NAME (frvbf
,sdivi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2062 #define FLD(f) abuf->fields.sfmt_swapi.f
2063 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2064 int UNUSED written
= 0;
2065 IADDR UNUSED pc
= abuf
->addr
;
2066 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2069 frvbf_signed_integer_divide (current_cpu
, GET_H_GR (FLD (f_GRi
)), FLD (f_d12
), FLD (f_GRk
), 0);
2077 /* nsdivi: nsdivi$pack $GRi,$s12,$GRk */
2080 SEM_FN_NAME (frvbf
,nsdivi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2082 #define FLD(f) abuf->fields.sfmt_swapi.f
2083 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2084 int UNUSED written
= 0;
2085 IADDR UNUSED pc
= abuf
->addr
;
2086 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2089 frvbf_signed_integer_divide (current_cpu
, GET_H_GR (FLD (f_GRi
)), FLD (f_d12
), FLD (f_GRk
), 1);
2097 /* udivi: udivi$pack $GRi,$s12,$GRk */
2100 SEM_FN_NAME (frvbf
,udivi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2102 #define FLD(f) abuf->fields.sfmt_swapi.f
2103 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2104 int UNUSED written
= 0;
2105 IADDR UNUSED pc
= abuf
->addr
;
2106 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2109 frvbf_unsigned_integer_divide (current_cpu
, GET_H_GR (FLD (f_GRi
)), FLD (f_d12
), FLD (f_GRk
), 0);
2117 /* nudivi: nudivi$pack $GRi,$s12,$GRk */
2120 SEM_FN_NAME (frvbf
,nudivi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2122 #define FLD(f) abuf->fields.sfmt_swapi.f
2123 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2124 int UNUSED written
= 0;
2125 IADDR UNUSED pc
= abuf
->addr
;
2126 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2129 frvbf_unsigned_integer_divide (current_cpu
, GET_H_GR (FLD (f_GRi
)), FLD (f_d12
), FLD (f_GRk
), 1);
2137 /* smuli: smuli$pack $GRi,$s12,$GRdoublek */
2140 SEM_FN_NAME (frvbf
,smuli
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2142 #define FLD(f) abuf->fields.sfmt_smuli.f
2143 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2144 int UNUSED written
= 0;
2145 IADDR UNUSED pc
= abuf
->addr
;
2146 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2149 DI opval
= MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi
))), EXTSIDI (FLD (f_d12
)));
2150 sim_queue_fn_di_write (current_cpu
, frvbf_h_gr_double_set
, FLD (f_GRk
), opval
);
2151 TRACE_RESULT (current_cpu
, abuf
, "gr_double", 'D', opval
);
2158 /* umuli: umuli$pack $GRi,$s12,$GRdoublek */
2161 SEM_FN_NAME (frvbf
,umuli
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2163 #define FLD(f) abuf->fields.sfmt_smuli.f
2164 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2165 int UNUSED written
= 0;
2166 IADDR UNUSED pc
= abuf
->addr
;
2167 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2170 DI opval
= MULDI (ZEXTSIDI (GET_H_GR (FLD (f_GRi
))), ZEXTSIDI (FLD (f_d12
)));
2171 sim_queue_fn_di_write (current_cpu
, frvbf_h_gr_double_set
, FLD (f_GRk
), opval
);
2172 TRACE_RESULT (current_cpu
, abuf
, "gr_double", 'D', opval
);
2179 /* slli: slli$pack $GRi,$s12,$GRk */
2182 SEM_FN_NAME (frvbf
,slli
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2184 #define FLD(f) abuf->fields.sfmt_swapi.f
2185 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2186 int UNUSED written
= 0;
2187 IADDR UNUSED pc
= abuf
->addr
;
2188 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2191 SI opval
= SLLSI (GET_H_GR (FLD (f_GRi
)), ANDSI (FLD (f_d12
), 31));
2192 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
2193 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
2200 /* srli: srli$pack $GRi,$s12,$GRk */
2203 SEM_FN_NAME (frvbf
,srli
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2205 #define FLD(f) abuf->fields.sfmt_swapi.f
2206 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2207 int UNUSED written
= 0;
2208 IADDR UNUSED pc
= abuf
->addr
;
2209 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2212 SI opval
= SRLSI (GET_H_GR (FLD (f_GRi
)), ANDSI (FLD (f_d12
), 31));
2213 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
2214 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
2221 /* srai: srai$pack $GRi,$s12,$GRk */
2224 SEM_FN_NAME (frvbf
,srai
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2226 #define FLD(f) abuf->fields.sfmt_swapi.f
2227 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2228 int UNUSED written
= 0;
2229 IADDR UNUSED pc
= abuf
->addr
;
2230 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2233 SI opval
= SRASI (GET_H_GR (FLD (f_GRi
)), ANDSI (FLD (f_d12
), 31));
2234 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
2235 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
2242 /* scani: scani$pack $GRi,$s12,$GRk */
2245 SEM_FN_NAME (frvbf
,scani
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2247 #define FLD(f) abuf->fields.sfmt_swapi.f
2248 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2249 int UNUSED written
= 0;
2250 IADDR UNUSED pc
= abuf
->addr
;
2251 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2256 tmp_tmp1
= GET_H_GR (FLD (f_GRi
));
2257 tmp_tmp2
= SRASI (FLD (f_d12
), 1);
2259 SI opval
= frvbf_scan_result (current_cpu
, XORSI (tmp_tmp1
, tmp_tmp2
));
2260 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
2261 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
2269 /* addicc: addicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2272 SEM_FN_NAME (frvbf
,addicc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2274 #define FLD(f) abuf->fields.sfmt_addicc.f
2275 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2276 int UNUSED written
= 0;
2277 IADDR UNUSED pc
= abuf
->addr
;
2278 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2284 tmp_cc
= CPU (h_iccr
[FLD (f_ICCi_1
)]);
2285 tmp_tmp
= ADDOFSI (GET_H_GR (FLD (f_GRi
)), FLD (f_s10
), 0);
2286 if (EQBI (tmp_tmp
, 0)) {
2287 tmp_cc
= ANDQI (tmp_cc
, 13);
2289 tmp_cc
= ORQI (tmp_cc
, 2);
2291 tmp_tmp
= ADDCFSI (GET_H_GR (FLD (f_GRi
)), FLD (f_s10
), 0);
2292 if (EQBI (tmp_tmp
, 0)) {
2293 tmp_cc
= ANDQI (tmp_cc
, 14);
2295 tmp_cc
= ORQI (tmp_cc
, 1);
2297 tmp_result
= ADDSI (GET_H_GR (FLD (f_GRi
)), FLD (f_s10
));
2298 if (EQSI (tmp_result
, 0)) {
2299 tmp_cc
= ORQI (ANDQI (tmp_cc
, 7), 4);
2301 if (LTSI (tmp_result
, 0)) {
2302 tmp_cc
= ORQI (ANDQI (tmp_cc
, 11), 8);
2304 tmp_cc
= ANDQI (tmp_cc
, 3);
2308 SI opval
= tmp_result
;
2309 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
2310 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
2314 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[FLD (f_ICCi_1
)]), opval
);
2315 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
2323 /* subicc: subicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2326 SEM_FN_NAME (frvbf
,subicc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2328 #define FLD(f) abuf->fields.sfmt_addicc.f
2329 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2330 int UNUSED written
= 0;
2331 IADDR UNUSED pc
= abuf
->addr
;
2332 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2338 tmp_cc
= CPU (h_iccr
[FLD (f_ICCi_1
)]);
2339 tmp_tmp
= SUBOFSI (GET_H_GR (FLD (f_GRi
)), FLD (f_s10
), 0);
2340 if (EQBI (tmp_tmp
, 0)) {
2341 tmp_cc
= ANDQI (tmp_cc
, 13);
2343 tmp_cc
= ORQI (tmp_cc
, 2);
2345 tmp_tmp
= SUBCFSI (GET_H_GR (FLD (f_GRi
)), FLD (f_s10
), 0);
2346 if (EQBI (tmp_tmp
, 0)) {
2347 tmp_cc
= ANDQI (tmp_cc
, 14);
2349 tmp_cc
= ORQI (tmp_cc
, 1);
2351 tmp_result
= SUBSI (GET_H_GR (FLD (f_GRi
)), FLD (f_s10
));
2352 if (EQSI (tmp_result
, 0)) {
2353 tmp_cc
= ORQI (ANDQI (tmp_cc
, 7), 4);
2355 if (LTSI (tmp_result
, 0)) {
2356 tmp_cc
= ORQI (ANDQI (tmp_cc
, 11), 8);
2358 tmp_cc
= ANDQI (tmp_cc
, 3);
2362 SI opval
= tmp_result
;
2363 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
2364 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
2368 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[FLD (f_ICCi_1
)]), opval
);
2369 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
2377 /* andicc: andicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2380 SEM_FN_NAME (frvbf
,andicc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2382 #define FLD(f) abuf->fields.sfmt_addicc.f
2383 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2384 int UNUSED written
= 0;
2385 IADDR UNUSED pc
= abuf
->addr
;
2386 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2390 tmp_tmp
= ANDSI (GET_H_GR (FLD (f_GRi
)), FLD (f_s10
));
2393 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
2394 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
2396 if (EQSI (tmp_tmp
, 0)) {
2398 UQI opval
= ORQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_1
)]), 7), 4);
2399 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[FLD (f_ICCi_1
)]), opval
);
2400 written
|= (1 << 4);
2401 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
2404 if (LTSI (tmp_tmp
, 0)) {
2406 UQI opval
= ORQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_1
)]), 11), 8);
2407 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[FLD (f_ICCi_1
)]), opval
);
2408 written
|= (1 << 4);
2409 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
2413 UQI opval
= ANDQI (CPU (h_iccr
[FLD (f_ICCi_1
)]), 3);
2414 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[FLD (f_ICCi_1
)]), opval
);
2415 written
|= (1 << 4);
2416 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
2422 abuf
->written
= written
;
2427 /* oricc: oricc$pack $GRi,$s10,$GRk,$ICCi_1 */
2430 SEM_FN_NAME (frvbf
,oricc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2432 #define FLD(f) abuf->fields.sfmt_addicc.f
2433 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2434 int UNUSED written
= 0;
2435 IADDR UNUSED pc
= abuf
->addr
;
2436 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2440 tmp_tmp
= ORSI (GET_H_GR (FLD (f_GRi
)), FLD (f_s10
));
2443 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
2444 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
2446 if (EQSI (tmp_tmp
, 0)) {
2448 UQI opval
= ORQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_1
)]), 7), 4);
2449 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[FLD (f_ICCi_1
)]), opval
);
2450 written
|= (1 << 4);
2451 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
2454 if (LTSI (tmp_tmp
, 0)) {
2456 UQI opval
= ORQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_1
)]), 11), 8);
2457 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[FLD (f_ICCi_1
)]), opval
);
2458 written
|= (1 << 4);
2459 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
2463 UQI opval
= ANDQI (CPU (h_iccr
[FLD (f_ICCi_1
)]), 3);
2464 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[FLD (f_ICCi_1
)]), opval
);
2465 written
|= (1 << 4);
2466 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
2472 abuf
->written
= written
;
2477 /* xoricc: xoricc$pack $GRi,$s10,$GRk,$ICCi_1 */
2480 SEM_FN_NAME (frvbf
,xoricc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2482 #define FLD(f) abuf->fields.sfmt_addicc.f
2483 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2484 int UNUSED written
= 0;
2485 IADDR UNUSED pc
= abuf
->addr
;
2486 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2490 tmp_tmp
= XORSI (GET_H_GR (FLD (f_GRi
)), FLD (f_s10
));
2493 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
2494 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
2496 if (EQSI (tmp_tmp
, 0)) {
2498 UQI opval
= ORQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_1
)]), 7), 4);
2499 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[FLD (f_ICCi_1
)]), opval
);
2500 written
|= (1 << 4);
2501 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
2504 if (LTSI (tmp_tmp
, 0)) {
2506 UQI opval
= ORQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_1
)]), 11), 8);
2507 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[FLD (f_ICCi_1
)]), opval
);
2508 written
|= (1 << 4);
2509 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
2513 UQI opval
= ANDQI (CPU (h_iccr
[FLD (f_ICCi_1
)]), 3);
2514 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[FLD (f_ICCi_1
)]), opval
);
2515 written
|= (1 << 4);
2516 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
2522 abuf
->written
= written
;
2527 /* smulicc: smulicc$pack $GRi,$s10,$GRdoublek,$ICCi_1 */
2530 SEM_FN_NAME (frvbf
,smulicc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2532 #define FLD(f) abuf->fields.sfmt_smulicc.f
2533 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2534 int UNUSED written
= 0;
2535 IADDR UNUSED pc
= abuf
->addr
;
2536 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2541 tmp_cc
= CPU (h_iccr
[FLD (f_ICCi_1
)]);
2542 tmp_tmp
= MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi
))), EXTSIDI (FLD (f_s10
)));
2543 if (EQDI (SRLDI (tmp_tmp
, 63), 0)) {
2544 tmp_cc
= ANDQI (tmp_cc
, 7);
2546 tmp_cc
= ORQI (tmp_cc
, 8);
2548 if (EQBI (EQDI (tmp_tmp
, 0), 0)) {
2549 tmp_cc
= ANDQI (tmp_cc
, 11);
2551 tmp_cc
= ORQI (tmp_cc
, 4);
2555 sim_queue_fn_di_write (current_cpu
, frvbf_h_gr_double_set
, FLD (f_GRk
), opval
);
2556 TRACE_RESULT (current_cpu
, abuf
, "gr_double", 'D', opval
);
2560 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[FLD (f_ICCi_1
)]), opval
);
2561 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
2569 /* umulicc: umulicc$pack $GRi,$s10,$GRdoublek,$ICCi_1 */
2572 SEM_FN_NAME (frvbf
,umulicc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2574 #define FLD(f) abuf->fields.sfmt_smulicc.f
2575 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2576 int UNUSED written
= 0;
2577 IADDR UNUSED pc
= abuf
->addr
;
2578 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2583 tmp_cc
= CPU (h_iccr
[FLD (f_ICCi_1
)]);
2584 tmp_tmp
= MULDI (ZEXTSIDI (GET_H_GR (FLD (f_GRi
))), ZEXTSIDI (FLD (f_s10
)));
2585 if (EQDI (SRLDI (tmp_tmp
, 63), 0)) {
2586 tmp_cc
= ANDQI (tmp_cc
, 7);
2588 tmp_cc
= ORQI (tmp_cc
, 8);
2590 if (EQBI (EQDI (tmp_tmp
, 0), 0)) {
2591 tmp_cc
= ANDQI (tmp_cc
, 11);
2593 tmp_cc
= ORQI (tmp_cc
, 4);
2597 sim_queue_fn_di_write (current_cpu
, frvbf_h_gr_double_set
, FLD (f_GRk
), opval
);
2598 TRACE_RESULT (current_cpu
, abuf
, "gr_double", 'D', opval
);
2602 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[FLD (f_ICCi_1
)]), opval
);
2603 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
2611 /* sllicc: sllicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2614 SEM_FN_NAME (frvbf
,sllicc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2616 #define FLD(f) abuf->fields.sfmt_addicc.f
2617 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2618 int UNUSED written
= 0;
2619 IADDR UNUSED pc
= abuf
->addr
;
2620 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2626 tmp_shift
= ANDSI (FLD (f_s10
), 31);
2627 tmp_cc
= frvbf_set_icc_for_shift_left (current_cpu
, GET_H_GR (FLD (f_GRi
)), tmp_shift
, CPU (h_iccr
[FLD (f_ICCi_1
)]));
2628 tmp_tmp
= SLLSI (GET_H_GR (FLD (f_GRi
)), tmp_shift
);
2631 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
2632 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
2634 if (EQSI (tmp_tmp
, 0)) {
2635 tmp_cc
= ORQI (ANDQI (tmp_cc
, 7), 4);
2637 if (LTSI (tmp_tmp
, 0)) {
2638 tmp_cc
= ORQI (ANDQI (tmp_cc
, 11), 8);
2640 tmp_cc
= ANDQI (tmp_cc
, 3);
2645 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[FLD (f_ICCi_1
)]), opval
);
2646 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
2654 /* srlicc: srlicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2657 SEM_FN_NAME (frvbf
,srlicc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2659 #define FLD(f) abuf->fields.sfmt_addicc.f
2660 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2661 int UNUSED written
= 0;
2662 IADDR UNUSED pc
= abuf
->addr
;
2663 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2669 tmp_shift
= ANDSI (FLD (f_s10
), 31);
2670 tmp_cc
= frvbf_set_icc_for_shift_right (current_cpu
, GET_H_GR (FLD (f_GRi
)), tmp_shift
, CPU (h_iccr
[FLD (f_ICCi_1
)]));
2671 tmp_tmp
= SRLSI (GET_H_GR (FLD (f_GRi
)), tmp_shift
);
2674 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
2675 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
2677 if (EQSI (tmp_tmp
, 0)) {
2678 tmp_cc
= ORQI (ANDQI (tmp_cc
, 7), 4);
2680 if (LTSI (tmp_tmp
, 0)) {
2681 tmp_cc
= ORQI (ANDQI (tmp_cc
, 11), 8);
2683 tmp_cc
= ANDQI (tmp_cc
, 3);
2688 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[FLD (f_ICCi_1
)]), opval
);
2689 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
2697 /* sraicc: sraicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2700 SEM_FN_NAME (frvbf
,sraicc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2702 #define FLD(f) abuf->fields.sfmt_addicc.f
2703 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2704 int UNUSED written
= 0;
2705 IADDR UNUSED pc
= abuf
->addr
;
2706 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2712 tmp_shift
= ANDSI (FLD (f_s10
), 31);
2713 tmp_cc
= frvbf_set_icc_for_shift_right (current_cpu
, GET_H_GR (FLD (f_GRi
)), tmp_shift
, CPU (h_iccr
[FLD (f_ICCi_1
)]));
2714 tmp_tmp
= SRASI (GET_H_GR (FLD (f_GRi
)), tmp_shift
);
2717 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
2718 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
2720 if (EQSI (tmp_tmp
, 0)) {
2721 tmp_cc
= ORQI (ANDQI (tmp_cc
, 7), 4);
2723 if (LTSI (tmp_tmp
, 0)) {
2724 tmp_cc
= ORQI (ANDQI (tmp_cc
, 11), 8);
2726 tmp_cc
= ANDQI (tmp_cc
, 3);
2731 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[FLD (f_ICCi_1
)]), opval
);
2732 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
2740 /* addxi: addxi$pack $GRi,$s10,$GRk,$ICCi_1 */
2743 SEM_FN_NAME (frvbf
,addxi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2745 #define FLD(f) abuf->fields.sfmt_addicc.f
2746 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2747 int UNUSED written
= 0;
2748 IADDR UNUSED pc
= abuf
->addr
;
2749 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2752 SI opval
= ADDCSI (GET_H_GR (FLD (f_GRi
)), FLD (f_s10
), TRUNCQIBI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_1
)]), 1)));
2753 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
2754 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
2761 /* subxi: subxi$pack $GRi,$s10,$GRk,$ICCi_1 */
2764 SEM_FN_NAME (frvbf
,subxi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2766 #define FLD(f) abuf->fields.sfmt_addicc.f
2767 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2768 int UNUSED written
= 0;
2769 IADDR UNUSED pc
= abuf
->addr
;
2770 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2773 SI opval
= SUBCSI (GET_H_GR (FLD (f_GRi
)), FLD (f_s10
), TRUNCQIBI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_1
)]), 1)));
2774 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
2775 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
2782 /* addxicc: addxicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2785 SEM_FN_NAME (frvbf
,addxicc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2787 #define FLD(f) abuf->fields.sfmt_addicc.f
2788 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2789 int UNUSED written
= 0;
2790 IADDR UNUSED pc
= abuf
->addr
;
2791 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2796 tmp_cc
= CPU (h_iccr
[FLD (f_ICCi_1
)]);
2797 tmp_tmp
= ADDCSI (GET_H_GR (FLD (f_GRi
)), FLD (f_s10
), TRUNCQIBI (ANDQI (tmp_cc
, 1)));
2798 if (EQSI (ADDOFSI (GET_H_GR (FLD (f_GRi
)), FLD (f_s10
), TRUNCQIBI (ANDQI (tmp_cc
, 1))), 0)) {
2799 tmp_cc
= ANDQI (tmp_cc
, 13);
2801 tmp_cc
= ORQI (tmp_cc
, 2);
2803 if (EQSI (ADDCFSI (GET_H_GR (FLD (f_GRi
)), FLD (f_s10
), TRUNCQIBI (ANDQI (tmp_cc
, 1))), 0)) {
2804 tmp_cc
= ANDQI (tmp_cc
, 14);
2806 tmp_cc
= ORQI (tmp_cc
, 1);
2808 if (EQSI (tmp_tmp
, 0)) {
2809 tmp_cc
= ORQI (ANDQI (tmp_cc
, 7), 4);
2811 if (LTSI (tmp_tmp
, 0)) {
2812 tmp_cc
= ORQI (ANDQI (tmp_cc
, 11), 8);
2814 tmp_cc
= ANDQI (tmp_cc
, 3);
2819 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
2820 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
2824 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[FLD (f_ICCi_1
)]), opval
);
2825 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
2833 /* subxicc: subxicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2836 SEM_FN_NAME (frvbf
,subxicc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2838 #define FLD(f) abuf->fields.sfmt_addicc.f
2839 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2840 int UNUSED written
= 0;
2841 IADDR UNUSED pc
= abuf
->addr
;
2842 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2847 tmp_cc
= CPU (h_iccr
[FLD (f_ICCi_1
)]);
2848 tmp_tmp
= SUBCSI (GET_H_GR (FLD (f_GRi
)), FLD (f_s10
), TRUNCQIBI (ANDQI (tmp_cc
, 1)));
2849 if (EQSI (SUBOFSI (GET_H_GR (FLD (f_GRi
)), FLD (f_s10
), TRUNCQIBI (ANDQI (tmp_cc
, 1))), 0)) {
2850 tmp_cc
= ANDQI (tmp_cc
, 13);
2852 tmp_cc
= ORQI (tmp_cc
, 2);
2854 if (EQSI (SUBCFSI (GET_H_GR (FLD (f_GRi
)), FLD (f_s10
), TRUNCQIBI (ANDQI (tmp_cc
, 1))), 0)) {
2855 tmp_cc
= ANDQI (tmp_cc
, 14);
2857 tmp_cc
= ORQI (tmp_cc
, 1);
2859 if (EQSI (tmp_tmp
, 0)) {
2860 tmp_cc
= ORQI (ANDQI (tmp_cc
, 7), 4);
2862 if (LTSI (tmp_tmp
, 0)) {
2863 tmp_cc
= ORQI (ANDQI (tmp_cc
, 11), 8);
2865 tmp_cc
= ANDQI (tmp_cc
, 3);
2870 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
2871 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
2875 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[FLD (f_ICCi_1
)]), opval
);
2876 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
2884 /* cmpb: cmpb$pack $GRi,$GRj,$ICCi_1 */
2887 SEM_FN_NAME (frvbf
,cmpb
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2889 #define FLD(f) abuf->fields.sfmt_smulcc.f
2890 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2891 int UNUSED written
= 0;
2892 IADDR UNUSED pc
= abuf
->addr
;
2893 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2897 if (EQBI (EQSI (ANDSI (GET_H_GR (FLD (f_GRi
)), 0xff000000), ANDSI (GET_H_GR (FLD (f_GRj
)), 0xff000000)), 0)) {
2898 tmp_cc
= ANDQI (tmp_cc
, 7);
2900 tmp_cc
= ORQI (tmp_cc
, 8);
2902 if (EQBI (EQSI (ANDSI (GET_H_GR (FLD (f_GRi
)), 16711680), ANDSI (GET_H_GR (FLD (f_GRj
)), 16711680)), 0)) {
2903 tmp_cc
= ANDQI (tmp_cc
, 11);
2905 tmp_cc
= ORQI (tmp_cc
, 4);
2907 if (EQBI (EQSI (ANDSI (GET_H_GR (FLD (f_GRi
)), 65280), ANDSI (GET_H_GR (FLD (f_GRj
)), 65280)), 0)) {
2908 tmp_cc
= ANDQI (tmp_cc
, 13);
2910 tmp_cc
= ORQI (tmp_cc
, 2);
2912 if (EQBI (EQSI (ANDSI (GET_H_GR (FLD (f_GRi
)), 255), ANDSI (GET_H_GR (FLD (f_GRj
)), 255)), 0)) {
2913 tmp_cc
= ANDQI (tmp_cc
, 14);
2915 tmp_cc
= ORQI (tmp_cc
, 1);
2919 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[FLD (f_ICCi_1
)]), opval
);
2920 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
2928 /* cmpba: cmpba$pack $GRi,$GRj,$ICCi_1 */
2931 SEM_FN_NAME (frvbf
,cmpba
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2933 #define FLD(f) abuf->fields.sfmt_smulcc.f
2934 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2935 int UNUSED written
= 0;
2936 IADDR UNUSED pc
= abuf
->addr
;
2937 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2942 if (EQBI (ORIF (EQSI (ANDSI (GET_H_GR (FLD (f_GRi
)), 0xff000000), ANDSI (GET_H_GR (FLD (f_GRj
)), 0xff000000)), ORIF (EQSI (ANDSI (GET_H_GR (FLD (f_GRi
)), 16711680), ANDSI (GET_H_GR (FLD (f_GRj
)), 16711680)), ORIF (EQSI (ANDSI (GET_H_GR (FLD (f_GRi
)), 65280), ANDSI (GET_H_GR (FLD (f_GRj
)), 65280)), EQSI (ANDSI (GET_H_GR (FLD (f_GRi
)), 255), ANDSI (GET_H_GR (FLD (f_GRj
)), 255))))), 0)) {
2943 tmp_cc
= ANDQI (tmp_cc
, 14);
2945 tmp_cc
= ORQI (tmp_cc
, 1);
2949 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[FLD (f_ICCi_1
)]), opval
);
2950 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
2958 /* setlo: setlo$pack $ulo16,$GRklo */
2961 SEM_FN_NAME (frvbf
,setlo
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2963 #define FLD(f) abuf->fields.sfmt_setlo.f
2964 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2965 int UNUSED written
= 0;
2966 IADDR UNUSED pc
= abuf
->addr
;
2967 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2970 UHI opval
= FLD (f_u16
);
2971 sim_queue_fn_hi_write (current_cpu
, frvbf_h_gr_lo_set
, FLD (f_GRk
), opval
);
2972 TRACE_RESULT (current_cpu
, abuf
, "gr_lo", 'x', opval
);
2979 /* sethi: sethi$pack $uhi16,$GRkhi */
2982 SEM_FN_NAME (frvbf
,sethi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2984 #define FLD(f) abuf->fields.sfmt_sethi.f
2985 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2986 int UNUSED written
= 0;
2987 IADDR UNUSED pc
= abuf
->addr
;
2988 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2991 UHI opval
= FLD (f_u16
);
2992 sim_queue_fn_hi_write (current_cpu
, frvbf_h_gr_hi_set
, FLD (f_GRk
), opval
);
2993 TRACE_RESULT (current_cpu
, abuf
, "gr_hi", 'x', opval
);
3000 /* setlos: setlos$pack $slo16,$GRk */
3003 SEM_FN_NAME (frvbf
,setlos
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3005 #define FLD(f) abuf->fields.sfmt_setlos.f
3006 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3007 int UNUSED written
= 0;
3008 IADDR UNUSED pc
= abuf
->addr
;
3009 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3012 SI opval
= FLD (f_s16
);
3013 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
3014 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
3021 /* ldsb: ldsb$pack @($GRi,$GRj),$GRk */
3024 SEM_FN_NAME (frvbf
,ldsb
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3026 #define FLD(f) abuf->fields.sfmt_addcc.f
3027 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3028 int UNUSED written
= 0;
3029 IADDR UNUSED pc
= abuf
->addr
;
3030 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3033 SI opval
= frvbf_read_mem_QI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))));
3034 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
3035 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
3042 /* ldub: ldub$pack @($GRi,$GRj),$GRk */
3045 SEM_FN_NAME (frvbf
,ldub
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3047 #define FLD(f) abuf->fields.sfmt_addcc.f
3048 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3049 int UNUSED written
= 0;
3050 IADDR UNUSED pc
= abuf
->addr
;
3051 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3054 SI opval
= frvbf_read_mem_UQI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))));
3055 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
3056 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
3063 /* ldsh: ldsh$pack @($GRi,$GRj),$GRk */
3066 SEM_FN_NAME (frvbf
,ldsh
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3068 #define FLD(f) abuf->fields.sfmt_addcc.f
3069 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3070 int UNUSED written
= 0;
3071 IADDR UNUSED pc
= abuf
->addr
;
3072 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3075 SI opval
= frvbf_read_mem_HI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))));
3076 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
3077 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
3084 /* lduh: lduh$pack @($GRi,$GRj),$GRk */
3087 SEM_FN_NAME (frvbf
,lduh
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3089 #define FLD(f) abuf->fields.sfmt_addcc.f
3090 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3091 int UNUSED written
= 0;
3092 IADDR UNUSED pc
= abuf
->addr
;
3093 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3096 SI opval
= frvbf_read_mem_UHI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))));
3097 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
3098 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
3105 /* ld: ld$pack @($GRi,$GRj),$GRk */
3108 SEM_FN_NAME (frvbf
,ld
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3110 #define FLD(f) abuf->fields.sfmt_addcc.f
3111 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3112 int UNUSED written
= 0;
3113 IADDR UNUSED pc
= abuf
->addr
;
3114 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3117 SI opval
= frvbf_read_mem_SI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))));
3118 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
3119 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
3126 /* ldbf: ldbf$pack @($GRi,$GRj),$FRintk */
3129 SEM_FN_NAME (frvbf
,ldbf
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3131 #define FLD(f) abuf->fields.sfmt_cldbfu.f
3132 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3133 int UNUSED written
= 0;
3134 IADDR UNUSED pc
= abuf
->addr
;
3135 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3138 SI opval
= frvbf_read_mem_UQI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))));
3139 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
3140 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
3147 /* ldhf: ldhf$pack @($GRi,$GRj),$FRintk */
3150 SEM_FN_NAME (frvbf
,ldhf
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3152 #define FLD(f) abuf->fields.sfmt_cldbfu.f
3153 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3154 int UNUSED written
= 0;
3155 IADDR UNUSED pc
= abuf
->addr
;
3156 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3159 SI opval
= frvbf_read_mem_UHI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))));
3160 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
3161 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
3168 /* ldf: ldf$pack @($GRi,$GRj),$FRintk */
3171 SEM_FN_NAME (frvbf
,ldf
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3173 #define FLD(f) abuf->fields.sfmt_cldbfu.f
3174 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3175 int UNUSED written
= 0;
3176 IADDR UNUSED pc
= abuf
->addr
;
3177 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3180 SI opval
= frvbf_read_mem_SI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))));
3181 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
3182 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
3189 /* ldc: ldc$pack @($GRi,$GRj),$CPRk */
3192 SEM_FN_NAME (frvbf
,ldc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3194 #define FLD(f) abuf->fields.sfmt_ldcu.f
3195 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3196 int UNUSED written
= 0;
3197 IADDR UNUSED pc
= abuf
->addr
;
3198 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3201 SI opval
= frvbf_read_mem_SI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))));
3202 sim_queue_si_write (current_cpu
, & CPU (h_cpr
[FLD (f_CPRk
)]), opval
);
3203 TRACE_RESULT (current_cpu
, abuf
, "cpr", 'x', opval
);
3210 /* nldsb: nldsb$pack @($GRi,$GRj),$GRk */
3213 SEM_FN_NAME (frvbf
,nldsb
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3215 #define FLD(f) abuf->fields.sfmt_addcc.f
3216 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3217 int UNUSED written
= 0;
3218 IADDR UNUSED pc
= abuf
->addr
;
3219 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3223 tmp_do_op
= frvbf_check_non_excepting_load (current_cpu
, FLD (f_GRi
), FLD (f_GRj
), FLD (f_GRk
), 0, 1, 0);
3226 SI opval
= frvbf_read_mem_QI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))));
3227 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
3228 written
|= (1 << 6);
3229 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
3234 abuf
->written
= written
;
3239 /* nldub: nldub$pack @($GRi,$GRj),$GRk */
3242 SEM_FN_NAME (frvbf
,nldub
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3244 #define FLD(f) abuf->fields.sfmt_addcc.f
3245 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3246 int UNUSED written
= 0;
3247 IADDR UNUSED pc
= abuf
->addr
;
3248 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3252 tmp_do_op
= frvbf_check_non_excepting_load (current_cpu
, FLD (f_GRi
), FLD (f_GRj
), FLD (f_GRk
), 0, 0, 0);
3255 SI opval
= frvbf_read_mem_UQI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))));
3256 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
3257 written
|= (1 << 6);
3258 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
3263 abuf
->written
= written
;
3268 /* nldsh: nldsh$pack @($GRi,$GRj),$GRk */
3271 SEM_FN_NAME (frvbf
,nldsh
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3273 #define FLD(f) abuf->fields.sfmt_addcc.f
3274 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3275 int UNUSED written
= 0;
3276 IADDR UNUSED pc
= abuf
->addr
;
3277 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3281 tmp_do_op
= frvbf_check_non_excepting_load (current_cpu
, FLD (f_GRi
), FLD (f_GRj
), FLD (f_GRk
), 0, 3, 0);
3284 SI opval
= frvbf_read_mem_HI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))));
3285 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
3286 written
|= (1 << 6);
3287 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
3292 abuf
->written
= written
;
3297 /* nlduh: nlduh$pack @($GRi,$GRj),$GRk */
3300 SEM_FN_NAME (frvbf
,nlduh
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3302 #define FLD(f) abuf->fields.sfmt_addcc.f
3303 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3304 int UNUSED written
= 0;
3305 IADDR UNUSED pc
= abuf
->addr
;
3306 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3310 tmp_do_op
= frvbf_check_non_excepting_load (current_cpu
, FLD (f_GRi
), FLD (f_GRj
), FLD (f_GRk
), 0, 2, 0);
3313 SI opval
= frvbf_read_mem_UHI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))));
3314 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
3315 written
|= (1 << 6);
3316 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
3321 abuf
->written
= written
;
3326 /* nld: nld$pack @($GRi,$GRj),$GRk */
3329 SEM_FN_NAME (frvbf
,nld
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3331 #define FLD(f) abuf->fields.sfmt_addcc.f
3332 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3333 int UNUSED written
= 0;
3334 IADDR UNUSED pc
= abuf
->addr
;
3335 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3339 tmp_do_op
= frvbf_check_non_excepting_load (current_cpu
, FLD (f_GRi
), FLD (f_GRj
), FLD (f_GRk
), 0, 4, 0);
3342 SI opval
= frvbf_read_mem_SI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))));
3343 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
3344 written
|= (1 << 6);
3345 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
3350 abuf
->written
= written
;
3355 /* nldbf: nldbf$pack @($GRi,$GRj),$FRintk */
3358 SEM_FN_NAME (frvbf
,nldbf
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3360 #define FLD(f) abuf->fields.sfmt_cldbfu.f
3361 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3362 int UNUSED written
= 0;
3363 IADDR UNUSED pc
= abuf
->addr
;
3364 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3368 tmp_do_op
= frvbf_check_non_excepting_load (current_cpu
, FLD (f_GRi
), FLD (f_GRj
), FLD (f_FRk
), 0, 0, 1);
3371 SI opval
= frvbf_read_mem_UQI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))));
3372 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
3373 written
|= (1 << 6);
3374 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
3379 abuf
->written
= written
;
3384 /* nldhf: nldhf$pack @($GRi,$GRj),$FRintk */
3387 SEM_FN_NAME (frvbf
,nldhf
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3389 #define FLD(f) abuf->fields.sfmt_cldbfu.f
3390 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3391 int UNUSED written
= 0;
3392 IADDR UNUSED pc
= abuf
->addr
;
3393 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3397 tmp_do_op
= frvbf_check_non_excepting_load (current_cpu
, FLD (f_GRi
), FLD (f_GRj
), FLD (f_FRk
), 0, 2, 1);
3400 SI opval
= frvbf_read_mem_UHI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))));
3401 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
3402 written
|= (1 << 6);
3403 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
3408 abuf
->written
= written
;
3413 /* nldf: nldf$pack @($GRi,$GRj),$FRintk */
3416 SEM_FN_NAME (frvbf
,nldf
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3418 #define FLD(f) abuf->fields.sfmt_cldbfu.f
3419 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3420 int UNUSED written
= 0;
3421 IADDR UNUSED pc
= abuf
->addr
;
3422 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3426 tmp_do_op
= frvbf_check_non_excepting_load (current_cpu
, FLD (f_GRi
), FLD (f_GRj
), FLD (f_FRk
), 0, 4, 1);
3429 SI opval
= frvbf_read_mem_SI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))));
3430 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
3431 written
|= (1 << 6);
3432 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
3437 abuf
->written
= written
;
3442 /* ldd: ldd$pack @($GRi,$GRj),$GRdoublek */
3445 SEM_FN_NAME (frvbf
,ldd
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3447 #define FLD(f) abuf->fields.sfmt_smulcc.f
3448 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3449 int UNUSED written
= 0;
3450 IADDR UNUSED pc
= abuf
->addr
;
3451 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3455 if (NESI (FLD (f_GRk
), 0)) {
3457 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
3459 DI opval
= frvbf_read_mem_DI (current_cpu
, pc
, tmp_address
);
3460 sim_queue_fn_di_write (current_cpu
, frvbf_h_gr_double_set
, FLD (f_GRk
), opval
);
3461 written
|= (1 << 4);
3462 TRACE_RESULT (current_cpu
, abuf
, "gr_double", 'D', opval
);
3468 abuf
->written
= written
;
3473 /* lddf: lddf$pack @($GRi,$GRj),$FRdoublek */
3476 SEM_FN_NAME (frvbf
,lddf
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3478 #define FLD(f) abuf->fields.sfmt_clddfu.f
3479 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3480 int UNUSED written
= 0;
3481 IADDR UNUSED pc
= abuf
->addr
;
3482 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3487 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
3489 DF opval
= frvbf_read_mem_DF (current_cpu
, pc
, tmp_address
);
3490 sim_queue_fn_df_write (current_cpu
, frvbf_h_fr_double_set
, FLD (f_FRk
), opval
);
3491 TRACE_RESULT (current_cpu
, abuf
, "fr_double", 'f', opval
);
3500 /* lddc: lddc$pack @($GRi,$GRj),$CPRdoublek */
3503 SEM_FN_NAME (frvbf
,lddc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3505 #define FLD(f) abuf->fields.sfmt_lddcu.f
3506 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3507 int UNUSED written
= 0;
3508 IADDR UNUSED pc
= abuf
->addr
;
3509 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3514 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
3516 DI opval
= frvbf_read_mem_DI (current_cpu
, pc
, tmp_address
);
3517 sim_queue_fn_di_write (current_cpu
, frvbf_h_cpr_double_set
, FLD (f_CPRk
), opval
);
3518 TRACE_RESULT (current_cpu
, abuf
, "cpr_double", 'D', opval
);
3527 /* nldd: nldd$pack @($GRi,$GRj),$GRdoublek */
3530 SEM_FN_NAME (frvbf
,nldd
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3532 #define FLD(f) abuf->fields.sfmt_smulcc.f
3533 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3534 int UNUSED written
= 0;
3535 IADDR UNUSED pc
= abuf
->addr
;
3536 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3542 tmp_do_op
= frvbf_check_non_excepting_load (current_cpu
, FLD (f_GRi
), FLD (f_GRj
), FLD (f_GRk
), 0, 5, 0);
3544 if (NESI (FLD (f_GRk
), 0)) {
3546 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
3548 DI opval
= frvbf_read_mem_DI (current_cpu
, pc
, tmp_address
);
3549 sim_queue_fn_di_write (current_cpu
, frvbf_h_gr_double_set
, FLD (f_GRk
), opval
);
3550 written
|= (1 << 6);
3551 TRACE_RESULT (current_cpu
, abuf
, "gr_double", 'D', opval
);
3559 abuf
->written
= written
;
3564 /* nlddf: nlddf$pack @($GRi,$GRj),$FRdoublek */
3567 SEM_FN_NAME (frvbf
,nlddf
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3569 #define FLD(f) abuf->fields.sfmt_clddfu.f
3570 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3571 int UNUSED written
= 0;
3572 IADDR UNUSED pc
= abuf
->addr
;
3573 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3579 tmp_do_op
= frvbf_check_non_excepting_load (current_cpu
, FLD (f_GRi
), FLD (f_GRj
), FLD (f_FRk
), 0, 5, 1);
3582 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
3584 DF opval
= frvbf_read_mem_DF (current_cpu
, pc
, tmp_address
);
3585 sim_queue_fn_df_write (current_cpu
, frvbf_h_fr_double_set
, FLD (f_FRk
), opval
);
3586 written
|= (1 << 6);
3587 TRACE_RESULT (current_cpu
, abuf
, "fr_double", 'f', opval
);
3594 abuf
->written
= written
;
3599 /* ldq: ldq$pack @($GRi,$GRj),$GRk */
3602 SEM_FN_NAME (frvbf
,ldq
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3604 #define FLD(f) abuf->fields.sfmt_smulcc.f
3605 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3606 int UNUSED written
= 0;
3607 IADDR UNUSED pc
= abuf
->addr
;
3608 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3613 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
3614 frvbf_load_quad_GR (current_cpu
, pc
, tmp_address
, FLD (f_GRk
));
3622 /* ldqf: ldqf$pack @($GRi,$GRj),$FRintk */
3625 SEM_FN_NAME (frvbf
,ldqf
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3627 #define FLD(f) abuf->fields.sfmt_cstdfu.f
3628 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3629 int UNUSED written
= 0;
3630 IADDR UNUSED pc
= abuf
->addr
;
3631 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3636 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
3637 frvbf_load_quad_FRint (current_cpu
, pc
, tmp_address
, FLD (f_FRk
));
3645 /* ldqc: ldqc$pack @($GRi,$GRj),$CPRk */
3648 SEM_FN_NAME (frvbf
,ldqc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3650 #define FLD(f) abuf->fields.sfmt_stdcu.f
3651 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3652 int UNUSED written
= 0;
3653 IADDR UNUSED pc
= abuf
->addr
;
3654 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3659 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
3660 frvbf_load_quad_CPR (current_cpu
, pc
, tmp_address
, FLD (f_CPRk
));
3668 /* nldq: nldq$pack @($GRi,$GRj),$GRk */
3671 SEM_FN_NAME (frvbf
,nldq
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3673 #define FLD(f) abuf->fields.sfmt_smulcc.f
3674 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3675 int UNUSED written
= 0;
3676 IADDR UNUSED pc
= abuf
->addr
;
3677 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3683 tmp_do_op
= frvbf_check_non_excepting_load (current_cpu
, FLD (f_GRi
), FLD (f_GRj
), FLD (f_GRk
), 0, 6, 0);
3686 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
3687 frvbf_load_quad_GR (current_cpu
, pc
, tmp_address
, FLD (f_GRk
));
3697 /* nldqf: nldqf$pack @($GRi,$GRj),$FRintk */
3700 SEM_FN_NAME (frvbf
,nldqf
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3702 #define FLD(f) abuf->fields.sfmt_cstdfu.f
3703 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3704 int UNUSED written
= 0;
3705 IADDR UNUSED pc
= abuf
->addr
;
3706 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3712 tmp_do_op
= frvbf_check_non_excepting_load (current_cpu
, FLD (f_GRi
), FLD (f_GRj
), FLD (f_FRk
), 0, 6, 1);
3715 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
3716 frvbf_load_quad_FRint (current_cpu
, pc
, tmp_address
, FLD (f_FRk
));
3726 /* ldsbu: ldsbu$pack @($GRi,$GRj),$GRk */
3729 SEM_FN_NAME (frvbf
,ldsbu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3731 #define FLD(f) abuf->fields.sfmt_cldsbu.f
3732 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3733 int UNUSED written
= 0;
3734 IADDR UNUSED pc
= abuf
->addr
;
3735 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3739 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
3741 SI opval
= frvbf_read_mem_QI (current_cpu
, pc
, tmp_address
);
3742 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
3743 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
3745 if (NESI (FLD (f_GRi
), FLD (f_GRk
))) {
3748 SI opval
= tmp_address
;
3749 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
3750 written
|= (1 << 5);
3751 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
3753 frvbf_force_update (current_cpu
);
3758 abuf
->written
= written
;
3763 /* ldubu: ldubu$pack @($GRi,$GRj),$GRk */
3766 SEM_FN_NAME (frvbf
,ldubu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3768 #define FLD(f) abuf->fields.sfmt_cldsbu.f
3769 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3770 int UNUSED written
= 0;
3771 IADDR UNUSED pc
= abuf
->addr
;
3772 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3776 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
3778 SI opval
= frvbf_read_mem_UQI (current_cpu
, pc
, tmp_address
);
3779 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
3780 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
3782 if (NESI (FLD (f_GRi
), FLD (f_GRk
))) {
3785 SI opval
= tmp_address
;
3786 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
3787 written
|= (1 << 5);
3788 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
3790 frvbf_force_update (current_cpu
);
3795 abuf
->written
= written
;
3800 /* ldshu: ldshu$pack @($GRi,$GRj),$GRk */
3803 SEM_FN_NAME (frvbf
,ldshu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3805 #define FLD(f) abuf->fields.sfmt_cldsbu.f
3806 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3807 int UNUSED written
= 0;
3808 IADDR UNUSED pc
= abuf
->addr
;
3809 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3813 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
3815 SI opval
= frvbf_read_mem_HI (current_cpu
, pc
, tmp_address
);
3816 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
3817 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
3819 if (NESI (FLD (f_GRi
), FLD (f_GRk
))) {
3822 SI opval
= tmp_address
;
3823 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
3824 written
|= (1 << 5);
3825 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
3827 frvbf_force_update (current_cpu
);
3832 abuf
->written
= written
;
3837 /* lduhu: lduhu$pack @($GRi,$GRj),$GRk */
3840 SEM_FN_NAME (frvbf
,lduhu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3842 #define FLD(f) abuf->fields.sfmt_cldsbu.f
3843 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3844 int UNUSED written
= 0;
3845 IADDR UNUSED pc
= abuf
->addr
;
3846 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3850 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
3852 SI opval
= frvbf_read_mem_UHI (current_cpu
, pc
, tmp_address
);
3853 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
3854 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
3856 if (NESI (FLD (f_GRi
), FLD (f_GRk
))) {
3859 SI opval
= tmp_address
;
3860 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
3861 written
|= (1 << 5);
3862 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
3864 frvbf_force_update (current_cpu
);
3869 abuf
->written
= written
;
3874 /* ldu: ldu$pack @($GRi,$GRj),$GRk */
3877 SEM_FN_NAME (frvbf
,ldu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3879 #define FLD(f) abuf->fields.sfmt_cldsbu.f
3880 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3881 int UNUSED written
= 0;
3882 IADDR UNUSED pc
= abuf
->addr
;
3883 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3887 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
3889 SI opval
= frvbf_read_mem_SI (current_cpu
, pc
, tmp_address
);
3890 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
3891 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
3893 if (NESI (FLD (f_GRi
), FLD (f_GRk
))) {
3896 SI opval
= tmp_address
;
3897 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
3898 written
|= (1 << 5);
3899 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
3901 frvbf_force_update (current_cpu
);
3906 abuf
->written
= written
;
3911 /* nldsbu: nldsbu$pack @($GRi,$GRj),$GRk */
3914 SEM_FN_NAME (frvbf
,nldsbu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3916 #define FLD(f) abuf->fields.sfmt_cldsbu.f
3917 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3918 int UNUSED written
= 0;
3919 IADDR UNUSED pc
= abuf
->addr
;
3920 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3924 tmp_do_op
= frvbf_check_non_excepting_load (current_cpu
, FLD (f_GRi
), FLD (f_GRj
), FLD (f_GRk
), 0, 1, 0);
3928 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
3930 SI opval
= frvbf_read_mem_QI (current_cpu
, pc
, tmp_address
);
3931 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
3932 written
|= (1 << 7);
3933 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
3935 if (NESI (FLD (f_GRi
), FLD (f_GRk
))) {
3938 SI opval
= tmp_address
;
3939 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
3940 written
|= (1 << 6);
3941 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
3943 frvbf_force_update (current_cpu
);
3950 abuf
->written
= written
;
3955 /* nldubu: nldubu$pack @($GRi,$GRj),$GRk */
3958 SEM_FN_NAME (frvbf
,nldubu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3960 #define FLD(f) abuf->fields.sfmt_cldsbu.f
3961 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3962 int UNUSED written
= 0;
3963 IADDR UNUSED pc
= abuf
->addr
;
3964 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3968 tmp_do_op
= frvbf_check_non_excepting_load (current_cpu
, FLD (f_GRi
), FLD (f_GRj
), FLD (f_GRk
), 0, 0, 0);
3972 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
3974 SI opval
= frvbf_read_mem_UQI (current_cpu
, pc
, tmp_address
);
3975 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
3976 written
|= (1 << 7);
3977 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
3979 if (NESI (FLD (f_GRi
), FLD (f_GRk
))) {
3982 SI opval
= tmp_address
;
3983 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
3984 written
|= (1 << 6);
3985 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
3987 frvbf_force_update (current_cpu
);
3994 abuf
->written
= written
;
3999 /* nldshu: nldshu$pack @($GRi,$GRj),$GRk */
4002 SEM_FN_NAME (frvbf
,nldshu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4004 #define FLD(f) abuf->fields.sfmt_cldsbu.f
4005 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
4006 int UNUSED written
= 0;
4007 IADDR UNUSED pc
= abuf
->addr
;
4008 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
4012 tmp_do_op
= frvbf_check_non_excepting_load (current_cpu
, FLD (f_GRi
), FLD (f_GRj
), FLD (f_GRk
), 0, 3, 0);
4016 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
4018 SI opval
= frvbf_read_mem_HI (current_cpu
, pc
, tmp_address
);
4019 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
4020 written
|= (1 << 7);
4021 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
4023 if (NESI (FLD (f_GRi
), FLD (f_GRk
))) {
4026 SI opval
= tmp_address
;
4027 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
4028 written
|= (1 << 6);
4029 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
4031 frvbf_force_update (current_cpu
);
4038 abuf
->written
= written
;
4043 /* nlduhu: nlduhu$pack @($GRi,$GRj),$GRk */
4046 SEM_FN_NAME (frvbf
,nlduhu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4048 #define FLD(f) abuf->fields.sfmt_cldsbu.f
4049 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
4050 int UNUSED written
= 0;
4051 IADDR UNUSED pc
= abuf
->addr
;
4052 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
4056 tmp_do_op
= frvbf_check_non_excepting_load (current_cpu
, FLD (f_GRi
), FLD (f_GRj
), FLD (f_GRk
), 0, 2, 0);
4060 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
4062 SI opval
= frvbf_read_mem_UHI (current_cpu
, pc
, tmp_address
);
4063 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
4064 written
|= (1 << 7);
4065 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
4067 if (NESI (FLD (f_GRi
), FLD (f_GRk
))) {
4070 SI opval
= tmp_address
;
4071 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
4072 written
|= (1 << 6);
4073 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
4075 frvbf_force_update (current_cpu
);
4082 abuf
->written
= written
;
4087 /* nldu: nldu$pack @($GRi,$GRj),$GRk */
4090 SEM_FN_NAME (frvbf
,nldu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4092 #define FLD(f) abuf->fields.sfmt_cldsbu.f
4093 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
4094 int UNUSED written
= 0;
4095 IADDR UNUSED pc
= abuf
->addr
;
4096 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
4100 tmp_do_op
= frvbf_check_non_excepting_load (current_cpu
, FLD (f_GRi
), FLD (f_GRj
), FLD (f_GRk
), 0, 4, 0);
4104 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
4106 SI opval
= frvbf_read_mem_SI (current_cpu
, pc
, tmp_address
);
4107 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
4108 written
|= (1 << 7);
4109 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
4111 if (NESI (FLD (f_GRi
), FLD (f_GRk
))) {
4114 SI opval
= tmp_address
;
4115 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
4116 written
|= (1 << 6);
4117 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
4119 frvbf_force_update (current_cpu
);
4126 abuf
->written
= written
;
4131 /* ldbfu: ldbfu$pack @($GRi,$GRj),$FRintk */
4134 SEM_FN_NAME (frvbf
,ldbfu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4136 #define FLD(f) abuf->fields.sfmt_cldbfu.f
4137 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
4138 int UNUSED written
= 0;
4139 IADDR UNUSED pc
= abuf
->addr
;
4140 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
4144 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
4146 SI opval
= frvbf_read_mem_UQI (current_cpu
, pc
, tmp_address
);
4147 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
4148 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
4151 SI opval
= tmp_address
;
4152 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
4153 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
4155 frvbf_force_update (current_cpu
);
4162 /* ldhfu: ldhfu$pack @($GRi,$GRj),$FRintk */
4165 SEM_FN_NAME (frvbf
,ldhfu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4167 #define FLD(f) abuf->fields.sfmt_cldbfu.f
4168 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
4169 int UNUSED written
= 0;
4170 IADDR UNUSED pc
= abuf
->addr
;
4171 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
4175 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
4177 SI opval
= frvbf_read_mem_UHI (current_cpu
, pc
, tmp_address
);
4178 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
4179 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
4182 SI opval
= tmp_address
;
4183 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
4184 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
4186 frvbf_force_update (current_cpu
);
4193 /* ldfu: ldfu$pack @($GRi,$GRj),$FRintk */
4196 SEM_FN_NAME (frvbf
,ldfu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4198 #define FLD(f) abuf->fields.sfmt_cldbfu.f
4199 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
4200 int UNUSED written
= 0;
4201 IADDR UNUSED pc
= abuf
->addr
;
4202 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
4206 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
4208 SI opval
= frvbf_read_mem_SI (current_cpu
, pc
, tmp_address
);
4209 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
4210 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
4213 SI opval
= tmp_address
;
4214 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
4215 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
4217 frvbf_force_update (current_cpu
);
4224 /* ldcu: ldcu$pack @($GRi,$GRj),$CPRk */
4227 SEM_FN_NAME (frvbf
,ldcu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4229 #define FLD(f) abuf->fields.sfmt_ldcu.f
4230 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
4231 int UNUSED written
= 0;
4232 IADDR UNUSED pc
= abuf
->addr
;
4233 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
4237 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
4239 SI opval
= frvbf_read_mem_SI (current_cpu
, pc
, tmp_address
);
4240 sim_queue_si_write (current_cpu
, & CPU (h_cpr
[FLD (f_CPRk
)]), opval
);
4241 TRACE_RESULT (current_cpu
, abuf
, "cpr", 'x', opval
);
4244 SI opval
= tmp_address
;
4245 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
4246 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
4248 frvbf_force_update (current_cpu
);
4255 /* nldbfu: nldbfu$pack @($GRi,$GRj),$FRintk */
4258 SEM_FN_NAME (frvbf
,nldbfu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4260 #define FLD(f) abuf->fields.sfmt_cldbfu.f
4261 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
4262 int UNUSED written
= 0;
4263 IADDR UNUSED pc
= abuf
->addr
;
4264 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
4268 tmp_do_op
= frvbf_check_non_excepting_load (current_cpu
, FLD (f_GRi
), FLD (f_GRj
), FLD (f_FRk
), 0, 0, 1);
4272 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
4274 SI opval
= frvbf_read_mem_UQI (current_cpu
, pc
, tmp_address
);
4275 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
4276 written
|= (1 << 6);
4277 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
4280 SI opval
= tmp_address
;
4281 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
4282 written
|= (1 << 7);
4283 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
4285 frvbf_force_update (current_cpu
);
4290 abuf
->written
= written
;
4295 /* nldhfu: nldhfu$pack @($GRi,$GRj),$FRintk */
4298 SEM_FN_NAME (frvbf
,nldhfu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4300 #define FLD(f) abuf->fields.sfmt_cldbfu.f
4301 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
4302 int UNUSED written
= 0;
4303 IADDR UNUSED pc
= abuf
->addr
;
4304 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
4308 tmp_do_op
= frvbf_check_non_excepting_load (current_cpu
, FLD (f_GRi
), FLD (f_GRj
), FLD (f_FRk
), 0, 2, 1);
4312 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
4314 SI opval
= frvbf_read_mem_UHI (current_cpu
, pc
, tmp_address
);
4315 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
4316 written
|= (1 << 6);
4317 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
4320 SI opval
= tmp_address
;
4321 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
4322 written
|= (1 << 7);
4323 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
4325 frvbf_force_update (current_cpu
);
4330 abuf
->written
= written
;
4335 /* nldfu: nldfu$pack @($GRi,$GRj),$FRintk */
4338 SEM_FN_NAME (frvbf
,nldfu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4340 #define FLD(f) abuf->fields.sfmt_cldbfu.f
4341 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
4342 int UNUSED written
= 0;
4343 IADDR UNUSED pc
= abuf
->addr
;
4344 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
4348 tmp_do_op
= frvbf_check_non_excepting_load (current_cpu
, FLD (f_GRi
), FLD (f_GRj
), FLD (f_FRk
), 0, 4, 1);
4352 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
4354 SI opval
= frvbf_read_mem_SI (current_cpu
, pc
, tmp_address
);
4355 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
4356 written
|= (1 << 6);
4357 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
4360 SI opval
= tmp_address
;
4361 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
4362 written
|= (1 << 7);
4363 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
4365 frvbf_force_update (current_cpu
);
4370 abuf
->written
= written
;
4375 /* lddu: lddu$pack @($GRi,$GRj),$GRdoublek */
4378 SEM_FN_NAME (frvbf
,lddu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4380 #define FLD(f) abuf->fields.sfmt_clddu.f
4381 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
4382 int UNUSED written
= 0;
4383 IADDR UNUSED pc
= abuf
->addr
;
4384 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
4388 if (NESI (FLD (f_GRk
), 0)) {
4390 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
4392 DI opval
= frvbf_read_mem_DI (current_cpu
, pc
, tmp_address
);
4393 sim_queue_fn_di_write (current_cpu
, frvbf_h_gr_double_set
, FLD (f_GRk
), opval
);
4394 written
|= (1 << 5);
4395 TRACE_RESULT (current_cpu
, abuf
, "gr_double", 'D', opval
);
4399 if (NESI (FLD (f_GRi
), FLD (f_GRk
))) {
4402 SI opval
= tmp_address
;
4403 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
4404 written
|= (1 << 6);
4405 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
4407 frvbf_force_update (current_cpu
);
4412 abuf
->written
= written
;
4417 /* nlddu: nlddu$pack @($GRi,$GRj),$GRdoublek */
4420 SEM_FN_NAME (frvbf
,nlddu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4422 #define FLD(f) abuf->fields.sfmt_clddu.f
4423 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
4424 int UNUSED written
= 0;
4425 IADDR UNUSED pc
= abuf
->addr
;
4426 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
4430 tmp_do_op
= frvbf_check_non_excepting_load (current_cpu
, FLD (f_GRi
), FLD (f_GRj
), FLD (f_GRk
), 0, 5, 0);
4434 if (NESI (FLD (f_GRk
), 0)) {
4436 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
4438 DI opval
= frvbf_read_mem_DI (current_cpu
, pc
, tmp_address
);
4439 sim_queue_fn_di_write (current_cpu
, frvbf_h_gr_double_set
, FLD (f_GRk
), opval
);
4440 written
|= (1 << 6);
4441 TRACE_RESULT (current_cpu
, abuf
, "gr_double", 'D', opval
);
4445 if (NESI (FLD (f_GRi
), FLD (f_GRk
))) {
4448 SI opval
= tmp_address
;
4449 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
4450 written
|= (1 << 7);
4451 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
4453 frvbf_force_update (current_cpu
);
4460 abuf
->written
= written
;
4465 /* lddfu: lddfu$pack @($GRi,$GRj),$FRdoublek */
4468 SEM_FN_NAME (frvbf
,lddfu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4470 #define FLD(f) abuf->fields.sfmt_clddfu.f
4471 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
4472 int UNUSED written
= 0;
4473 IADDR UNUSED pc
= abuf
->addr
;
4474 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
4479 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
4481 DF opval
= frvbf_read_mem_DF (current_cpu
, pc
, tmp_address
);
4482 sim_queue_fn_df_write (current_cpu
, frvbf_h_fr_double_set
, FLD (f_FRk
), opval
);
4483 TRACE_RESULT (current_cpu
, abuf
, "fr_double", 'f', opval
);
4487 SI opval
= tmp_address
;
4488 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
4489 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
4491 frvbf_force_update (current_cpu
);
4498 /* lddcu: lddcu$pack @($GRi,$GRj),$CPRdoublek */
4501 SEM_FN_NAME (frvbf
,lddcu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4503 #define FLD(f) abuf->fields.sfmt_lddcu.f
4504 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
4505 int UNUSED written
= 0;
4506 IADDR UNUSED pc
= abuf
->addr
;
4507 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
4512 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
4514 DI opval
= frvbf_read_mem_DI (current_cpu
, pc
, tmp_address
);
4515 sim_queue_fn_di_write (current_cpu
, frvbf_h_cpr_double_set
, FLD (f_CPRk
), opval
);
4516 TRACE_RESULT (current_cpu
, abuf
, "cpr_double", 'D', opval
);
4520 SI opval
= tmp_address
;
4521 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
4522 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
4524 frvbf_force_update (current_cpu
);
4531 /* nlddfu: nlddfu$pack @($GRi,$GRj),$FRdoublek */
4534 SEM_FN_NAME (frvbf
,nlddfu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4536 #define FLD(f) abuf->fields.sfmt_clddfu.f
4537 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
4538 int UNUSED written
= 0;
4539 IADDR UNUSED pc
= abuf
->addr
;
4540 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
4544 tmp_do_op
= frvbf_check_non_excepting_load (current_cpu
, FLD (f_GRi
), FLD (f_GRj
), FLD (f_FRk
), 0, 5, 1);
4549 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
4551 DF opval
= frvbf_read_mem_DF (current_cpu
, pc
, tmp_address
);
4552 sim_queue_fn_df_write (current_cpu
, frvbf_h_fr_double_set
, FLD (f_FRk
), opval
);
4553 written
|= (1 << 6);
4554 TRACE_RESULT (current_cpu
, abuf
, "fr_double", 'f', opval
);
4558 SI opval
= tmp_address
;
4559 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
4560 written
|= (1 << 7);
4561 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
4563 frvbf_force_update (current_cpu
);
4568 abuf
->written
= written
;
4573 /* ldqu: ldqu$pack @($GRi,$GRj),$GRk */
4576 SEM_FN_NAME (frvbf
,ldqu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4578 #define FLD(f) abuf->fields.sfmt_cstdu.f
4579 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
4580 int UNUSED written
= 0;
4581 IADDR UNUSED pc
= abuf
->addr
;
4582 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
4587 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
4588 frvbf_load_quad_GR (current_cpu
, pc
, tmp_address
, FLD (f_GRk
));
4590 if (NESI (FLD (f_GRi
), FLD (f_GRk
))) {
4593 SI opval
= tmp_address
;
4594 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
4595 written
|= (1 << 5);
4596 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
4598 frvbf_force_update (current_cpu
);
4603 abuf
->written
= written
;
4608 /* nldqu: nldqu$pack @($GRi,$GRj),$GRk */
4611 SEM_FN_NAME (frvbf
,nldqu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4613 #define FLD(f) abuf->fields.sfmt_cstdu.f
4614 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
4615 int UNUSED written
= 0;
4616 IADDR UNUSED pc
= abuf
->addr
;
4617 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
4621 tmp_do_op
= frvbf_check_non_excepting_load (current_cpu
, FLD (f_GRi
), FLD (f_GRj
), FLD (f_GRk
), 0, 6, 0);
4626 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
4627 frvbf_load_quad_GR (current_cpu
, pc
, tmp_address
, FLD (f_GRk
));
4629 if (NESI (FLD (f_GRi
), FLD (f_GRk
))) {
4632 SI opval
= tmp_address
;
4633 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
4634 written
|= (1 << 6);
4635 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
4637 frvbf_force_update (current_cpu
);
4644 abuf
->written
= written
;
4649 /* ldqfu: ldqfu$pack @($GRi,$GRj),$FRintk */
4652 SEM_FN_NAME (frvbf
,ldqfu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4654 #define FLD(f) abuf->fields.sfmt_cstdfu.f
4655 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
4656 int UNUSED written
= 0;
4657 IADDR UNUSED pc
= abuf
->addr
;
4658 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
4663 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
4664 frvbf_load_quad_FRint (current_cpu
, pc
, tmp_address
, FLD (f_FRk
));
4667 SI opval
= tmp_address
;
4668 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
4669 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
4671 frvbf_force_update (current_cpu
);
4678 /* ldqcu: ldqcu$pack @($GRi,$GRj),$CPRk */
4681 SEM_FN_NAME (frvbf
,ldqcu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4683 #define FLD(f) abuf->fields.sfmt_stdcu.f
4684 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
4685 int UNUSED written
= 0;
4686 IADDR UNUSED pc
= abuf
->addr
;
4687 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
4692 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
4693 frvbf_load_quad_CPR (current_cpu
, pc
, tmp_address
, FLD (f_CPRk
));
4696 SI opval
= tmp_address
;
4697 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
4698 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
4700 frvbf_force_update (current_cpu
);
4707 /* nldqfu: nldqfu$pack @($GRi,$GRj),$FRintk */
4710 SEM_FN_NAME (frvbf
,nldqfu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4712 #define FLD(f) abuf->fields.sfmt_cstdfu.f
4713 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
4714 int UNUSED written
= 0;
4715 IADDR UNUSED pc
= abuf
->addr
;
4716 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
4720 tmp_do_op
= frvbf_check_non_excepting_load (current_cpu
, FLD (f_GRi
), FLD (f_GRj
), FLD (f_FRk
), 0, 6, 1);
4725 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
4726 frvbf_load_quad_FRint (current_cpu
, pc
, tmp_address
, FLD (f_FRk
));
4729 SI opval
= tmp_address
;
4730 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
4731 written
|= (1 << 6);
4732 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
4734 frvbf_force_update (current_cpu
);
4739 abuf
->written
= written
;
4744 /* ldsbi: ldsbi$pack @($GRi,$d12),$GRk */
4747 SEM_FN_NAME (frvbf
,ldsbi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4749 #define FLD(f) abuf->fields.sfmt_swapi.f
4750 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
4751 int UNUSED written
= 0;
4752 IADDR UNUSED pc
= abuf
->addr
;
4753 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
4756 SI opval
= frvbf_read_mem_QI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), FLD (f_d12
)));
4757 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
4758 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
4765 /* ldshi: ldshi$pack @($GRi,$d12),$GRk */
4768 SEM_FN_NAME (frvbf
,ldshi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4770 #define FLD(f) abuf->fields.sfmt_swapi.f
4771 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
4772 int UNUSED written
= 0;
4773 IADDR UNUSED pc
= abuf
->addr
;
4774 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
4777 SI opval
= frvbf_read_mem_HI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), FLD (f_d12
)));
4778 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
4779 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
4786 /* ldi: ldi$pack @($GRi,$d12),$GRk */
4789 SEM_FN_NAME (frvbf
,ldi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4791 #define FLD(f) abuf->fields.sfmt_swapi.f
4792 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
4793 int UNUSED written
= 0;
4794 IADDR UNUSED pc
= abuf
->addr
;
4795 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
4798 SI opval
= frvbf_read_mem_SI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), FLD (f_d12
)));
4799 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
4800 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
4807 /* ldubi: ldubi$pack @($GRi,$d12),$GRk */
4810 SEM_FN_NAME (frvbf
,ldubi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4812 #define FLD(f) abuf->fields.sfmt_swapi.f
4813 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
4814 int UNUSED written
= 0;
4815 IADDR UNUSED pc
= abuf
->addr
;
4816 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
4819 SI opval
= frvbf_read_mem_UQI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), FLD (f_d12
)));
4820 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
4821 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
4828 /* lduhi: lduhi$pack @($GRi,$d12),$GRk */
4831 SEM_FN_NAME (frvbf
,lduhi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4833 #define FLD(f) abuf->fields.sfmt_swapi.f
4834 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
4835 int UNUSED written
= 0;
4836 IADDR UNUSED pc
= abuf
->addr
;
4837 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
4840 SI opval
= frvbf_read_mem_UHI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), FLD (f_d12
)));
4841 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
4842 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
4849 /* ldbfi: ldbfi$pack @($GRi,$d12),$FRintk */
4852 SEM_FN_NAME (frvbf
,ldbfi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4854 #define FLD(f) abuf->fields.sfmt_ldbfi.f
4855 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
4856 int UNUSED written
= 0;
4857 IADDR UNUSED pc
= abuf
->addr
;
4858 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
4861 SI opval
= frvbf_read_mem_UQI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), FLD (f_d12
)));
4862 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
4863 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
4870 /* ldhfi: ldhfi$pack @($GRi,$d12),$FRintk */
4873 SEM_FN_NAME (frvbf
,ldhfi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4875 #define FLD(f) abuf->fields.sfmt_ldbfi.f
4876 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
4877 int UNUSED written
= 0;
4878 IADDR UNUSED pc
= abuf
->addr
;
4879 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
4882 SI opval
= frvbf_read_mem_UHI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), FLD (f_d12
)));
4883 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
4884 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
4891 /* ldfi: ldfi$pack @($GRi,$d12),$FRintk */
4894 SEM_FN_NAME (frvbf
,ldfi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4896 #define FLD(f) abuf->fields.sfmt_ldbfi.f
4897 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
4898 int UNUSED written
= 0;
4899 IADDR UNUSED pc
= abuf
->addr
;
4900 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
4903 SI opval
= frvbf_read_mem_SI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), FLD (f_d12
)));
4904 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
4905 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
4912 /* nldsbi: nldsbi$pack @($GRi,$d12),$GRk */
4915 SEM_FN_NAME (frvbf
,nldsbi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4917 #define FLD(f) abuf->fields.sfmt_swapi.f
4918 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
4919 int UNUSED written
= 0;
4920 IADDR UNUSED pc
= abuf
->addr
;
4921 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
4925 tmp_do_op
= frvbf_check_non_excepting_load (current_cpu
, FLD (f_GRi
), -1, FLD (f_GRk
), FLD (f_d12
), 1, 0);
4928 SI opval
= frvbf_read_mem_QI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), FLD (f_d12
)));
4929 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
4930 written
|= (1 << 5);
4931 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
4936 abuf
->written
= written
;
4941 /* nldubi: nldubi$pack @($GRi,$d12),$GRk */
4944 SEM_FN_NAME (frvbf
,nldubi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4946 #define FLD(f) abuf->fields.sfmt_swapi.f
4947 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
4948 int UNUSED written
= 0;
4949 IADDR UNUSED pc
= abuf
->addr
;
4950 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
4954 tmp_do_op
= frvbf_check_non_excepting_load (current_cpu
, FLD (f_GRi
), -1, FLD (f_GRk
), FLD (f_d12
), 0, 0);
4957 SI opval
= frvbf_read_mem_UQI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), FLD (f_d12
)));
4958 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
4959 written
|= (1 << 5);
4960 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
4965 abuf
->written
= written
;
4970 /* nldshi: nldshi$pack @($GRi,$d12),$GRk */
4973 SEM_FN_NAME (frvbf
,nldshi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4975 #define FLD(f) abuf->fields.sfmt_swapi.f
4976 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
4977 int UNUSED written
= 0;
4978 IADDR UNUSED pc
= abuf
->addr
;
4979 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
4983 tmp_do_op
= frvbf_check_non_excepting_load (current_cpu
, FLD (f_GRi
), -1, FLD (f_GRk
), FLD (f_d12
), 3, 0);
4986 SI opval
= frvbf_read_mem_HI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), FLD (f_d12
)));
4987 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
4988 written
|= (1 << 5);
4989 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
4994 abuf
->written
= written
;
4999 /* nlduhi: nlduhi$pack @($GRi,$d12),$GRk */
5002 SEM_FN_NAME (frvbf
,nlduhi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5004 #define FLD(f) abuf->fields.sfmt_swapi.f
5005 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5006 int UNUSED written
= 0;
5007 IADDR UNUSED pc
= abuf
->addr
;
5008 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5012 tmp_do_op
= frvbf_check_non_excepting_load (current_cpu
, FLD (f_GRi
), -1, FLD (f_GRk
), FLD (f_d12
), 2, 0);
5015 SI opval
= frvbf_read_mem_UHI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), FLD (f_d12
)));
5016 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
5017 written
|= (1 << 5);
5018 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
5023 abuf
->written
= written
;
5028 /* nldi: nldi$pack @($GRi,$d12),$GRk */
5031 SEM_FN_NAME (frvbf
,nldi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5033 #define FLD(f) abuf->fields.sfmt_swapi.f
5034 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5035 int UNUSED written
= 0;
5036 IADDR UNUSED pc
= abuf
->addr
;
5037 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5041 tmp_do_op
= frvbf_check_non_excepting_load (current_cpu
, FLD (f_GRi
), -1, FLD (f_GRk
), FLD (f_d12
), 4, 0);
5044 SI opval
= frvbf_read_mem_SI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), FLD (f_d12
)));
5045 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
5046 written
|= (1 << 5);
5047 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
5052 abuf
->written
= written
;
5057 /* nldbfi: nldbfi$pack @($GRi,$d12),$FRintk */
5060 SEM_FN_NAME (frvbf
,nldbfi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5062 #define FLD(f) abuf->fields.sfmt_ldbfi.f
5063 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5064 int UNUSED written
= 0;
5065 IADDR UNUSED pc
= abuf
->addr
;
5066 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5070 tmp_do_op
= frvbf_check_non_excepting_load (current_cpu
, FLD (f_GRi
), -1, FLD (f_FRk
), FLD (f_d12
), 0, 1);
5073 SI opval
= frvbf_read_mem_UQI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), FLD (f_d12
)));
5074 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
5075 written
|= (1 << 5);
5076 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
5081 abuf
->written
= written
;
5086 /* nldhfi: nldhfi$pack @($GRi,$d12),$FRintk */
5089 SEM_FN_NAME (frvbf
,nldhfi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5091 #define FLD(f) abuf->fields.sfmt_ldbfi.f
5092 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5093 int UNUSED written
= 0;
5094 IADDR UNUSED pc
= abuf
->addr
;
5095 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5099 tmp_do_op
= frvbf_check_non_excepting_load (current_cpu
, FLD (f_GRi
), -1, FLD (f_FRk
), FLD (f_d12
), 2, 1);
5102 SI opval
= frvbf_read_mem_UHI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), FLD (f_d12
)));
5103 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
5104 written
|= (1 << 5);
5105 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
5110 abuf
->written
= written
;
5115 /* nldfi: nldfi$pack @($GRi,$d12),$FRintk */
5118 SEM_FN_NAME (frvbf
,nldfi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5120 #define FLD(f) abuf->fields.sfmt_ldbfi.f
5121 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5122 int UNUSED written
= 0;
5123 IADDR UNUSED pc
= abuf
->addr
;
5124 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5128 tmp_do_op
= frvbf_check_non_excepting_load (current_cpu
, FLD (f_GRi
), -1, FLD (f_FRk
), FLD (f_d12
), 4, 1);
5131 SI opval
= frvbf_read_mem_SI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), FLD (f_d12
)));
5132 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
5133 written
|= (1 << 5);
5134 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
5139 abuf
->written
= written
;
5144 /* lddi: lddi$pack @($GRi,$d12),$GRdoublek */
5147 SEM_FN_NAME (frvbf
,lddi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5149 #define FLD(f) abuf->fields.sfmt_smuli.f
5150 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5151 int UNUSED written
= 0;
5152 IADDR UNUSED pc
= abuf
->addr
;
5153 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5157 if (NESI (FLD (f_GRk
), 0)) {
5159 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
5161 DI opval
= frvbf_read_mem_DI (current_cpu
, pc
, tmp_address
);
5162 sim_queue_fn_di_write (current_cpu
, frvbf_h_gr_double_set
, FLD (f_GRk
), opval
);
5163 written
|= (1 << 4);
5164 TRACE_RESULT (current_cpu
, abuf
, "gr_double", 'D', opval
);
5170 abuf
->written
= written
;
5175 /* lddfi: lddfi$pack @($GRi,$d12),$FRdoublek */
5178 SEM_FN_NAME (frvbf
,lddfi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5180 #define FLD(f) abuf->fields.sfmt_lddfi.f
5181 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5182 int UNUSED written
= 0;
5183 IADDR UNUSED pc
= abuf
->addr
;
5184 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5189 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
5191 DF opval
= frvbf_read_mem_DF (current_cpu
, pc
, tmp_address
);
5192 sim_queue_fn_df_write (current_cpu
, frvbf_h_fr_double_set
, FLD (f_FRk
), opval
);
5193 TRACE_RESULT (current_cpu
, abuf
, "fr_double", 'f', opval
);
5202 /* nlddi: nlddi$pack @($GRi,$d12),$GRdoublek */
5205 SEM_FN_NAME (frvbf
,nlddi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5207 #define FLD(f) abuf->fields.sfmt_smuli.f
5208 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5209 int UNUSED written
= 0;
5210 IADDR UNUSED pc
= abuf
->addr
;
5211 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5217 tmp_do_op
= frvbf_check_non_excepting_load (current_cpu
, FLD (f_GRi
), -1, FLD (f_GRk
), FLD (f_d12
), 5, 0);
5219 if (NESI (FLD (f_GRk
), 0)) {
5221 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
5223 DI opval
= frvbf_read_mem_DI (current_cpu
, pc
, tmp_address
);
5224 sim_queue_fn_di_write (current_cpu
, frvbf_h_gr_double_set
, FLD (f_GRk
), opval
);
5225 written
|= (1 << 5);
5226 TRACE_RESULT (current_cpu
, abuf
, "gr_double", 'D', opval
);
5234 abuf
->written
= written
;
5239 /* nlddfi: nlddfi$pack @($GRi,$d12),$FRdoublek */
5242 SEM_FN_NAME (frvbf
,nlddfi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5244 #define FLD(f) abuf->fields.sfmt_lddfi.f
5245 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5246 int UNUSED written
= 0;
5247 IADDR UNUSED pc
= abuf
->addr
;
5248 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5254 tmp_do_op
= frvbf_check_non_excepting_load (current_cpu
, FLD (f_GRi
), -1, FLD (f_FRk
), FLD (f_d12
), 5, 1);
5257 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
5259 DF opval
= frvbf_read_mem_DF (current_cpu
, pc
, tmp_address
);
5260 sim_queue_fn_df_write (current_cpu
, frvbf_h_fr_double_set
, FLD (f_FRk
), opval
);
5261 written
|= (1 << 5);
5262 TRACE_RESULT (current_cpu
, abuf
, "fr_double", 'f', opval
);
5269 abuf
->written
= written
;
5274 /* ldqi: ldqi$pack @($GRi,$d12),$GRk */
5277 SEM_FN_NAME (frvbf
,ldqi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5279 #define FLD(f) abuf->fields.sfmt_stdi.f
5280 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5281 int UNUSED written
= 0;
5282 IADDR UNUSED pc
= abuf
->addr
;
5283 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5288 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
5289 frvbf_load_quad_GR (current_cpu
, pc
, tmp_address
, FLD (f_GRk
));
5297 /* ldqfi: ldqfi$pack @($GRi,$d12),$FRintk */
5300 SEM_FN_NAME (frvbf
,ldqfi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5302 #define FLD(f) abuf->fields.sfmt_stdfi.f
5303 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5304 int UNUSED written
= 0;
5305 IADDR UNUSED pc
= abuf
->addr
;
5306 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5311 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
5312 frvbf_load_quad_FRint (current_cpu
, pc
, tmp_address
, FLD (f_FRk
));
5320 /* nldqi: nldqi$pack @($GRi,$d12),$GRk */
5323 SEM_FN_NAME (frvbf
,nldqi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5325 #define FLD(f) abuf->fields.sfmt_stdi.f
5326 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5327 int UNUSED written
= 0;
5328 IADDR UNUSED pc
= abuf
->addr
;
5329 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5335 tmp_do_op
= frvbf_check_non_excepting_load (current_cpu
, FLD (f_GRi
), -1, FLD (f_GRk
), FLD (f_d12
), 6, 0);
5338 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
5339 frvbf_load_quad_GR (current_cpu
, pc
, tmp_address
, FLD (f_GRk
));
5349 /* nldqfi: nldqfi$pack @($GRi,$d12),$FRintk */
5352 SEM_FN_NAME (frvbf
,nldqfi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5354 #define FLD(f) abuf->fields.sfmt_stdfi.f
5355 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5356 int UNUSED written
= 0;
5357 IADDR UNUSED pc
= abuf
->addr
;
5358 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5364 tmp_do_op
= frvbf_check_non_excepting_load (current_cpu
, FLD (f_GRi
), -1, FLD (f_FRk
), FLD (f_d12
), 6, 1);
5367 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
5368 frvbf_load_quad_FRint (current_cpu
, pc
, tmp_address
, FLD (f_FRk
));
5378 /* stb: stb$pack $GRk,@($GRi,$GRj) */
5381 SEM_FN_NAME (frvbf
,stb
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5383 #define FLD(f) abuf->fields.sfmt_cswap.f
5384 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5385 int UNUSED written
= 0;
5386 IADDR UNUSED pc
= abuf
->addr
;
5387 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5389 frvbf_write_mem_QI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))), GET_H_GR (FLD (f_GRk
)));
5395 /* sth: sth$pack $GRk,@($GRi,$GRj) */
5398 SEM_FN_NAME (frvbf
,sth
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5400 #define FLD(f) abuf->fields.sfmt_cswap.f
5401 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5402 int UNUSED written
= 0;
5403 IADDR UNUSED pc
= abuf
->addr
;
5404 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5406 frvbf_write_mem_HI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))), GET_H_GR (FLD (f_GRk
)));
5412 /* st: st$pack $GRk,@($GRi,$GRj) */
5415 SEM_FN_NAME (frvbf
,st
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5417 #define FLD(f) abuf->fields.sfmt_cswap.f
5418 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5419 int UNUSED written
= 0;
5420 IADDR UNUSED pc
= abuf
->addr
;
5421 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5423 frvbf_write_mem_SI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))), GET_H_GR (FLD (f_GRk
)));
5429 /* stbf: stbf$pack $FRintk,@($GRi,$GRj) */
5432 SEM_FN_NAME (frvbf
,stbf
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5434 #define FLD(f) abuf->fields.sfmt_cstbfu.f
5435 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5436 int UNUSED written
= 0;
5437 IADDR UNUSED pc
= abuf
->addr
;
5438 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5440 frvbf_write_mem_QI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))), GET_H_FR_INT (FLD (f_FRk
)));
5446 /* sthf: sthf$pack $FRintk,@($GRi,$GRj) */
5449 SEM_FN_NAME (frvbf
,sthf
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5451 #define FLD(f) abuf->fields.sfmt_cstbfu.f
5452 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5453 int UNUSED written
= 0;
5454 IADDR UNUSED pc
= abuf
->addr
;
5455 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5457 frvbf_write_mem_HI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))), GET_H_FR_INT (FLD (f_FRk
)));
5463 /* stf: stf$pack $FRintk,@($GRi,$GRj) */
5466 SEM_FN_NAME (frvbf
,stf
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5468 #define FLD(f) abuf->fields.sfmt_cstbfu.f
5469 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5470 int UNUSED written
= 0;
5471 IADDR UNUSED pc
= abuf
->addr
;
5472 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5474 frvbf_write_mem_SI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))), GET_H_FR_INT (FLD (f_FRk
)));
5480 /* stc: stc$pack $CPRk,@($GRi,$GRj) */
5483 SEM_FN_NAME (frvbf
,stc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5485 #define FLD(f) abuf->fields.sfmt_stcu.f
5486 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5487 int UNUSED written
= 0;
5488 IADDR UNUSED pc
= abuf
->addr
;
5489 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5491 frvbf_write_mem_SI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))), CPU (h_cpr
[FLD (f_CPRk
)]));
5497 /* rstb: rstb$pack $GRk,@($GRi,$GRj) */
5500 SEM_FN_NAME (frvbf
,rstb
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5502 #define FLD(f) abuf->fields.sfmt_cswap.f
5503 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5504 int UNUSED written
= 0;
5505 IADDR UNUSED pc
= abuf
->addr
;
5506 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5510 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
5511 frvbf_write_mem_QI (current_cpu
, pc
, tmp_address
, GET_H_GR (FLD (f_GRk
)));
5512 frvbf_check_recovering_store (current_cpu
, tmp_address
, FLD (f_GRk
), 1, 0);
5519 /* rsth: rsth$pack $GRk,@($GRi,$GRj) */
5522 SEM_FN_NAME (frvbf
,rsth
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5524 #define FLD(f) abuf->fields.sfmt_cswap.f
5525 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5526 int UNUSED written
= 0;
5527 IADDR UNUSED pc
= abuf
->addr
;
5528 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5532 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
5533 frvbf_write_mem_HI (current_cpu
, pc
, tmp_address
, GET_H_GR (FLD (f_GRk
)));
5534 frvbf_check_recovering_store (current_cpu
, tmp_address
, FLD (f_GRk
), 2, 0);
5541 /* rst: rst$pack $GRk,@($GRi,$GRj) */
5544 SEM_FN_NAME (frvbf
,rst
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5546 #define FLD(f) abuf->fields.sfmt_cswap.f
5547 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5548 int UNUSED written
= 0;
5549 IADDR UNUSED pc
= abuf
->addr
;
5550 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5554 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
5555 frvbf_write_mem_SI (current_cpu
, pc
, tmp_address
, GET_H_GR (FLD (f_GRk
)));
5556 frvbf_check_recovering_store (current_cpu
, tmp_address
, FLD (f_GRk
), 4, 0);
5563 /* rstbf: rstbf$pack $FRintk,@($GRi,$GRj) */
5566 SEM_FN_NAME (frvbf
,rstbf
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5568 #define FLD(f) abuf->fields.sfmt_cstbfu.f
5569 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5570 int UNUSED written
= 0;
5571 IADDR UNUSED pc
= abuf
->addr
;
5572 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5576 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
5577 frvbf_write_mem_QI (current_cpu
, pc
, tmp_address
, GET_H_FR_INT (FLD (f_FRk
)));
5578 frvbf_check_recovering_store (current_cpu
, tmp_address
, FLD (f_FRk
), 1, 1);
5585 /* rsthf: rsthf$pack $FRintk,@($GRi,$GRj) */
5588 SEM_FN_NAME (frvbf
,rsthf
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5590 #define FLD(f) abuf->fields.sfmt_cstbfu.f
5591 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5592 int UNUSED written
= 0;
5593 IADDR UNUSED pc
= abuf
->addr
;
5594 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5598 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
5599 frvbf_write_mem_HI (current_cpu
, pc
, tmp_address
, GET_H_FR_INT (FLD (f_FRk
)));
5600 frvbf_check_recovering_store (current_cpu
, tmp_address
, FLD (f_FRk
), 2, 1);
5607 /* rstf: rstf$pack $FRintk,@($GRi,$GRj) */
5610 SEM_FN_NAME (frvbf
,rstf
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5612 #define FLD(f) abuf->fields.sfmt_cstbfu.f
5613 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5614 int UNUSED written
= 0;
5615 IADDR UNUSED pc
= abuf
->addr
;
5616 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5620 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
5621 frvbf_write_mem_SI (current_cpu
, pc
, tmp_address
, GET_H_FR_INT (FLD (f_FRk
)));
5622 frvbf_check_recovering_store (current_cpu
, tmp_address
, FLD (f_FRk
), 4, 1);
5629 /* std: std$pack $GRk,@($GRi,$GRj) */
5632 SEM_FN_NAME (frvbf
,std
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5634 #define FLD(f) abuf->fields.sfmt_cstdu.f
5635 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5636 int UNUSED written
= 0;
5637 IADDR UNUSED pc
= abuf
->addr
;
5638 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5643 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
5644 frvbf_write_mem_DI (current_cpu
, pc
, tmp_address
, GET_H_GR_DOUBLE (FLD (f_GRk
)));
5652 /* stdf: stdf$pack $FRk,@($GRi,$GRj) */
5655 SEM_FN_NAME (frvbf
,stdf
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5657 #define FLD(f) abuf->fields.sfmt_cstdfu.f
5658 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5659 int UNUSED written
= 0;
5660 IADDR UNUSED pc
= abuf
->addr
;
5661 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5666 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
5667 frvbf_write_mem_DF (current_cpu
, pc
, tmp_address
, GET_H_FR_DOUBLE (FLD (f_FRk
)));
5675 /* stdc: stdc$pack $CPRk,@($GRi,$GRj) */
5678 SEM_FN_NAME (frvbf
,stdc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5680 #define FLD(f) abuf->fields.sfmt_stdcu.f
5681 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5682 int UNUSED written
= 0;
5683 IADDR UNUSED pc
= abuf
->addr
;
5684 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5689 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
5690 frvbf_write_mem_DI (current_cpu
, pc
, tmp_address
, GET_H_CPR_DOUBLE (FLD (f_CPRk
)));
5698 /* rstd: rstd$pack $GRk,@($GRi,$GRj) */
5701 SEM_FN_NAME (frvbf
,rstd
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5703 #define FLD(f) abuf->fields.sfmt_cstdu.f
5704 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5705 int UNUSED written
= 0;
5706 IADDR UNUSED pc
= abuf
->addr
;
5707 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5712 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
5713 frvbf_write_mem_DI (current_cpu
, pc
, tmp_address
, GET_H_GR_DOUBLE (FLD (f_GRk
)));
5715 frvbf_check_recovering_store (current_cpu
, tmp_address
, FLD (f_GRk
), 8, 0);
5722 /* rstdf: rstdf$pack $FRk,@($GRi,$GRj) */
5725 SEM_FN_NAME (frvbf
,rstdf
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5727 #define FLD(f) abuf->fields.sfmt_cstdfu.f
5728 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5729 int UNUSED written
= 0;
5730 IADDR UNUSED pc
= abuf
->addr
;
5731 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5736 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
5737 frvbf_write_mem_DF (current_cpu
, pc
, tmp_address
, GET_H_FR_DOUBLE (FLD (f_FRk
)));
5739 frvbf_check_recovering_store (current_cpu
, tmp_address
, FLD (f_FRk
), 8, 1);
5746 /* stq: stq$pack $GRk,@($GRi,$GRj) */
5749 SEM_FN_NAME (frvbf
,stq
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5751 #define FLD(f) abuf->fields.sfmt_smulcc.f
5752 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5753 int UNUSED written
= 0;
5754 IADDR UNUSED pc
= abuf
->addr
;
5755 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5760 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
5761 frvbf_store_quad_GR (current_cpu
, pc
, tmp_address
, FLD (f_GRk
));
5769 /* stqf: stqf$pack $FRintk,@($GRi,$GRj) */
5772 SEM_FN_NAME (frvbf
,stqf
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5774 #define FLD(f) abuf->fields.sfmt_cstdfu.f
5775 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5776 int UNUSED written
= 0;
5777 IADDR UNUSED pc
= abuf
->addr
;
5778 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5783 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
5784 frvbf_store_quad_FRint (current_cpu
, pc
, tmp_address
, FLD (f_FRk
));
5792 /* stqc: stqc$pack $CPRk,@($GRi,$GRj) */
5795 SEM_FN_NAME (frvbf
,stqc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5797 #define FLD(f) abuf->fields.sfmt_stdcu.f
5798 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5799 int UNUSED written
= 0;
5800 IADDR UNUSED pc
= abuf
->addr
;
5801 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5806 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
5807 frvbf_store_quad_CPR (current_cpu
, pc
, tmp_address
, FLD (f_CPRk
));
5815 /* rstq: rstq$pack $GRk,@($GRi,$GRj) */
5818 SEM_FN_NAME (frvbf
,rstq
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5820 #define FLD(f) abuf->fields.sfmt_smulcc.f
5821 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5822 int UNUSED written
= 0;
5823 IADDR UNUSED pc
= abuf
->addr
;
5824 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5829 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
5830 frvbf_store_quad_GR (current_cpu
, pc
, tmp_address
, FLD (f_GRk
));
5832 frvbf_check_recovering_store (current_cpu
, tmp_address
, FLD (f_GRk
), 16, 0);
5839 /* rstqf: rstqf$pack $FRintk,@($GRi,$GRj) */
5842 SEM_FN_NAME (frvbf
,rstqf
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5844 #define FLD(f) abuf->fields.sfmt_cstdfu.f
5845 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5846 int UNUSED written
= 0;
5847 IADDR UNUSED pc
= abuf
->addr
;
5848 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5853 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
5854 frvbf_store_quad_FRint (current_cpu
, pc
, tmp_address
, FLD (f_FRk
));
5856 frvbf_check_recovering_store (current_cpu
, tmp_address
, FLD (f_FRk
), 16, 1);
5863 /* stbu: stbu$pack $GRk,@($GRi,$GRj) */
5866 SEM_FN_NAME (frvbf
,stbu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5868 #define FLD(f) abuf->fields.sfmt_cstbu.f
5869 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5870 int UNUSED written
= 0;
5871 IADDR UNUSED pc
= abuf
->addr
;
5872 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5876 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
5877 frvbf_write_mem_QI (current_cpu
, pc
, tmp_address
, GET_H_GR (FLD (f_GRk
)));
5879 SI opval
= tmp_address
;
5880 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
5881 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
5889 /* sthu: sthu$pack $GRk,@($GRi,$GRj) */
5892 SEM_FN_NAME (frvbf
,sthu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5894 #define FLD(f) abuf->fields.sfmt_cstbu.f
5895 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5896 int UNUSED written
= 0;
5897 IADDR UNUSED pc
= abuf
->addr
;
5898 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5902 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
5903 frvbf_write_mem_HI (current_cpu
, pc
, tmp_address
, GET_H_GR (FLD (f_GRk
)));
5905 SI opval
= tmp_address
;
5906 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
5907 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
5915 /* stu: stu$pack $GRk,@($GRi,$GRj) */
5918 SEM_FN_NAME (frvbf
,stu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5920 #define FLD(f) abuf->fields.sfmt_cstbu.f
5921 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5922 int UNUSED written
= 0;
5923 IADDR UNUSED pc
= abuf
->addr
;
5924 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5928 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
5929 frvbf_write_mem_WI (current_cpu
, pc
, tmp_address
, GET_H_GR (FLD (f_GRk
)));
5931 SI opval
= tmp_address
;
5932 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
5933 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
5941 /* stbfu: stbfu$pack $FRintk,@($GRi,$GRj) */
5944 SEM_FN_NAME (frvbf
,stbfu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5946 #define FLD(f) abuf->fields.sfmt_cstbfu.f
5947 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5948 int UNUSED written
= 0;
5949 IADDR UNUSED pc
= abuf
->addr
;
5950 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5954 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
5955 frvbf_write_mem_QI (current_cpu
, pc
, tmp_address
, GET_H_FR_INT (FLD (f_FRk
)));
5957 SI opval
= tmp_address
;
5958 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
5959 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
5967 /* sthfu: sthfu$pack $FRintk,@($GRi,$GRj) */
5970 SEM_FN_NAME (frvbf
,sthfu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5972 #define FLD(f) abuf->fields.sfmt_cstbfu.f
5973 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5974 int UNUSED written
= 0;
5975 IADDR UNUSED pc
= abuf
->addr
;
5976 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5980 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
5981 frvbf_write_mem_HI (current_cpu
, pc
, tmp_address
, GET_H_FR_INT (FLD (f_FRk
)));
5983 SI opval
= tmp_address
;
5984 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
5985 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
5993 /* stfu: stfu$pack $FRintk,@($GRi,$GRj) */
5996 SEM_FN_NAME (frvbf
,stfu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5998 #define FLD(f) abuf->fields.sfmt_cstbfu.f
5999 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6000 int UNUSED written
= 0;
6001 IADDR UNUSED pc
= abuf
->addr
;
6002 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6006 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
6007 frvbf_write_mem_SI (current_cpu
, pc
, tmp_address
, GET_H_FR_INT (FLD (f_FRk
)));
6009 SI opval
= tmp_address
;
6010 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
6011 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
6019 /* stcu: stcu$pack $CPRk,@($GRi,$GRj) */
6022 SEM_FN_NAME (frvbf
,stcu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6024 #define FLD(f) abuf->fields.sfmt_stcu.f
6025 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6026 int UNUSED written
= 0;
6027 IADDR UNUSED pc
= abuf
->addr
;
6028 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6032 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
6033 frvbf_write_mem_SI (current_cpu
, pc
, tmp_address
, CPU (h_cpr
[FLD (f_CPRk
)]));
6035 SI opval
= tmp_address
;
6036 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
6037 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
6045 /* stdu: stdu$pack $GRk,@($GRi,$GRj) */
6048 SEM_FN_NAME (frvbf
,stdu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6050 #define FLD(f) abuf->fields.sfmt_cstdu.f
6051 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6052 int UNUSED written
= 0;
6053 IADDR UNUSED pc
= abuf
->addr
;
6054 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6059 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
6060 frvbf_write_mem_DI (current_cpu
, pc
, tmp_address
, GET_H_GR_DOUBLE (FLD (f_GRk
)));
6063 SI opval
= tmp_address
;
6064 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
6065 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
6073 /* stdfu: stdfu$pack $FRk,@($GRi,$GRj) */
6076 SEM_FN_NAME (frvbf
,stdfu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6078 #define FLD(f) abuf->fields.sfmt_cstdfu.f
6079 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6080 int UNUSED written
= 0;
6081 IADDR UNUSED pc
= abuf
->addr
;
6082 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6087 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
6088 frvbf_write_mem_DF (current_cpu
, pc
, tmp_address
, GET_H_FR_DOUBLE (FLD (f_FRk
)));
6091 SI opval
= tmp_address
;
6092 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
6093 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
6101 /* stdcu: stdcu$pack $CPRk,@($GRi,$GRj) */
6104 SEM_FN_NAME (frvbf
,stdcu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6106 #define FLD(f) abuf->fields.sfmt_stdcu.f
6107 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6108 int UNUSED written
= 0;
6109 IADDR UNUSED pc
= abuf
->addr
;
6110 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6115 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
6116 frvbf_write_mem_DI (current_cpu
, pc
, tmp_address
, GET_H_CPR_DOUBLE (FLD (f_CPRk
)));
6119 SI opval
= tmp_address
;
6120 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
6121 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
6129 /* stqu: stqu$pack $GRk,@($GRi,$GRj) */
6132 SEM_FN_NAME (frvbf
,stqu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6134 #define FLD(f) abuf->fields.sfmt_cstdu.f
6135 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6136 int UNUSED written
= 0;
6137 IADDR UNUSED pc
= abuf
->addr
;
6138 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6143 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
6144 frvbf_store_quad_GR (current_cpu
, pc
, tmp_address
, FLD (f_GRk
));
6147 SI opval
= tmp_address
;
6148 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
6149 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
6157 /* stqfu: stqfu$pack $FRintk,@($GRi,$GRj) */
6160 SEM_FN_NAME (frvbf
,stqfu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6162 #define FLD(f) abuf->fields.sfmt_cstdfu.f
6163 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6164 int UNUSED written
= 0;
6165 IADDR UNUSED pc
= abuf
->addr
;
6166 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6171 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
6172 frvbf_store_quad_FRint (current_cpu
, pc
, tmp_address
, FLD (f_FRk
));
6175 SI opval
= tmp_address
;
6176 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
6177 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
6185 /* stqcu: stqcu$pack $CPRk,@($GRi,$GRj) */
6188 SEM_FN_NAME (frvbf
,stqcu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6190 #define FLD(f) abuf->fields.sfmt_stdcu.f
6191 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6192 int UNUSED written
= 0;
6193 IADDR UNUSED pc
= abuf
->addr
;
6194 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6199 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
6200 frvbf_store_quad_CPR (current_cpu
, pc
, tmp_address
, FLD (f_CPRk
));
6203 SI opval
= tmp_address
;
6204 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
6205 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
6213 /* cldsb: cldsb$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6216 SEM_FN_NAME (frvbf
,cldsb
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6218 #define FLD(f) abuf->fields.sfmt_cswap.f
6219 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6220 int UNUSED written
= 0;
6221 IADDR UNUSED pc
= abuf
->addr
;
6222 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6224 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
6226 SI opval
= frvbf_read_mem_QI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))));
6227 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
6228 written
|= (1 << 5);
6229 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
6233 abuf
->written
= written
;
6238 /* cldub: cldub$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6241 SEM_FN_NAME (frvbf
,cldub
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6243 #define FLD(f) abuf->fields.sfmt_cswap.f
6244 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6245 int UNUSED written
= 0;
6246 IADDR UNUSED pc
= abuf
->addr
;
6247 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6249 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
6251 SI opval
= frvbf_read_mem_UQI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))));
6252 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
6253 written
|= (1 << 5);
6254 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
6258 abuf
->written
= written
;
6263 /* cldsh: cldsh$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6266 SEM_FN_NAME (frvbf
,cldsh
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6268 #define FLD(f) abuf->fields.sfmt_cswap.f
6269 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6270 int UNUSED written
= 0;
6271 IADDR UNUSED pc
= abuf
->addr
;
6272 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6274 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
6276 SI opval
= frvbf_read_mem_HI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))));
6277 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
6278 written
|= (1 << 5);
6279 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
6283 abuf
->written
= written
;
6288 /* clduh: clduh$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6291 SEM_FN_NAME (frvbf
,clduh
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6293 #define FLD(f) abuf->fields.sfmt_cswap.f
6294 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6295 int UNUSED written
= 0;
6296 IADDR UNUSED pc
= abuf
->addr
;
6297 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6299 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
6301 SI opval
= frvbf_read_mem_UHI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))));
6302 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
6303 written
|= (1 << 5);
6304 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
6308 abuf
->written
= written
;
6313 /* cld: cld$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6316 SEM_FN_NAME (frvbf
,cld
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6318 #define FLD(f) abuf->fields.sfmt_cswap.f
6319 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6320 int UNUSED written
= 0;
6321 IADDR UNUSED pc
= abuf
->addr
;
6322 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6324 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
6326 SI opval
= frvbf_read_mem_SI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))));
6327 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
6328 written
|= (1 << 5);
6329 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
6333 abuf
->written
= written
;
6338 /* cldbf: cldbf$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6341 SEM_FN_NAME (frvbf
,cldbf
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6343 #define FLD(f) abuf->fields.sfmt_cldbfu.f
6344 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6345 int UNUSED written
= 0;
6346 IADDR UNUSED pc
= abuf
->addr
;
6347 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6349 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
6351 SI opval
= frvbf_read_mem_UQI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))));
6352 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
6353 written
|= (1 << 5);
6354 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
6358 abuf
->written
= written
;
6363 /* cldhf: cldhf$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6366 SEM_FN_NAME (frvbf
,cldhf
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6368 #define FLD(f) abuf->fields.sfmt_cldbfu.f
6369 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6370 int UNUSED written
= 0;
6371 IADDR UNUSED pc
= abuf
->addr
;
6372 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6374 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
6376 SI opval
= frvbf_read_mem_UHI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))));
6377 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
6378 written
|= (1 << 5);
6379 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
6383 abuf
->written
= written
;
6388 /* cldf: cldf$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6391 SEM_FN_NAME (frvbf
,cldf
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6393 #define FLD(f) abuf->fields.sfmt_cldbfu.f
6394 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6395 int UNUSED written
= 0;
6396 IADDR UNUSED pc
= abuf
->addr
;
6397 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6399 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
6401 SI opval
= frvbf_read_mem_SI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))));
6402 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
6403 written
|= (1 << 5);
6404 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
6408 abuf
->written
= written
;
6413 /* cldd: cldd$pack @($GRi,$GRj),$GRdoublek,$CCi,$cond */
6416 SEM_FN_NAME (frvbf
,cldd
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6418 #define FLD(f) abuf->fields.sfmt_clddu.f
6419 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6420 int UNUSED written
= 0;
6421 IADDR UNUSED pc
= abuf
->addr
;
6422 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6424 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
6427 if (NESI (FLD (f_GRk
), 0)) {
6429 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
6431 DI opval
= frvbf_read_mem_DI (current_cpu
, pc
, tmp_address
);
6432 sim_queue_fn_di_write (current_cpu
, frvbf_h_gr_double_set
, FLD (f_GRk
), opval
);
6433 written
|= (1 << 6);
6434 TRACE_RESULT (current_cpu
, abuf
, "gr_double", 'D', opval
);
6441 abuf
->written
= written
;
6446 /* clddf: clddf$pack @($GRi,$GRj),$FRdoublek,$CCi,$cond */
6449 SEM_FN_NAME (frvbf
,clddf
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6451 #define FLD(f) abuf->fields.sfmt_clddfu.f
6452 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6453 int UNUSED written
= 0;
6454 IADDR UNUSED pc
= abuf
->addr
;
6455 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6457 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
6461 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
6463 DF opval
= frvbf_read_mem_DF (current_cpu
, pc
, tmp_address
);
6464 sim_queue_fn_df_write (current_cpu
, frvbf_h_fr_double_set
, FLD (f_FRk
), opval
);
6465 written
|= (1 << 5);
6466 TRACE_RESULT (current_cpu
, abuf
, "fr_double", 'f', opval
);
6472 abuf
->written
= written
;
6477 /* cldq: cldq$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6480 SEM_FN_NAME (frvbf
,cldq
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6482 #define FLD(f) abuf->fields.sfmt_cswap.f
6483 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6484 int UNUSED written
= 0;
6485 IADDR UNUSED pc
= abuf
->addr
;
6486 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6488 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
6492 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
6493 frvbf_load_quad_GR (current_cpu
, pc
, tmp_address
, FLD (f_GRk
));
6502 /* cldsbu: cldsbu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6505 SEM_FN_NAME (frvbf
,cldsbu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6507 #define FLD(f) abuf->fields.sfmt_cldsbu.f
6508 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6509 int UNUSED written
= 0;
6510 IADDR UNUSED pc
= abuf
->addr
;
6511 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6513 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
6516 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
6518 SI opval
= frvbf_read_mem_QI (current_cpu
, pc
, tmp_address
);
6519 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
6520 written
|= (1 << 8);
6521 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
6523 if (NESI (FLD (f_GRi
), FLD (f_GRk
))) {
6525 SI opval
= tmp_address
;
6526 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
6527 written
|= (1 << 7);
6528 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
6534 abuf
->written
= written
;
6539 /* cldubu: cldubu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6542 SEM_FN_NAME (frvbf
,cldubu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6544 #define FLD(f) abuf->fields.sfmt_cldsbu.f
6545 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6546 int UNUSED written
= 0;
6547 IADDR UNUSED pc
= abuf
->addr
;
6548 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6550 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
6553 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
6555 SI opval
= frvbf_read_mem_UQI (current_cpu
, pc
, tmp_address
);
6556 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
6557 written
|= (1 << 8);
6558 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
6560 if (NESI (FLD (f_GRi
), FLD (f_GRk
))) {
6562 SI opval
= tmp_address
;
6563 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
6564 written
|= (1 << 7);
6565 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
6571 abuf
->written
= written
;
6576 /* cldshu: cldshu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6579 SEM_FN_NAME (frvbf
,cldshu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6581 #define FLD(f) abuf->fields.sfmt_cldsbu.f
6582 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6583 int UNUSED written
= 0;
6584 IADDR UNUSED pc
= abuf
->addr
;
6585 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6587 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
6590 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
6592 SI opval
= frvbf_read_mem_HI (current_cpu
, pc
, tmp_address
);
6593 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
6594 written
|= (1 << 8);
6595 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
6597 if (NESI (FLD (f_GRi
), FLD (f_GRk
))) {
6599 SI opval
= tmp_address
;
6600 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
6601 written
|= (1 << 7);
6602 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
6608 abuf
->written
= written
;
6613 /* clduhu: clduhu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6616 SEM_FN_NAME (frvbf
,clduhu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6618 #define FLD(f) abuf->fields.sfmt_cldsbu.f
6619 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6620 int UNUSED written
= 0;
6621 IADDR UNUSED pc
= abuf
->addr
;
6622 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6624 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
6627 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
6629 SI opval
= frvbf_read_mem_UHI (current_cpu
, pc
, tmp_address
);
6630 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
6631 written
|= (1 << 8);
6632 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
6634 if (NESI (FLD (f_GRi
), FLD (f_GRk
))) {
6636 SI opval
= tmp_address
;
6637 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
6638 written
|= (1 << 7);
6639 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
6645 abuf
->written
= written
;
6650 /* cldu: cldu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6653 SEM_FN_NAME (frvbf
,cldu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6655 #define FLD(f) abuf->fields.sfmt_cldsbu.f
6656 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6657 int UNUSED written
= 0;
6658 IADDR UNUSED pc
= abuf
->addr
;
6659 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6661 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
6664 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
6666 SI opval
= frvbf_read_mem_SI (current_cpu
, pc
, tmp_address
);
6667 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
6668 written
|= (1 << 8);
6669 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
6671 if (NESI (FLD (f_GRi
), FLD (f_GRk
))) {
6673 SI opval
= tmp_address
;
6674 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
6675 written
|= (1 << 7);
6676 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
6682 abuf
->written
= written
;
6687 /* cldbfu: cldbfu$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6690 SEM_FN_NAME (frvbf
,cldbfu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6692 #define FLD(f) abuf->fields.sfmt_cldbfu.f
6693 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6694 int UNUSED written
= 0;
6695 IADDR UNUSED pc
= abuf
->addr
;
6696 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6698 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
6701 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
6703 SI opval
= frvbf_read_mem_UQI (current_cpu
, pc
, tmp_address
);
6704 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
6705 written
|= (1 << 5);
6706 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
6709 SI opval
= tmp_address
;
6710 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
6711 written
|= (1 << 6);
6712 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
6717 abuf
->written
= written
;
6722 /* cldhfu: cldhfu$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6725 SEM_FN_NAME (frvbf
,cldhfu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6727 #define FLD(f) abuf->fields.sfmt_cldbfu.f
6728 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6729 int UNUSED written
= 0;
6730 IADDR UNUSED pc
= abuf
->addr
;
6731 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6733 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
6736 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
6738 SI opval
= frvbf_read_mem_UHI (current_cpu
, pc
, tmp_address
);
6739 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
6740 written
|= (1 << 5);
6741 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
6744 SI opval
= tmp_address
;
6745 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
6746 written
|= (1 << 6);
6747 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
6752 abuf
->written
= written
;
6757 /* cldfu: cldfu$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6760 SEM_FN_NAME (frvbf
,cldfu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6762 #define FLD(f) abuf->fields.sfmt_cldbfu.f
6763 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6764 int UNUSED written
= 0;
6765 IADDR UNUSED pc
= abuf
->addr
;
6766 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6768 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
6771 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
6773 SI opval
= frvbf_read_mem_SI (current_cpu
, pc
, tmp_address
);
6774 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
6775 written
|= (1 << 5);
6776 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
6779 SI opval
= tmp_address
;
6780 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
6781 written
|= (1 << 6);
6782 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
6787 abuf
->written
= written
;
6792 /* clddu: clddu$pack @($GRi,$GRj),$GRdoublek,$CCi,$cond */
6795 SEM_FN_NAME (frvbf
,clddu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6797 #define FLD(f) abuf->fields.sfmt_clddu.f
6798 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6799 int UNUSED written
= 0;
6800 IADDR UNUSED pc
= abuf
->addr
;
6801 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6803 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
6806 if (NESI (FLD (f_GRk
), 0)) {
6808 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
6810 DI opval
= frvbf_read_mem_DI (current_cpu
, pc
, tmp_address
);
6811 sim_queue_fn_di_write (current_cpu
, frvbf_h_gr_double_set
, FLD (f_GRk
), opval
);
6812 written
|= (1 << 7);
6813 TRACE_RESULT (current_cpu
, abuf
, "gr_double", 'D', opval
);
6817 if (NESI (FLD (f_GRi
), FLD (f_GRk
))) {
6819 SI opval
= tmp_address
;
6820 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
6821 written
|= (1 << 8);
6822 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
6828 abuf
->written
= written
;
6833 /* clddfu: clddfu$pack @($GRi,$GRj),$FRdoublek,$CCi,$cond */
6836 SEM_FN_NAME (frvbf
,clddfu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6838 #define FLD(f) abuf->fields.sfmt_clddfu.f
6839 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6840 int UNUSED written
= 0;
6841 IADDR UNUSED pc
= abuf
->addr
;
6842 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6844 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
6848 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
6850 DF opval
= frvbf_read_mem_DF (current_cpu
, pc
, tmp_address
);
6851 sim_queue_fn_df_write (current_cpu
, frvbf_h_fr_double_set
, FLD (f_FRk
), opval
);
6852 written
|= (1 << 5);
6853 TRACE_RESULT (current_cpu
, abuf
, "fr_double", 'f', opval
);
6857 SI opval
= tmp_address
;
6858 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
6859 written
|= (1 << 6);
6860 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
6865 abuf
->written
= written
;
6870 /* cldqu: cldqu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6873 SEM_FN_NAME (frvbf
,cldqu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6875 #define FLD(f) abuf->fields.sfmt_cstdu.f
6876 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6877 int UNUSED written
= 0;
6878 IADDR UNUSED pc
= abuf
->addr
;
6879 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6881 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
6885 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
6886 frvbf_load_quad_GR (current_cpu
, pc
, tmp_address
, FLD (f_GRk
));
6888 if (NESI (FLD (f_GRi
), FLD (f_GRk
))) {
6890 SI opval
= tmp_address
;
6891 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
6892 written
|= (1 << 7);
6893 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
6899 abuf
->written
= written
;
6904 /* cstb: cstb$pack $GRk,@($GRi,$GRj),$CCi,$cond */
6907 SEM_FN_NAME (frvbf
,cstb
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6909 #define FLD(f) abuf->fields.sfmt_cswap.f
6910 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6911 int UNUSED written
= 0;
6912 IADDR UNUSED pc
= abuf
->addr
;
6913 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6915 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
6916 frvbf_write_mem_QI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))), GET_H_GR (FLD (f_GRk
)));
6923 /* csth: csth$pack $GRk,@($GRi,$GRj),$CCi,$cond */
6926 SEM_FN_NAME (frvbf
,csth
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6928 #define FLD(f) abuf->fields.sfmt_cswap.f
6929 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6930 int UNUSED written
= 0;
6931 IADDR UNUSED pc
= abuf
->addr
;
6932 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6934 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
6935 frvbf_write_mem_HI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))), GET_H_GR (FLD (f_GRk
)));
6942 /* cst: cst$pack $GRk,@($GRi,$GRj),$CCi,$cond */
6945 SEM_FN_NAME (frvbf
,cst
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6947 #define FLD(f) abuf->fields.sfmt_cswap.f
6948 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6949 int UNUSED written
= 0;
6950 IADDR UNUSED pc
= abuf
->addr
;
6951 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6953 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
6954 frvbf_write_mem_SI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))), GET_H_GR (FLD (f_GRk
)));
6961 /* cstbf: cstbf$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
6964 SEM_FN_NAME (frvbf
,cstbf
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6966 #define FLD(f) abuf->fields.sfmt_cstbfu.f
6967 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6968 int UNUSED written
= 0;
6969 IADDR UNUSED pc
= abuf
->addr
;
6970 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6972 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
6973 frvbf_write_mem_QI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))), GET_H_FR_INT (FLD (f_FRk
)));
6980 /* csthf: csthf$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
6983 SEM_FN_NAME (frvbf
,csthf
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6985 #define FLD(f) abuf->fields.sfmt_cstbfu.f
6986 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6987 int UNUSED written
= 0;
6988 IADDR UNUSED pc
= abuf
->addr
;
6989 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6991 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
6992 frvbf_write_mem_HI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))), GET_H_FR_INT (FLD (f_FRk
)));
6999 /* cstf: cstf$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
7002 SEM_FN_NAME (frvbf
,cstf
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7004 #define FLD(f) abuf->fields.sfmt_cstbfu.f
7005 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7006 int UNUSED written
= 0;
7007 IADDR UNUSED pc
= abuf
->addr
;
7008 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
7010 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
7011 frvbf_write_mem_SI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))), GET_H_FR_INT (FLD (f_FRk
)));
7018 /* cstd: cstd$pack $GRk,@($GRi,$GRj),$CCi,$cond */
7021 SEM_FN_NAME (frvbf
,cstd
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7023 #define FLD(f) abuf->fields.sfmt_cstdu.f
7024 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7025 int UNUSED written
= 0;
7026 IADDR UNUSED pc
= abuf
->addr
;
7027 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
7029 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
7033 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
7034 frvbf_write_mem_DI (current_cpu
, pc
, tmp_address
, GET_H_GR_DOUBLE (FLD (f_GRk
)));
7043 /* cstdf: cstdf$pack $FRk,@($GRi,$GRj),$CCi,$cond */
7046 SEM_FN_NAME (frvbf
,cstdf
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7048 #define FLD(f) abuf->fields.sfmt_cstdfu.f
7049 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7050 int UNUSED written
= 0;
7051 IADDR UNUSED pc
= abuf
->addr
;
7052 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
7054 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
7058 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
7059 frvbf_write_mem_DF (current_cpu
, pc
, tmp_address
, GET_H_FR_DOUBLE (FLD (f_FRk
)));
7068 /* cstq: cstq$pack $GRk,@($GRi,$GRj),$CCi,$cond */
7071 SEM_FN_NAME (frvbf
,cstq
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7073 #define FLD(f) abuf->fields.sfmt_cswap.f
7074 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7075 int UNUSED written
= 0;
7076 IADDR UNUSED pc
= abuf
->addr
;
7077 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
7079 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
7083 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
7084 frvbf_store_quad_GR (current_cpu
, pc
, tmp_address
, FLD (f_GRk
));
7093 /* cstbu: cstbu$pack $GRk,@($GRi,$GRj),$CCi,$cond */
7096 SEM_FN_NAME (frvbf
,cstbu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7098 #define FLD(f) abuf->fields.sfmt_cstbu.f
7099 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7100 int UNUSED written
= 0;
7101 IADDR UNUSED pc
= abuf
->addr
;
7102 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
7104 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
7107 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
7108 frvbf_write_mem_QI (current_cpu
, pc
, tmp_address
, GET_H_GR (FLD (f_GRk
)));
7110 SI opval
= tmp_address
;
7111 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
7112 written
|= (1 << 6);
7113 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
7118 abuf
->written
= written
;
7123 /* csthu: csthu$pack $GRk,@($GRi,$GRj),$CCi,$cond */
7126 SEM_FN_NAME (frvbf
,csthu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7128 #define FLD(f) abuf->fields.sfmt_cstbu.f
7129 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7130 int UNUSED written
= 0;
7131 IADDR UNUSED pc
= abuf
->addr
;
7132 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
7134 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
7137 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
7138 frvbf_write_mem_HI (current_cpu
, pc
, tmp_address
, GET_H_GR (FLD (f_GRk
)));
7140 SI opval
= tmp_address
;
7141 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
7142 written
|= (1 << 6);
7143 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
7148 abuf
->written
= written
;
7153 /* cstu: cstu$pack $GRk,@($GRi,$GRj),$CCi,$cond */
7156 SEM_FN_NAME (frvbf
,cstu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7158 #define FLD(f) abuf->fields.sfmt_cstbu.f
7159 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7160 int UNUSED written
= 0;
7161 IADDR UNUSED pc
= abuf
->addr
;
7162 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
7164 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
7167 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
7168 frvbf_write_mem_SI (current_cpu
, pc
, tmp_address
, GET_H_GR (FLD (f_GRk
)));
7170 SI opval
= tmp_address
;
7171 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
7172 written
|= (1 << 6);
7173 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
7178 abuf
->written
= written
;
7183 /* cstbfu: cstbfu$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
7186 SEM_FN_NAME (frvbf
,cstbfu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7188 #define FLD(f) abuf->fields.sfmt_cstbfu.f
7189 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7190 int UNUSED written
= 0;
7191 IADDR UNUSED pc
= abuf
->addr
;
7192 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
7194 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
7197 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
7198 frvbf_write_mem_QI (current_cpu
, pc
, tmp_address
, GET_H_FR_INT (FLD (f_FRk
)));
7200 SI opval
= tmp_address
;
7201 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
7202 written
|= (1 << 6);
7203 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
7208 abuf
->written
= written
;
7213 /* csthfu: csthfu$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
7216 SEM_FN_NAME (frvbf
,csthfu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7218 #define FLD(f) abuf->fields.sfmt_cstbfu.f
7219 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7220 int UNUSED written
= 0;
7221 IADDR UNUSED pc
= abuf
->addr
;
7222 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
7224 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
7227 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
7228 frvbf_write_mem_HI (current_cpu
, pc
, tmp_address
, GET_H_FR_INT (FLD (f_FRk
)));
7230 SI opval
= tmp_address
;
7231 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
7232 written
|= (1 << 6);
7233 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
7238 abuf
->written
= written
;
7243 /* cstfu: cstfu$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
7246 SEM_FN_NAME (frvbf
,cstfu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7248 #define FLD(f) abuf->fields.sfmt_cstbfu.f
7249 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7250 int UNUSED written
= 0;
7251 IADDR UNUSED pc
= abuf
->addr
;
7252 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
7254 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
7257 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
7258 frvbf_write_mem_SI (current_cpu
, pc
, tmp_address
, GET_H_FR_INT (FLD (f_FRk
)));
7260 SI opval
= tmp_address
;
7261 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
7262 written
|= (1 << 6);
7263 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
7268 abuf
->written
= written
;
7273 /* cstdu: cstdu$pack $GRk,@($GRi,$GRj),$CCi,$cond */
7276 SEM_FN_NAME (frvbf
,cstdu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7278 #define FLD(f) abuf->fields.sfmt_cstdu.f
7279 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7280 int UNUSED written
= 0;
7281 IADDR UNUSED pc
= abuf
->addr
;
7282 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
7284 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
7288 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
7289 frvbf_write_mem_DI (current_cpu
, pc
, tmp_address
, GET_H_GR_DOUBLE (FLD (f_GRk
)));
7292 SI opval
= tmp_address
;
7293 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
7294 written
|= (1 << 6);
7295 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
7300 abuf
->written
= written
;
7305 /* cstdfu: cstdfu$pack $FRk,@($GRi,$GRj),$CCi,$cond */
7308 SEM_FN_NAME (frvbf
,cstdfu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7310 #define FLD(f) abuf->fields.sfmt_cstdfu.f
7311 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7312 int UNUSED written
= 0;
7313 IADDR UNUSED pc
= abuf
->addr
;
7314 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
7316 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
7320 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
7321 frvbf_write_mem_DF (current_cpu
, pc
, tmp_address
, GET_H_FR_DOUBLE (FLD (f_FRk
)));
7324 SI opval
= tmp_address
;
7325 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
7326 written
|= (1 << 6);
7327 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
7332 abuf
->written
= written
;
7337 /* stbi: stbi$pack $GRk,@($GRi,$d12) */
7340 SEM_FN_NAME (frvbf
,stbi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7342 #define FLD(f) abuf->fields.sfmt_swapi.f
7343 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7344 int UNUSED written
= 0;
7345 IADDR UNUSED pc
= abuf
->addr
;
7346 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
7348 frvbf_write_mem_QI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), FLD (f_d12
)), GET_H_GR (FLD (f_GRk
)));
7354 /* sthi: sthi$pack $GRk,@($GRi,$d12) */
7357 SEM_FN_NAME (frvbf
,sthi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7359 #define FLD(f) abuf->fields.sfmt_swapi.f
7360 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7361 int UNUSED written
= 0;
7362 IADDR UNUSED pc
= abuf
->addr
;
7363 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
7365 frvbf_write_mem_HI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), FLD (f_d12
)), GET_H_GR (FLD (f_GRk
)));
7371 /* sti: sti$pack $GRk,@($GRi,$d12) */
7374 SEM_FN_NAME (frvbf
,sti
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7376 #define FLD(f) abuf->fields.sfmt_swapi.f
7377 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7378 int UNUSED written
= 0;
7379 IADDR UNUSED pc
= abuf
->addr
;
7380 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
7382 frvbf_write_mem_SI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), FLD (f_d12
)), GET_H_GR (FLD (f_GRk
)));
7388 /* stbfi: stbfi$pack $FRintk,@($GRi,$d12) */
7391 SEM_FN_NAME (frvbf
,stbfi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7393 #define FLD(f) abuf->fields.sfmt_stbfi.f
7394 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7395 int UNUSED written
= 0;
7396 IADDR UNUSED pc
= abuf
->addr
;
7397 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
7399 frvbf_write_mem_QI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), FLD (f_d12
)), GET_H_FR_INT (FLD (f_FRk
)));
7405 /* sthfi: sthfi$pack $FRintk,@($GRi,$d12) */
7408 SEM_FN_NAME (frvbf
,sthfi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7410 #define FLD(f) abuf->fields.sfmt_stbfi.f
7411 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7412 int UNUSED written
= 0;
7413 IADDR UNUSED pc
= abuf
->addr
;
7414 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
7416 frvbf_write_mem_HI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), FLD (f_d12
)), GET_H_FR_INT (FLD (f_FRk
)));
7422 /* stfi: stfi$pack $FRintk,@($GRi,$d12) */
7425 SEM_FN_NAME (frvbf
,stfi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7427 #define FLD(f) abuf->fields.sfmt_stbfi.f
7428 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7429 int UNUSED written
= 0;
7430 IADDR UNUSED pc
= abuf
->addr
;
7431 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
7433 frvbf_write_mem_SI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), FLD (f_d12
)), GET_H_FR_INT (FLD (f_FRk
)));
7439 /* stdi: stdi$pack $GRk,@($GRi,$d12) */
7442 SEM_FN_NAME (frvbf
,stdi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7444 #define FLD(f) abuf->fields.sfmt_stdi.f
7445 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7446 int UNUSED written
= 0;
7447 IADDR UNUSED pc
= abuf
->addr
;
7448 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
7453 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
7454 frvbf_write_mem_DI (current_cpu
, pc
, tmp_address
, GET_H_GR_DOUBLE (FLD (f_GRk
)));
7462 /* stdfi: stdfi$pack $FRk,@($GRi,$d12) */
7465 SEM_FN_NAME (frvbf
,stdfi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7467 #define FLD(f) abuf->fields.sfmt_stdfi.f
7468 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7469 int UNUSED written
= 0;
7470 IADDR UNUSED pc
= abuf
->addr
;
7471 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
7476 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
7477 frvbf_write_mem_DF (current_cpu
, pc
, tmp_address
, GET_H_FR_DOUBLE (FLD (f_FRk
)));
7485 /* stqi: stqi$pack $GRk,@($GRi,$d12) */
7488 SEM_FN_NAME (frvbf
,stqi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7490 #define FLD(f) abuf->fields.sfmt_stdi.f
7491 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7492 int UNUSED written
= 0;
7493 IADDR UNUSED pc
= abuf
->addr
;
7494 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
7499 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
7500 frvbf_store_quad_GR (current_cpu
, pc
, tmp_address
, FLD (f_GRk
));
7508 /* stqfi: stqfi$pack $FRintk,@($GRi,$d12) */
7511 SEM_FN_NAME (frvbf
,stqfi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7513 #define FLD(f) abuf->fields.sfmt_stdfi.f
7514 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7515 int UNUSED written
= 0;
7516 IADDR UNUSED pc
= abuf
->addr
;
7517 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
7522 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
7523 frvbf_store_quad_FRint (current_cpu
, pc
, tmp_address
, FLD (f_FRk
));
7531 /* swap: swap$pack @($GRi,$GRj),$GRk */
7534 SEM_FN_NAME (frvbf
,swap
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7536 #define FLD(f) abuf->fields.sfmt_cswap.f
7537 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7538 int UNUSED written
= 0;
7539 IADDR UNUSED pc
= abuf
->addr
;
7540 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
7545 tmp_tmp
= GET_H_GR (FLD (f_GRk
));
7546 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
7548 SI opval
= frvbf_read_mem_WI (current_cpu
, pc
, tmp_address
);
7549 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
7550 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
7552 frvbf_write_mem_WI (current_cpu
, pc
, tmp_address
, tmp_tmp
);
7559 /* swapi: swapi$pack @($GRi,$d12),$GRk */
7562 SEM_FN_NAME (frvbf
,swapi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7564 #define FLD(f) abuf->fields.sfmt_swapi.f
7565 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7566 int UNUSED written
= 0;
7567 IADDR UNUSED pc
= abuf
->addr
;
7568 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
7573 tmp_tmp
= GET_H_GR (FLD (f_GRk
));
7574 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
7576 SI opval
= frvbf_read_mem_WI (current_cpu
, pc
, tmp_address
);
7577 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
7578 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
7580 frvbf_write_mem_WI (current_cpu
, pc
, tmp_address
, tmp_tmp
);
7587 /* cswap: cswap$pack @($GRi,$GRj),$GRk,$CCi,$cond */
7590 SEM_FN_NAME (frvbf
,cswap
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7592 #define FLD(f) abuf->fields.sfmt_cswap.f
7593 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7594 int UNUSED written
= 0;
7595 IADDR UNUSED pc
= abuf
->addr
;
7596 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
7598 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
7602 tmp_tmp
= GET_H_GR (FLD (f_GRk
));
7603 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
7605 SI opval
= frvbf_read_mem_WI (current_cpu
, pc
, tmp_address
);
7606 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
7607 written
|= (1 << 6);
7608 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
7610 frvbf_write_mem_WI (current_cpu
, pc
, tmp_address
, tmp_tmp
);
7614 abuf
->written
= written
;
7619 /* movgf: movgf$pack $GRj,$FRintk */
7622 SEM_FN_NAME (frvbf
,movgf
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7624 #define FLD(f) abuf->fields.sfmt_cmovgfd.f
7625 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7626 int UNUSED written
= 0;
7627 IADDR UNUSED pc
= abuf
->addr
;
7628 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
7631 SI opval
= GET_H_GR (FLD (f_GRj
));
7632 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
7633 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
7640 /* movfg: movfg$pack $FRintk,$GRj */
7643 SEM_FN_NAME (frvbf
,movfg
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7645 #define FLD(f) abuf->fields.sfmt_cmovfgd.f
7646 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7647 int UNUSED written
= 0;
7648 IADDR UNUSED pc
= abuf
->addr
;
7649 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
7652 SI opval
= GET_H_FR_INT (FLD (f_FRk
));
7653 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRj
), opval
);
7654 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
7661 /* movgfd: movgfd$pack $GRj,$FRintk */
7664 SEM_FN_NAME (frvbf
,movgfd
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7666 #define FLD(f) abuf->fields.sfmt_cmovgfd.f
7667 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7668 int UNUSED written
= 0;
7669 IADDR UNUSED pc
= abuf
->addr
;
7670 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
7672 if (EQSI (FLD (f_GRj
), 0)) {
7676 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
7677 written
|= (1 << 4);
7678 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
7682 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, ((FLD (f_FRk
)) + (1)), opval
);
7683 written
|= (1 << 5);
7684 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
7690 SI opval
= GET_H_GR (FLD (f_GRj
));
7691 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
7692 written
|= (1 << 4);
7693 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
7696 USI opval
= GET_H_GR (((FLD (f_GRj
)) + (1)));
7697 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, ((FLD (f_FRk
)) + (1)), opval
);
7698 written
|= (1 << 5);
7699 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
7704 abuf
->written
= written
;
7709 /* movfgd: movfgd$pack $FRintk,$GRj */
7712 SEM_FN_NAME (frvbf
,movfgd
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7714 #define FLD(f) abuf->fields.sfmt_cmovfgd.f
7715 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7716 int UNUSED written
= 0;
7717 IADDR UNUSED pc
= abuf
->addr
;
7718 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
7720 if (NESI (FLD (f_GRj
), 0)) {
7723 SI opval
= GET_H_FR_INT (FLD (f_FRk
));
7724 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRj
), opval
);
7725 written
|= (1 << 4);
7726 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
7729 USI opval
= GET_H_FR_INT (((FLD (f_FRk
)) + (1)));
7730 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, ((FLD (f_GRj
)) + (1)), opval
);
7731 written
|= (1 << 5);
7732 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
7737 abuf
->written
= written
;
7742 /* movgfq: movgfq$pack $GRj,$FRintk */
7745 SEM_FN_NAME (frvbf
,movgfq
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7747 #define FLD(f) abuf->fields.sfmt_movgfq.f
7748 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7749 int UNUSED written
= 0;
7750 IADDR UNUSED pc
= abuf
->addr
;
7751 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
7753 if (EQSI (FLD (f_GRj
), 0)) {
7757 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
7758 written
|= (1 << 6);
7759 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
7763 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, ((FLD (f_FRk
)) + (1)), opval
);
7764 written
|= (1 << 7);
7765 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
7769 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, ((FLD (f_FRk
)) + (2)), opval
);
7770 written
|= (1 << 8);
7771 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
7775 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, ((FLD (f_FRk
)) + (3)), opval
);
7776 written
|= (1 << 9);
7777 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
7783 SI opval
= GET_H_GR (FLD (f_GRj
));
7784 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
7785 written
|= (1 << 6);
7786 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
7789 USI opval
= GET_H_GR (((FLD (f_GRj
)) + (1)));
7790 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, ((FLD (f_FRk
)) + (1)), opval
);
7791 written
|= (1 << 7);
7792 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
7795 USI opval
= GET_H_GR (((FLD (f_GRj
)) + (2)));
7796 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, ((FLD (f_FRk
)) + (2)), opval
);
7797 written
|= (1 << 8);
7798 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
7801 USI opval
= GET_H_GR (((FLD (f_GRj
)) + (3)));
7802 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, ((FLD (f_FRk
)) + (3)), opval
);
7803 written
|= (1 << 9);
7804 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
7809 abuf
->written
= written
;
7814 /* movfgq: movfgq$pack $FRintk,$GRj */
7817 SEM_FN_NAME (frvbf
,movfgq
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7819 #define FLD(f) abuf->fields.sfmt_movfgq.f
7820 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7821 int UNUSED written
= 0;
7822 IADDR UNUSED pc
= abuf
->addr
;
7823 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
7825 if (NESI (FLD (f_GRj
), 0)) {
7828 SI opval
= GET_H_FR_INT (FLD (f_FRk
));
7829 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRj
), opval
);
7830 written
|= (1 << 6);
7831 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
7834 USI opval
= GET_H_FR_INT (((FLD (f_FRk
)) + (1)));
7835 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, ((FLD (f_GRj
)) + (1)), opval
);
7836 written
|= (1 << 7);
7837 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
7840 USI opval
= GET_H_FR_INT (((FLD (f_FRk
)) + (2)));
7841 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, ((FLD (f_GRj
)) + (2)), opval
);
7842 written
|= (1 << 8);
7843 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
7846 USI opval
= GET_H_FR_INT (((FLD (f_FRk
)) + (3)));
7847 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, ((FLD (f_GRj
)) + (3)), opval
);
7848 written
|= (1 << 9);
7849 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
7854 abuf
->written
= written
;
7859 /* cmovgf: cmovgf$pack $GRj,$FRintk,$CCi,$cond */
7862 SEM_FN_NAME (frvbf
,cmovgf
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7864 #define FLD(f) abuf->fields.sfmt_cmovgfd.f
7865 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7866 int UNUSED written
= 0;
7867 IADDR UNUSED pc
= abuf
->addr
;
7868 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
7870 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
7872 SI opval
= GET_H_GR (FLD (f_GRj
));
7873 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
7874 written
|= (1 << 3);
7875 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
7879 abuf
->written
= written
;
7884 /* cmovfg: cmovfg$pack $FRintk,$GRj,$CCi,$cond */
7887 SEM_FN_NAME (frvbf
,cmovfg
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7889 #define FLD(f) abuf->fields.sfmt_cmovfgd.f
7890 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7891 int UNUSED written
= 0;
7892 IADDR UNUSED pc
= abuf
->addr
;
7893 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
7895 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
7897 SI opval
= GET_H_FR_INT (FLD (f_FRk
));
7898 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRj
), opval
);
7899 written
|= (1 << 3);
7900 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
7904 abuf
->written
= written
;
7909 /* cmovgfd: cmovgfd$pack $GRj,$FRintk,$CCi,$cond */
7912 SEM_FN_NAME (frvbf
,cmovgfd
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7914 #define FLD(f) abuf->fields.sfmt_cmovgfd.f
7915 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7916 int UNUSED written
= 0;
7917 IADDR UNUSED pc
= abuf
->addr
;
7918 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
7920 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
7921 if (EQSI (FLD (f_GRj
), 0)) {
7925 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
7926 written
|= (1 << 6);
7927 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
7931 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, ((FLD (f_FRk
)) + (1)), opval
);
7932 written
|= (1 << 7);
7933 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
7939 SI opval
= GET_H_GR (FLD (f_GRj
));
7940 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
7941 written
|= (1 << 6);
7942 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
7945 USI opval
= GET_H_GR (((FLD (f_GRj
)) + (1)));
7946 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, ((FLD (f_FRk
)) + (1)), opval
);
7947 written
|= (1 << 7);
7948 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
7954 abuf
->written
= written
;
7959 /* cmovfgd: cmovfgd$pack $FRintk,$GRj,$CCi,$cond */
7962 SEM_FN_NAME (frvbf
,cmovfgd
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7964 #define FLD(f) abuf->fields.sfmt_cmovfgd.f
7965 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7966 int UNUSED written
= 0;
7967 IADDR UNUSED pc
= abuf
->addr
;
7968 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
7970 if (ANDIF (NESI (FLD (f_GRj
), 0), EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2)))) {
7973 SI opval
= GET_H_FR_INT (FLD (f_FRk
));
7974 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRj
), opval
);
7975 written
|= (1 << 6);
7976 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
7979 USI opval
= GET_H_FR_INT (((FLD (f_FRk
)) + (1)));
7980 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, ((FLD (f_GRj
)) + (1)), opval
);
7981 written
|= (1 << 7);
7982 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
7987 abuf
->written
= written
;
7992 /* movgs: movgs$pack $GRj,$spr */
7995 SEM_FN_NAME (frvbf
,movgs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7997 #define FLD(f) abuf->fields.sfmt_movgs.f
7998 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7999 int UNUSED written
= 0;
8000 IADDR UNUSED pc
= abuf
->addr
;
8001 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
8004 USI opval
= GET_H_GR (FLD (f_GRj
));
8005 sim_queue_fn_si_write (current_cpu
, frvbf_h_spr_set
, FLD (f_spr
), opval
);
8006 TRACE_RESULT (current_cpu
, abuf
, "spr", 'x', opval
);
8013 /* movsg: movsg$pack $spr,$GRj */
8016 SEM_FN_NAME (frvbf
,movsg
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
8018 #define FLD(f) abuf->fields.sfmt_movsg.f
8019 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
8020 int UNUSED written
= 0;
8021 IADDR UNUSED pc
= abuf
->addr
;
8022 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
8025 SI opval
= GET_H_SPR (FLD (f_spr
));
8026 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRj
), opval
);
8027 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
8034 /* bra: bra$pack $hint_taken$label16 */
8037 SEM_FN_NAME (frvbf
,bra
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
8039 #define FLD(f) abuf->fields.sfmt_fbne.f
8040 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
8041 int UNUSED written
= 0;
8042 IADDR UNUSED pc
= abuf
->addr
;
8043 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
8046 frvbf_model_branch (current_cpu
, FLD (i_label16
), FLD (f_hint
));
8048 USI opval
= FLD (i_label16
);
8049 sim_queue_pc_write (current_cpu
, opval
);
8050 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
8058 /* bno: bno$pack$hint_not_taken */
8061 SEM_FN_NAME (frvbf
,bno
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
8063 #define FLD(f) abuf->fields.sfmt_fbne.f
8064 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
8065 int UNUSED written
= 0;
8066 IADDR UNUSED pc
= abuf
->addr
;
8067 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
8069 frvbf_model_branch (current_cpu
, FLD (i_label16
), FLD (f_hint
));
8075 /* beq: beq$pack $ICCi_2,$hint,$label16 */
8078 SEM_FN_NAME (frvbf
,beq
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
8080 #define FLD(f) abuf->fields.sfmt_beq.f
8081 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
8082 int UNUSED written
= 0;
8083 IADDR UNUSED pc
= abuf
->addr
;
8084 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
8087 frvbf_model_branch (current_cpu
, FLD (i_label16
), FLD (f_hint
));
8088 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 4), 2))) {
8090 USI opval
= FLD (i_label16
);
8091 sim_queue_pc_write (current_cpu
, opval
);
8092 written
|= (1 << 3);
8093 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
8098 abuf
->written
= written
;
8103 /* bne: bne$pack $ICCi_2,$hint,$label16 */
8106 SEM_FN_NAME (frvbf
,bne
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
8108 #define FLD(f) abuf->fields.sfmt_beq.f
8109 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
8110 int UNUSED written
= 0;
8111 IADDR UNUSED pc
= abuf
->addr
;
8112 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
8115 frvbf_model_branch (current_cpu
, FLD (i_label16
), FLD (f_hint
));
8116 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 4), 2)))) {
8118 USI opval
= FLD (i_label16
);
8119 sim_queue_pc_write (current_cpu
, opval
);
8120 written
|= (1 << 3);
8121 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
8126 abuf
->written
= written
;
8131 /* ble: ble$pack $ICCi_2,$hint,$label16 */
8134 SEM_FN_NAME (frvbf
,ble
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
8136 #define FLD(f) abuf->fields.sfmt_beq.f
8137 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
8138 int UNUSED written
= 0;
8139 IADDR UNUSED pc
= abuf
->addr
;
8140 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
8143 frvbf_model_branch (current_cpu
, FLD (i_label16
), FLD (f_hint
));
8144 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 4), 2)), XORBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 2), 1))))) {
8146 USI opval
= FLD (i_label16
);
8147 sim_queue_pc_write (current_cpu
, opval
);
8148 written
|= (1 << 3);
8149 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
8154 abuf
->written
= written
;
8159 /* bgt: bgt$pack $ICCi_2,$hint,$label16 */
8162 SEM_FN_NAME (frvbf
,bgt
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
8164 #define FLD(f) abuf->fields.sfmt_beq.f
8165 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
8166 int UNUSED written
= 0;
8167 IADDR UNUSED pc
= abuf
->addr
;
8168 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
8171 frvbf_model_branch (current_cpu
, FLD (i_label16
), FLD (f_hint
));
8172 if (NOTBI (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 4), 2)), XORBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 2), 1)))))) {
8174 USI opval
= FLD (i_label16
);
8175 sim_queue_pc_write (current_cpu
, opval
);
8176 written
|= (1 << 3);
8177 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
8182 abuf
->written
= written
;
8187 /* blt: blt$pack $ICCi_2,$hint,$label16 */
8190 SEM_FN_NAME (frvbf
,blt
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
8192 #define FLD(f) abuf->fields.sfmt_beq.f
8193 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
8194 int UNUSED written
= 0;
8195 IADDR UNUSED pc
= abuf
->addr
;
8196 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
8199 frvbf_model_branch (current_cpu
, FLD (i_label16
), FLD (f_hint
));
8200 if (XORBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 2), 1)))) {
8202 USI opval
= FLD (i_label16
);
8203 sim_queue_pc_write (current_cpu
, opval
);
8204 written
|= (1 << 3);
8205 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
8210 abuf
->written
= written
;
8215 /* bge: bge$pack $ICCi_2,$hint,$label16 */
8218 SEM_FN_NAME (frvbf
,bge
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
8220 #define FLD(f) abuf->fields.sfmt_beq.f
8221 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
8222 int UNUSED written
= 0;
8223 IADDR UNUSED pc
= abuf
->addr
;
8224 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
8227 frvbf_model_branch (current_cpu
, FLD (i_label16
), FLD (f_hint
));
8228 if (NOTBI (XORBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 2), 1))))) {
8230 USI opval
= FLD (i_label16
);
8231 sim_queue_pc_write (current_cpu
, opval
);
8232 written
|= (1 << 3);
8233 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
8238 abuf
->written
= written
;
8243 /* bls: bls$pack $ICCi_2,$hint,$label16 */
8246 SEM_FN_NAME (frvbf
,bls
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
8248 #define FLD(f) abuf->fields.sfmt_beq.f
8249 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
8250 int UNUSED written
= 0;
8251 IADDR UNUSED pc
= abuf
->addr
;
8252 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
8255 frvbf_model_branch (current_cpu
, FLD (i_label16
), FLD (f_hint
));
8256 if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 4), 2)))) {
8258 USI opval
= FLD (i_label16
);
8259 sim_queue_pc_write (current_cpu
, opval
);
8260 written
|= (1 << 3);
8261 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
8266 abuf
->written
= written
;
8271 /* bhi: bhi$pack $ICCi_2,$hint,$label16 */
8274 SEM_FN_NAME (frvbf
,bhi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
8276 #define FLD(f) abuf->fields.sfmt_beq.f
8277 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
8278 int UNUSED written
= 0;
8279 IADDR UNUSED pc
= abuf
->addr
;
8280 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
8283 frvbf_model_branch (current_cpu
, FLD (i_label16
), FLD (f_hint
));
8284 if (NOTBI (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 4), 2))))) {
8286 USI opval
= FLD (i_label16
);
8287 sim_queue_pc_write (current_cpu
, opval
);
8288 written
|= (1 << 3);
8289 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
8294 abuf
->written
= written
;
8299 /* bc: bc$pack $ICCi_2,$hint,$label16 */
8302 SEM_FN_NAME (frvbf
,bc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
8304 #define FLD(f) abuf->fields.sfmt_beq.f
8305 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
8306 int UNUSED written
= 0;
8307 IADDR UNUSED pc
= abuf
->addr
;
8308 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
8311 frvbf_model_branch (current_cpu
, FLD (i_label16
), FLD (f_hint
));
8312 if (TRUNCQIBI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 1))) {
8314 USI opval
= FLD (i_label16
);
8315 sim_queue_pc_write (current_cpu
, opval
);
8316 written
|= (1 << 3);
8317 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
8322 abuf
->written
= written
;
8327 /* bnc: bnc$pack $ICCi_2,$hint,$label16 */
8330 SEM_FN_NAME (frvbf
,bnc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
8332 #define FLD(f) abuf->fields.sfmt_beq.f
8333 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
8334 int UNUSED written
= 0;
8335 IADDR UNUSED pc
= abuf
->addr
;
8336 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
8339 frvbf_model_branch (current_cpu
, FLD (i_label16
), FLD (f_hint
));
8340 if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 1)))) {
8342 USI opval
= FLD (i_label16
);
8343 sim_queue_pc_write (current_cpu
, opval
);
8344 written
|= (1 << 3);
8345 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
8350 abuf
->written
= written
;
8355 /* bn: bn$pack $ICCi_2,$hint,$label16 */
8358 SEM_FN_NAME (frvbf
,bn
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
8360 #define FLD(f) abuf->fields.sfmt_beq.f
8361 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
8362 int UNUSED written
= 0;
8363 IADDR UNUSED pc
= abuf
->addr
;
8364 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
8367 frvbf_model_branch (current_cpu
, FLD (i_label16
), FLD (f_hint
));
8368 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 8), 3))) {
8370 USI opval
= FLD (i_label16
);
8371 sim_queue_pc_write (current_cpu
, opval
);
8372 written
|= (1 << 3);
8373 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
8378 abuf
->written
= written
;
8383 /* bp: bp$pack $ICCi_2,$hint,$label16 */
8386 SEM_FN_NAME (frvbf
,bp
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
8388 #define FLD(f) abuf->fields.sfmt_beq.f
8389 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
8390 int UNUSED written
= 0;
8391 IADDR UNUSED pc
= abuf
->addr
;
8392 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
8395 frvbf_model_branch (current_cpu
, FLD (i_label16
), FLD (f_hint
));
8396 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 8), 3)))) {
8398 USI opval
= FLD (i_label16
);
8399 sim_queue_pc_write (current_cpu
, opval
);
8400 written
|= (1 << 3);
8401 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
8406 abuf
->written
= written
;
8411 /* bv: bv$pack $ICCi_2,$hint,$label16 */
8414 SEM_FN_NAME (frvbf
,bv
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
8416 #define FLD(f) abuf->fields.sfmt_beq.f
8417 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
8418 int UNUSED written
= 0;
8419 IADDR UNUSED pc
= abuf
->addr
;
8420 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
8423 frvbf_model_branch (current_cpu
, FLD (i_label16
), FLD (f_hint
));
8424 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 2), 1))) {
8426 USI opval
= FLD (i_label16
);
8427 sim_queue_pc_write (current_cpu
, opval
);
8428 written
|= (1 << 3);
8429 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
8434 abuf
->written
= written
;
8439 /* bnv: bnv$pack $ICCi_2,$hint,$label16 */
8442 SEM_FN_NAME (frvbf
,bnv
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
8444 #define FLD(f) abuf->fields.sfmt_beq.f
8445 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
8446 int UNUSED written
= 0;
8447 IADDR UNUSED pc
= abuf
->addr
;
8448 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
8451 frvbf_model_branch (current_cpu
, FLD (i_label16
), FLD (f_hint
));
8452 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 2), 1)))) {
8454 USI opval
= FLD (i_label16
);
8455 sim_queue_pc_write (current_cpu
, opval
);
8456 written
|= (1 << 3);
8457 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
8462 abuf
->written
= written
;
8467 /* fbra: fbra$pack $hint_taken$label16 */
8470 SEM_FN_NAME (frvbf
,fbra
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
8472 #define FLD(f) abuf->fields.sfmt_fbne.f
8473 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
8474 int UNUSED written
= 0;
8475 IADDR UNUSED pc
= abuf
->addr
;
8476 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
8479 frvbf_model_branch (current_cpu
, FLD (i_label16
), FLD (f_hint
));
8481 USI opval
= FLD (i_label16
);
8482 sim_queue_pc_write (current_cpu
, opval
);
8483 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
8491 /* fbno: fbno$pack$hint_not_taken */
8494 SEM_FN_NAME (frvbf
,fbno
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
8496 #define FLD(f) abuf->fields.sfmt_fbne.f
8497 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
8498 int UNUSED written
= 0;
8499 IADDR UNUSED pc
= abuf
->addr
;
8500 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
8502 frvbf_model_branch (current_cpu
, FLD (i_label16
), FLD (f_hint
));
8508 /* fbne: fbne$pack $FCCi_2,$hint,$label16 */
8511 SEM_FN_NAME (frvbf
,fbne
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
8513 #define FLD(f) abuf->fields.sfmt_fbne.f
8514 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
8515 int UNUSED written
= 0;
8516 IADDR UNUSED pc
= abuf
->addr
;
8517 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
8520 frvbf_model_branch (current_cpu
, FLD (i_label16
), FLD (f_hint
));
8521 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 4), 2)), ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 1))))) {
8523 USI opval
= FLD (i_label16
);
8524 sim_queue_pc_write (current_cpu
, opval
);
8525 written
|= (1 << 3);
8526 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
8531 abuf
->written
= written
;
8536 /* fbeq: fbeq$pack $FCCi_2,$hint,$label16 */
8539 SEM_FN_NAME (frvbf
,fbeq
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
8541 #define FLD(f) abuf->fields.sfmt_fbne.f
8542 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
8543 int UNUSED written
= 0;
8544 IADDR UNUSED pc
= abuf
->addr
;
8545 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
8548 frvbf_model_branch (current_cpu
, FLD (i_label16
), FLD (f_hint
));
8549 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 8), 3))) {
8551 USI opval
= FLD (i_label16
);
8552 sim_queue_pc_write (current_cpu
, opval
);
8553 written
|= (1 << 3);
8554 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
8559 abuf
->written
= written
;
8564 /* fblg: fblg$pack $FCCi_2,$hint,$label16 */
8567 SEM_FN_NAME (frvbf
,fblg
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
8569 #define FLD(f) abuf->fields.sfmt_fbne.f
8570 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
8571 int UNUSED written
= 0;
8572 IADDR UNUSED pc
= abuf
->addr
;
8573 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
8576 frvbf_model_branch (current_cpu
, FLD (i_label16
), FLD (f_hint
));
8577 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 4), 2)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 2), 1)))) {
8579 USI opval
= FLD (i_label16
);
8580 sim_queue_pc_write (current_cpu
, opval
);
8581 written
|= (1 << 3);
8582 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
8587 abuf
->written
= written
;
8592 /* fbue: fbue$pack $FCCi_2,$hint,$label16 */
8595 SEM_FN_NAME (frvbf
,fbue
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
8597 #define FLD(f) abuf->fields.sfmt_fbne.f
8598 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
8599 int UNUSED written
= 0;
8600 IADDR UNUSED pc
= abuf
->addr
;
8601 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
8604 frvbf_model_branch (current_cpu
, FLD (i_label16
), FLD (f_hint
));
8605 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 1)))) {
8607 USI opval
= FLD (i_label16
);
8608 sim_queue_pc_write (current_cpu
, opval
);
8609 written
|= (1 << 3);
8610 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
8615 abuf
->written
= written
;
8620 /* fbul: fbul$pack $FCCi_2,$hint,$label16 */
8623 SEM_FN_NAME (frvbf
,fbul
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
8625 #define FLD(f) abuf->fields.sfmt_fbne.f
8626 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
8627 int UNUSED written
= 0;
8628 IADDR UNUSED pc
= abuf
->addr
;
8629 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
8632 frvbf_model_branch (current_cpu
, FLD (i_label16
), FLD (f_hint
));
8633 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 1)))) {
8635 USI opval
= FLD (i_label16
);
8636 sim_queue_pc_write (current_cpu
, opval
);
8637 written
|= (1 << 3);
8638 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
8643 abuf
->written
= written
;
8648 /* fbge: fbge$pack $FCCi_2,$hint,$label16 */
8651 SEM_FN_NAME (frvbf
,fbge
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
8653 #define FLD(f) abuf->fields.sfmt_fbne.f
8654 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
8655 int UNUSED written
= 0;
8656 IADDR UNUSED pc
= abuf
->addr
;
8657 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
8660 frvbf_model_branch (current_cpu
, FLD (i_label16
), FLD (f_hint
));
8661 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 2), 1)))) {
8663 USI opval
= FLD (i_label16
);
8664 sim_queue_pc_write (current_cpu
, opval
);
8665 written
|= (1 << 3);
8666 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
8671 abuf
->written
= written
;
8676 /* fblt: fblt$pack $FCCi_2,$hint,$label16 */
8679 SEM_FN_NAME (frvbf
,fblt
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
8681 #define FLD(f) abuf->fields.sfmt_fbne.f
8682 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
8683 int UNUSED written
= 0;
8684 IADDR UNUSED pc
= abuf
->addr
;
8685 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
8688 frvbf_model_branch (current_cpu
, FLD (i_label16
), FLD (f_hint
));
8689 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 4), 2))) {
8691 USI opval
= FLD (i_label16
);
8692 sim_queue_pc_write (current_cpu
, opval
);
8693 written
|= (1 << 3);
8694 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
8699 abuf
->written
= written
;
8704 /* fbuge: fbuge$pack $FCCi_2,$hint,$label16 */
8707 SEM_FN_NAME (frvbf
,fbuge
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
8709 #define FLD(f) abuf->fields.sfmt_fbne.f
8710 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
8711 int UNUSED written
= 0;
8712 IADDR UNUSED pc
= abuf
->addr
;
8713 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
8716 frvbf_model_branch (current_cpu
, FLD (i_label16
), FLD (f_hint
));
8717 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 8), 3)), ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 1))))) {
8719 USI opval
= FLD (i_label16
);
8720 sim_queue_pc_write (current_cpu
, opval
);
8721 written
|= (1 << 3);
8722 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
8727 abuf
->written
= written
;
8732 /* fbug: fbug$pack $FCCi_2,$hint,$label16 */
8735 SEM_FN_NAME (frvbf
,fbug
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
8737 #define FLD(f) abuf->fields.sfmt_fbne.f
8738 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
8739 int UNUSED written
= 0;
8740 IADDR UNUSED pc
= abuf
->addr
;
8741 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
8744 frvbf_model_branch (current_cpu
, FLD (i_label16
), FLD (f_hint
));
8745 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 1)))) {
8747 USI opval
= FLD (i_label16
);
8748 sim_queue_pc_write (current_cpu
, opval
);
8749 written
|= (1 << 3);
8750 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
8755 abuf
->written
= written
;
8760 /* fble: fble$pack $FCCi_2,$hint,$label16 */
8763 SEM_FN_NAME (frvbf
,fble
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
8765 #define FLD(f) abuf->fields.sfmt_fbne.f
8766 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
8767 int UNUSED written
= 0;
8768 IADDR UNUSED pc
= abuf
->addr
;
8769 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
8772 frvbf_model_branch (current_cpu
, FLD (i_label16
), FLD (f_hint
));
8773 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 4), 2)))) {
8775 USI opval
= FLD (i_label16
);
8776 sim_queue_pc_write (current_cpu
, opval
);
8777 written
|= (1 << 3);
8778 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
8783 abuf
->written
= written
;
8788 /* fbgt: fbgt$pack $FCCi_2,$hint,$label16 */
8791 SEM_FN_NAME (frvbf
,fbgt
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
8793 #define FLD(f) abuf->fields.sfmt_fbne.f
8794 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
8795 int UNUSED written
= 0;
8796 IADDR UNUSED pc
= abuf
->addr
;
8797 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
8800 frvbf_model_branch (current_cpu
, FLD (i_label16
), FLD (f_hint
));
8801 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 2), 1))) {
8803 USI opval
= FLD (i_label16
);
8804 sim_queue_pc_write (current_cpu
, opval
);
8805 written
|= (1 << 3);
8806 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
8811 abuf
->written
= written
;
8816 /* fbule: fbule$pack $FCCi_2,$hint,$label16 */
8819 SEM_FN_NAME (frvbf
,fbule
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
8821 #define FLD(f) abuf->fields.sfmt_fbne.f
8822 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
8823 int UNUSED written
= 0;
8824 IADDR UNUSED pc
= abuf
->addr
;
8825 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
8828 frvbf_model_branch (current_cpu
, FLD (i_label16
), FLD (f_hint
));
8829 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 8), 3)), ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 1))))) {
8831 USI opval
= FLD (i_label16
);
8832 sim_queue_pc_write (current_cpu
, opval
);
8833 written
|= (1 << 3);
8834 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
8839 abuf
->written
= written
;
8844 /* fbu: fbu$pack $FCCi_2,$hint,$label16 */
8847 SEM_FN_NAME (frvbf
,fbu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
8849 #define FLD(f) abuf->fields.sfmt_fbne.f
8850 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
8851 int UNUSED written
= 0;
8852 IADDR UNUSED pc
= abuf
->addr
;
8853 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
8856 frvbf_model_branch (current_cpu
, FLD (i_label16
), FLD (f_hint
));
8857 if (TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 1))) {
8859 USI opval
= FLD (i_label16
);
8860 sim_queue_pc_write (current_cpu
, opval
);
8861 written
|= (1 << 3);
8862 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
8867 abuf
->written
= written
;
8872 /* fbo: fbo$pack $FCCi_2,$hint,$label16 */
8875 SEM_FN_NAME (frvbf
,fbo
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
8877 #define FLD(f) abuf->fields.sfmt_fbne.f
8878 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
8879 int UNUSED written
= 0;
8880 IADDR UNUSED pc
= abuf
->addr
;
8881 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
8884 frvbf_model_branch (current_cpu
, FLD (i_label16
), FLD (f_hint
));
8885 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 8), 3)), ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 4), 2)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 2), 1))))) {
8887 USI opval
= FLD (i_label16
);
8888 sim_queue_pc_write (current_cpu
, opval
);
8889 written
|= (1 << 3);
8890 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
8895 abuf
->written
= written
;
8900 /* bctrlr: bctrlr$pack $ccond,$hint */
8903 SEM_FN_NAME (frvbf
,bctrlr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
8905 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
8906 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
8907 int UNUSED written
= 0;
8908 IADDR UNUSED pc
= abuf
->addr
;
8909 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
8912 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
8915 tmp_tmp
= SUBSI (GET_H_SPR (((UINT
) 273)), 1);
8917 USI opval
= tmp_tmp
;
8918 sim_queue_fn_si_write (current_cpu
, frvbf_h_spr_set
, ((UINT
) 273), opval
);
8919 TRACE_RESULT (current_cpu
, abuf
, "spr", 'x', opval
);
8921 if (EQSI (FLD (f_ccond
), 0)) {
8922 if (NESI (tmp_tmp
, 0)) {
8924 USI opval
= GET_H_SPR (((UINT
) 272));
8925 sim_queue_pc_write (current_cpu
, opval
);
8926 written
|= (1 << 5);
8927 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
8931 if (EQSI (tmp_tmp
, 0)) {
8933 USI opval
= GET_H_SPR (((UINT
) 272));
8934 sim_queue_pc_write (current_cpu
, opval
);
8935 written
|= (1 << 5);
8936 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
8943 abuf
->written
= written
;
8948 /* bralr: bralr$pack$hint_taken */
8951 SEM_FN_NAME (frvbf
,bralr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
8953 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
8954 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
8955 int UNUSED written
= 0;
8956 IADDR UNUSED pc
= abuf
->addr
;
8957 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
8960 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
8962 USI opval
= GET_H_SPR (((UINT
) 272));
8963 sim_queue_pc_write (current_cpu
, opval
);
8964 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
8972 /* bnolr: bnolr$pack$hint_not_taken */
8975 SEM_FN_NAME (frvbf
,bnolr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
8977 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
8978 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
8979 int UNUSED written
= 0;
8980 IADDR UNUSED pc
= abuf
->addr
;
8981 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
8983 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
8989 /* beqlr: beqlr$pack $ICCi_2,$hint */
8992 SEM_FN_NAME (frvbf
,beqlr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
8994 #define FLD(f) abuf->fields.sfmt_bceqlr.f
8995 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
8996 int UNUSED written
= 0;
8997 IADDR UNUSED pc
= abuf
->addr
;
8998 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
9001 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
9002 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 4), 2))) {
9004 USI opval
= GET_H_SPR (((UINT
) 272));
9005 sim_queue_pc_write (current_cpu
, opval
);
9006 written
|= (1 << 3);
9007 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
9012 abuf
->written
= written
;
9017 /* bnelr: bnelr$pack $ICCi_2,$hint */
9020 SEM_FN_NAME (frvbf
,bnelr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
9022 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9023 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
9024 int UNUSED written
= 0;
9025 IADDR UNUSED pc
= abuf
->addr
;
9026 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
9029 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
9030 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 4), 2)))) {
9032 USI opval
= GET_H_SPR (((UINT
) 272));
9033 sim_queue_pc_write (current_cpu
, opval
);
9034 written
|= (1 << 3);
9035 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
9040 abuf
->written
= written
;
9045 /* blelr: blelr$pack $ICCi_2,$hint */
9048 SEM_FN_NAME (frvbf
,blelr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
9050 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9051 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
9052 int UNUSED written
= 0;
9053 IADDR UNUSED pc
= abuf
->addr
;
9054 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
9057 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
9058 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 4), 2)), XORBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 2), 1))))) {
9060 USI opval
= GET_H_SPR (((UINT
) 272));
9061 sim_queue_pc_write (current_cpu
, opval
);
9062 written
|= (1 << 3);
9063 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
9068 abuf
->written
= written
;
9073 /* bgtlr: bgtlr$pack $ICCi_2,$hint */
9076 SEM_FN_NAME (frvbf
,bgtlr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
9078 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9079 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
9080 int UNUSED written
= 0;
9081 IADDR UNUSED pc
= abuf
->addr
;
9082 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
9085 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
9086 if (NOTBI (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 4), 2)), XORBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 2), 1)))))) {
9088 USI opval
= GET_H_SPR (((UINT
) 272));
9089 sim_queue_pc_write (current_cpu
, opval
);
9090 written
|= (1 << 3);
9091 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
9096 abuf
->written
= written
;
9101 /* bltlr: bltlr$pack $ICCi_2,$hint */
9104 SEM_FN_NAME (frvbf
,bltlr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
9106 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9107 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
9108 int UNUSED written
= 0;
9109 IADDR UNUSED pc
= abuf
->addr
;
9110 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
9113 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
9114 if (XORBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 2), 1)))) {
9116 USI opval
= GET_H_SPR (((UINT
) 272));
9117 sim_queue_pc_write (current_cpu
, opval
);
9118 written
|= (1 << 3);
9119 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
9124 abuf
->written
= written
;
9129 /* bgelr: bgelr$pack $ICCi_2,$hint */
9132 SEM_FN_NAME (frvbf
,bgelr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
9134 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9135 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
9136 int UNUSED written
= 0;
9137 IADDR UNUSED pc
= abuf
->addr
;
9138 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
9141 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
9142 if (NOTBI (XORBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 2), 1))))) {
9144 USI opval
= GET_H_SPR (((UINT
) 272));
9145 sim_queue_pc_write (current_cpu
, opval
);
9146 written
|= (1 << 3);
9147 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
9152 abuf
->written
= written
;
9157 /* blslr: blslr$pack $ICCi_2,$hint */
9160 SEM_FN_NAME (frvbf
,blslr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
9162 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9163 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
9164 int UNUSED written
= 0;
9165 IADDR UNUSED pc
= abuf
->addr
;
9166 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
9169 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
9170 if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 4), 2)))) {
9172 USI opval
= GET_H_SPR (((UINT
) 272));
9173 sim_queue_pc_write (current_cpu
, opval
);
9174 written
|= (1 << 3);
9175 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
9180 abuf
->written
= written
;
9185 /* bhilr: bhilr$pack $ICCi_2,$hint */
9188 SEM_FN_NAME (frvbf
,bhilr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
9190 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9191 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
9192 int UNUSED written
= 0;
9193 IADDR UNUSED pc
= abuf
->addr
;
9194 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
9197 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
9198 if (NOTBI (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 4), 2))))) {
9200 USI opval
= GET_H_SPR (((UINT
) 272));
9201 sim_queue_pc_write (current_cpu
, opval
);
9202 written
|= (1 << 3);
9203 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
9208 abuf
->written
= written
;
9213 /* bclr: bclr$pack $ICCi_2,$hint */
9216 SEM_FN_NAME (frvbf
,bclr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
9218 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9219 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
9220 int UNUSED written
= 0;
9221 IADDR UNUSED pc
= abuf
->addr
;
9222 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
9225 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
9226 if (TRUNCQIBI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 1))) {
9228 USI opval
= GET_H_SPR (((UINT
) 272));
9229 sim_queue_pc_write (current_cpu
, opval
);
9230 written
|= (1 << 3);
9231 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
9236 abuf
->written
= written
;
9241 /* bnclr: bnclr$pack $ICCi_2,$hint */
9244 SEM_FN_NAME (frvbf
,bnclr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
9246 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9247 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
9248 int UNUSED written
= 0;
9249 IADDR UNUSED pc
= abuf
->addr
;
9250 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
9253 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
9254 if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 1)))) {
9256 USI opval
= GET_H_SPR (((UINT
) 272));
9257 sim_queue_pc_write (current_cpu
, opval
);
9258 written
|= (1 << 3);
9259 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
9264 abuf
->written
= written
;
9269 /* bnlr: bnlr$pack $ICCi_2,$hint */
9272 SEM_FN_NAME (frvbf
,bnlr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
9274 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9275 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
9276 int UNUSED written
= 0;
9277 IADDR UNUSED pc
= abuf
->addr
;
9278 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
9281 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
9282 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 8), 3))) {
9284 USI opval
= GET_H_SPR (((UINT
) 272));
9285 sim_queue_pc_write (current_cpu
, opval
);
9286 written
|= (1 << 3);
9287 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
9292 abuf
->written
= written
;
9297 /* bplr: bplr$pack $ICCi_2,$hint */
9300 SEM_FN_NAME (frvbf
,bplr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
9302 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9303 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
9304 int UNUSED written
= 0;
9305 IADDR UNUSED pc
= abuf
->addr
;
9306 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
9309 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
9310 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 8), 3)))) {
9312 USI opval
= GET_H_SPR (((UINT
) 272));
9313 sim_queue_pc_write (current_cpu
, opval
);
9314 written
|= (1 << 3);
9315 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
9320 abuf
->written
= written
;
9325 /* bvlr: bvlr$pack $ICCi_2,$hint */
9328 SEM_FN_NAME (frvbf
,bvlr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
9330 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9331 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
9332 int UNUSED written
= 0;
9333 IADDR UNUSED pc
= abuf
->addr
;
9334 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
9337 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
9338 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 2), 1))) {
9340 USI opval
= GET_H_SPR (((UINT
) 272));
9341 sim_queue_pc_write (current_cpu
, opval
);
9342 written
|= (1 << 3);
9343 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
9348 abuf
->written
= written
;
9353 /* bnvlr: bnvlr$pack $ICCi_2,$hint */
9356 SEM_FN_NAME (frvbf
,bnvlr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
9358 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9359 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
9360 int UNUSED written
= 0;
9361 IADDR UNUSED pc
= abuf
->addr
;
9362 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
9365 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
9366 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 2), 1)))) {
9368 USI opval
= GET_H_SPR (((UINT
) 272));
9369 sim_queue_pc_write (current_cpu
, opval
);
9370 written
|= (1 << 3);
9371 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
9376 abuf
->written
= written
;
9381 /* fbralr: fbralr$pack$hint_taken */
9384 SEM_FN_NAME (frvbf
,fbralr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
9386 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9387 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
9388 int UNUSED written
= 0;
9389 IADDR UNUSED pc
= abuf
->addr
;
9390 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
9393 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
9395 USI opval
= GET_H_SPR (((UINT
) 272));
9396 sim_queue_pc_write (current_cpu
, opval
);
9397 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
9405 /* fbnolr: fbnolr$pack$hint_not_taken */
9408 SEM_FN_NAME (frvbf
,fbnolr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
9410 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9411 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
9412 int UNUSED written
= 0;
9413 IADDR UNUSED pc
= abuf
->addr
;
9414 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
9416 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
9422 /* fbeqlr: fbeqlr$pack $FCCi_2,$hint */
9425 SEM_FN_NAME (frvbf
,fbeqlr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
9427 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9428 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
9429 int UNUSED written
= 0;
9430 IADDR UNUSED pc
= abuf
->addr
;
9431 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
9434 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
9435 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 8), 3))) {
9437 USI opval
= GET_H_SPR (((UINT
) 272));
9438 sim_queue_pc_write (current_cpu
, opval
);
9439 written
|= (1 << 3);
9440 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
9445 abuf
->written
= written
;
9450 /* fbnelr: fbnelr$pack $FCCi_2,$hint */
9453 SEM_FN_NAME (frvbf
,fbnelr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
9455 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9456 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
9457 int UNUSED written
= 0;
9458 IADDR UNUSED pc
= abuf
->addr
;
9459 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
9462 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
9463 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 4), 2)), ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 1))))) {
9465 USI opval
= GET_H_SPR (((UINT
) 272));
9466 sim_queue_pc_write (current_cpu
, opval
);
9467 written
|= (1 << 3);
9468 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
9473 abuf
->written
= written
;
9478 /* fblglr: fblglr$pack $FCCi_2,$hint */
9481 SEM_FN_NAME (frvbf
,fblglr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
9483 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9484 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
9485 int UNUSED written
= 0;
9486 IADDR UNUSED pc
= abuf
->addr
;
9487 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
9490 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
9491 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 4), 2)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 2), 1)))) {
9493 USI opval
= GET_H_SPR (((UINT
) 272));
9494 sim_queue_pc_write (current_cpu
, opval
);
9495 written
|= (1 << 3);
9496 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
9501 abuf
->written
= written
;
9506 /* fbuelr: fbuelr$pack $FCCi_2,$hint */
9509 SEM_FN_NAME (frvbf
,fbuelr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
9511 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9512 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
9513 int UNUSED written
= 0;
9514 IADDR UNUSED pc
= abuf
->addr
;
9515 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
9518 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
9519 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 1)))) {
9521 USI opval
= GET_H_SPR (((UINT
) 272));
9522 sim_queue_pc_write (current_cpu
, opval
);
9523 written
|= (1 << 3);
9524 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
9529 abuf
->written
= written
;
9534 /* fbullr: fbullr$pack $FCCi_2,$hint */
9537 SEM_FN_NAME (frvbf
,fbullr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
9539 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9540 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
9541 int UNUSED written
= 0;
9542 IADDR UNUSED pc
= abuf
->addr
;
9543 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
9546 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
9547 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 1)))) {
9549 USI opval
= GET_H_SPR (((UINT
) 272));
9550 sim_queue_pc_write (current_cpu
, opval
);
9551 written
|= (1 << 3);
9552 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
9557 abuf
->written
= written
;
9562 /* fbgelr: fbgelr$pack $FCCi_2,$hint */
9565 SEM_FN_NAME (frvbf
,fbgelr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
9567 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9568 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
9569 int UNUSED written
= 0;
9570 IADDR UNUSED pc
= abuf
->addr
;
9571 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
9574 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
9575 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 2), 1)))) {
9577 USI opval
= GET_H_SPR (((UINT
) 272));
9578 sim_queue_pc_write (current_cpu
, opval
);
9579 written
|= (1 << 3);
9580 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
9585 abuf
->written
= written
;
9590 /* fbltlr: fbltlr$pack $FCCi_2,$hint */
9593 SEM_FN_NAME (frvbf
,fbltlr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
9595 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9596 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
9597 int UNUSED written
= 0;
9598 IADDR UNUSED pc
= abuf
->addr
;
9599 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
9602 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
9603 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 4), 2))) {
9605 USI opval
= GET_H_SPR (((UINT
) 272));
9606 sim_queue_pc_write (current_cpu
, opval
);
9607 written
|= (1 << 3);
9608 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
9613 abuf
->written
= written
;
9618 /* fbugelr: fbugelr$pack $FCCi_2,$hint */
9621 SEM_FN_NAME (frvbf
,fbugelr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
9623 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9624 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
9625 int UNUSED written
= 0;
9626 IADDR UNUSED pc
= abuf
->addr
;
9627 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
9630 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
9631 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 8), 3)), ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 1))))) {
9633 USI opval
= GET_H_SPR (((UINT
) 272));
9634 sim_queue_pc_write (current_cpu
, opval
);
9635 written
|= (1 << 3);
9636 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
9641 abuf
->written
= written
;
9646 /* fbuglr: fbuglr$pack $FCCi_2,$hint */
9649 SEM_FN_NAME (frvbf
,fbuglr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
9651 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9652 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
9653 int UNUSED written
= 0;
9654 IADDR UNUSED pc
= abuf
->addr
;
9655 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
9658 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
9659 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 1)))) {
9661 USI opval
= GET_H_SPR (((UINT
) 272));
9662 sim_queue_pc_write (current_cpu
, opval
);
9663 written
|= (1 << 3);
9664 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
9669 abuf
->written
= written
;
9674 /* fblelr: fblelr$pack $FCCi_2,$hint */
9677 SEM_FN_NAME (frvbf
,fblelr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
9679 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9680 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
9681 int UNUSED written
= 0;
9682 IADDR UNUSED pc
= abuf
->addr
;
9683 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
9686 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
9687 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 4), 2)))) {
9689 USI opval
= GET_H_SPR (((UINT
) 272));
9690 sim_queue_pc_write (current_cpu
, opval
);
9691 written
|= (1 << 3);
9692 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
9697 abuf
->written
= written
;
9702 /* fbgtlr: fbgtlr$pack $FCCi_2,$hint */
9705 SEM_FN_NAME (frvbf
,fbgtlr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
9707 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9708 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
9709 int UNUSED written
= 0;
9710 IADDR UNUSED pc
= abuf
->addr
;
9711 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
9714 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
9715 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 2), 1))) {
9717 USI opval
= GET_H_SPR (((UINT
) 272));
9718 sim_queue_pc_write (current_cpu
, opval
);
9719 written
|= (1 << 3);
9720 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
9725 abuf
->written
= written
;
9730 /* fbulelr: fbulelr$pack $FCCi_2,$hint */
9733 SEM_FN_NAME (frvbf
,fbulelr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
9735 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9736 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
9737 int UNUSED written
= 0;
9738 IADDR UNUSED pc
= abuf
->addr
;
9739 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
9742 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
9743 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 8), 3)), ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 1))))) {
9745 USI opval
= GET_H_SPR (((UINT
) 272));
9746 sim_queue_pc_write (current_cpu
, opval
);
9747 written
|= (1 << 3);
9748 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
9753 abuf
->written
= written
;
9758 /* fbulr: fbulr$pack $FCCi_2,$hint */
9761 SEM_FN_NAME (frvbf
,fbulr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
9763 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9764 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
9765 int UNUSED written
= 0;
9766 IADDR UNUSED pc
= abuf
->addr
;
9767 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
9770 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
9771 if (TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 1))) {
9773 USI opval
= GET_H_SPR (((UINT
) 272));
9774 sim_queue_pc_write (current_cpu
, opval
);
9775 written
|= (1 << 3);
9776 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
9781 abuf
->written
= written
;
9786 /* fbolr: fbolr$pack $FCCi_2,$hint */
9789 SEM_FN_NAME (frvbf
,fbolr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
9791 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9792 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
9793 int UNUSED written
= 0;
9794 IADDR UNUSED pc
= abuf
->addr
;
9795 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
9798 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
9799 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 8), 3)), ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 4), 2)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 2), 1))))) {
9801 USI opval
= GET_H_SPR (((UINT
) 272));
9802 sim_queue_pc_write (current_cpu
, opval
);
9803 written
|= (1 << 3);
9804 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
9809 abuf
->written
= written
;
9814 /* bcralr: bcralr$pack $ccond$hint_taken */
9817 SEM_FN_NAME (frvbf
,bcralr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
9819 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9820 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
9821 int UNUSED written
= 0;
9822 IADDR UNUSED pc
= abuf
->addr
;
9823 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
9826 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
9829 tmp_tmp
= SUBSI (GET_H_SPR (((UINT
) 273)), 1);
9831 USI opval
= tmp_tmp
;
9832 sim_queue_fn_si_write (current_cpu
, frvbf_h_spr_set
, ((UINT
) 273), opval
);
9833 TRACE_RESULT (current_cpu
, abuf
, "spr", 'x', opval
);
9835 if (EQSI (FLD (f_ccond
), 0)) {
9836 if (NESI (tmp_tmp
, 0)) {
9838 USI opval
= GET_H_SPR (((UINT
) 272));
9839 sim_queue_pc_write (current_cpu
, opval
);
9840 written
|= (1 << 5);
9841 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
9845 if (EQSI (tmp_tmp
, 0)) {
9847 USI opval
= GET_H_SPR (((UINT
) 272));
9848 sim_queue_pc_write (current_cpu
, opval
);
9849 written
|= (1 << 5);
9850 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
9857 abuf
->written
= written
;
9862 /* bcnolr: bcnolr$pack$hint_not_taken */
9865 SEM_FN_NAME (frvbf
,bcnolr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
9867 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9868 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
9869 int UNUSED written
= 0;
9870 IADDR UNUSED pc
= abuf
->addr
;
9871 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
9874 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
9877 tmp_tmp
= SUBSI (GET_H_SPR (((UINT
) 273)), 1);
9879 USI opval
= tmp_tmp
;
9880 sim_queue_fn_si_write (current_cpu
, frvbf_h_spr_set
, ((UINT
) 273), opval
);
9881 TRACE_RESULT (current_cpu
, abuf
, "spr", 'x', opval
);
9891 /* bceqlr: bceqlr$pack $ICCi_2,$ccond,$hint */
9894 SEM_FN_NAME (frvbf
,bceqlr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
9896 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9897 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
9898 int UNUSED written
= 0;
9899 IADDR UNUSED pc
= abuf
->addr
;
9900 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
9903 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
9906 tmp_tmp
= SUBSI (GET_H_SPR (((UINT
) 273)), 1);
9908 USI opval
= tmp_tmp
;
9909 sim_queue_fn_si_write (current_cpu
, frvbf_h_spr_set
, ((UINT
) 273), opval
);
9910 TRACE_RESULT (current_cpu
, abuf
, "spr", 'x', opval
);
9912 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 4), 2))) {
9913 if (EQSI (FLD (f_ccond
), 0)) {
9914 if (NESI (tmp_tmp
, 0)) {
9916 USI opval
= GET_H_SPR (((UINT
) 272));
9917 sim_queue_pc_write (current_cpu
, opval
);
9918 written
|= (1 << 6);
9919 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
9923 if (EQSI (tmp_tmp
, 0)) {
9925 USI opval
= GET_H_SPR (((UINT
) 272));
9926 sim_queue_pc_write (current_cpu
, opval
);
9927 written
|= (1 << 6);
9928 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
9936 abuf
->written
= written
;
9941 /* bcnelr: bcnelr$pack $ICCi_2,$ccond,$hint */
9944 SEM_FN_NAME (frvbf
,bcnelr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
9946 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9947 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
9948 int UNUSED written
= 0;
9949 IADDR UNUSED pc
= abuf
->addr
;
9950 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
9953 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
9956 tmp_tmp
= SUBSI (GET_H_SPR (((UINT
) 273)), 1);
9958 USI opval
= tmp_tmp
;
9959 sim_queue_fn_si_write (current_cpu
, frvbf_h_spr_set
, ((UINT
) 273), opval
);
9960 TRACE_RESULT (current_cpu
, abuf
, "spr", 'x', opval
);
9962 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 4), 2)))) {
9963 if (EQSI (FLD (f_ccond
), 0)) {
9964 if (NESI (tmp_tmp
, 0)) {
9966 USI opval
= GET_H_SPR (((UINT
) 272));
9967 sim_queue_pc_write (current_cpu
, opval
);
9968 written
|= (1 << 6);
9969 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
9973 if (EQSI (tmp_tmp
, 0)) {
9975 USI opval
= GET_H_SPR (((UINT
) 272));
9976 sim_queue_pc_write (current_cpu
, opval
);
9977 written
|= (1 << 6);
9978 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
9986 abuf
->written
= written
;
9991 /* bclelr: bclelr$pack $ICCi_2,$ccond,$hint */
9994 SEM_FN_NAME (frvbf
,bclelr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
9996 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9997 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
9998 int UNUSED written
= 0;
9999 IADDR UNUSED pc
= abuf
->addr
;
10000 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
10003 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
10006 tmp_tmp
= SUBSI (GET_H_SPR (((UINT
) 273)), 1);
10008 USI opval
= tmp_tmp
;
10009 sim_queue_fn_si_write (current_cpu
, frvbf_h_spr_set
, ((UINT
) 273), opval
);
10010 TRACE_RESULT (current_cpu
, abuf
, "spr", 'x', opval
);
10012 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 4), 2)), XORBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 2), 1))))) {
10013 if (EQSI (FLD (f_ccond
), 0)) {
10014 if (NESI (tmp_tmp
, 0)) {
10016 USI opval
= GET_H_SPR (((UINT
) 272));
10017 sim_queue_pc_write (current_cpu
, opval
);
10018 written
|= (1 << 6);
10019 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
10023 if (EQSI (tmp_tmp
, 0)) {
10025 USI opval
= GET_H_SPR (((UINT
) 272));
10026 sim_queue_pc_write (current_cpu
, opval
);
10027 written
|= (1 << 6);
10028 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
10036 abuf
->written
= written
;
10041 /* bcgtlr: bcgtlr$pack $ICCi_2,$ccond,$hint */
10044 SEM_FN_NAME (frvbf
,bcgtlr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
10046 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10047 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
10048 int UNUSED written
= 0;
10049 IADDR UNUSED pc
= abuf
->addr
;
10050 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
10053 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
10056 tmp_tmp
= SUBSI (GET_H_SPR (((UINT
) 273)), 1);
10058 USI opval
= tmp_tmp
;
10059 sim_queue_fn_si_write (current_cpu
, frvbf_h_spr_set
, ((UINT
) 273), opval
);
10060 TRACE_RESULT (current_cpu
, abuf
, "spr", 'x', opval
);
10062 if (NOTBI (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 4), 2)), XORBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 2), 1)))))) {
10063 if (EQSI (FLD (f_ccond
), 0)) {
10064 if (NESI (tmp_tmp
, 0)) {
10066 USI opval
= GET_H_SPR (((UINT
) 272));
10067 sim_queue_pc_write (current_cpu
, opval
);
10068 written
|= (1 << 6);
10069 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
10073 if (EQSI (tmp_tmp
, 0)) {
10075 USI opval
= GET_H_SPR (((UINT
) 272));
10076 sim_queue_pc_write (current_cpu
, opval
);
10077 written
|= (1 << 6);
10078 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
10086 abuf
->written
= written
;
10091 /* bcltlr: bcltlr$pack $ICCi_2,$ccond,$hint */
10094 SEM_FN_NAME (frvbf
,bcltlr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
10096 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10097 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
10098 int UNUSED written
= 0;
10099 IADDR UNUSED pc
= abuf
->addr
;
10100 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
10103 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
10106 tmp_tmp
= SUBSI (GET_H_SPR (((UINT
) 273)), 1);
10108 USI opval
= tmp_tmp
;
10109 sim_queue_fn_si_write (current_cpu
, frvbf_h_spr_set
, ((UINT
) 273), opval
);
10110 TRACE_RESULT (current_cpu
, abuf
, "spr", 'x', opval
);
10112 if (XORBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 2), 1)))) {
10113 if (EQSI (FLD (f_ccond
), 0)) {
10114 if (NESI (tmp_tmp
, 0)) {
10116 USI opval
= GET_H_SPR (((UINT
) 272));
10117 sim_queue_pc_write (current_cpu
, opval
);
10118 written
|= (1 << 6);
10119 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
10123 if (EQSI (tmp_tmp
, 0)) {
10125 USI opval
= GET_H_SPR (((UINT
) 272));
10126 sim_queue_pc_write (current_cpu
, opval
);
10127 written
|= (1 << 6);
10128 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
10136 abuf
->written
= written
;
10141 /* bcgelr: bcgelr$pack $ICCi_2,$ccond,$hint */
10144 SEM_FN_NAME (frvbf
,bcgelr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
10146 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10147 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
10148 int UNUSED written
= 0;
10149 IADDR UNUSED pc
= abuf
->addr
;
10150 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
10153 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
10156 tmp_tmp
= SUBSI (GET_H_SPR (((UINT
) 273)), 1);
10158 USI opval
= tmp_tmp
;
10159 sim_queue_fn_si_write (current_cpu
, frvbf_h_spr_set
, ((UINT
) 273), opval
);
10160 TRACE_RESULT (current_cpu
, abuf
, "spr", 'x', opval
);
10162 if (NOTBI (XORBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 2), 1))))) {
10163 if (EQSI (FLD (f_ccond
), 0)) {
10164 if (NESI (tmp_tmp
, 0)) {
10166 USI opval
= GET_H_SPR (((UINT
) 272));
10167 sim_queue_pc_write (current_cpu
, opval
);
10168 written
|= (1 << 6);
10169 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
10173 if (EQSI (tmp_tmp
, 0)) {
10175 USI opval
= GET_H_SPR (((UINT
) 272));
10176 sim_queue_pc_write (current_cpu
, opval
);
10177 written
|= (1 << 6);
10178 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
10186 abuf
->written
= written
;
10191 /* bclslr: bclslr$pack $ICCi_2,$ccond,$hint */
10194 SEM_FN_NAME (frvbf
,bclslr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
10196 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10197 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
10198 int UNUSED written
= 0;
10199 IADDR UNUSED pc
= abuf
->addr
;
10200 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
10203 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
10206 tmp_tmp
= SUBSI (GET_H_SPR (((UINT
) 273)), 1);
10208 USI opval
= tmp_tmp
;
10209 sim_queue_fn_si_write (current_cpu
, frvbf_h_spr_set
, ((UINT
) 273), opval
);
10210 TRACE_RESULT (current_cpu
, abuf
, "spr", 'x', opval
);
10212 if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 4), 2)))) {
10213 if (EQSI (FLD (f_ccond
), 0)) {
10214 if (NESI (tmp_tmp
, 0)) {
10216 USI opval
= GET_H_SPR (((UINT
) 272));
10217 sim_queue_pc_write (current_cpu
, opval
);
10218 written
|= (1 << 6);
10219 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
10223 if (EQSI (tmp_tmp
, 0)) {
10225 USI opval
= GET_H_SPR (((UINT
) 272));
10226 sim_queue_pc_write (current_cpu
, opval
);
10227 written
|= (1 << 6);
10228 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
10236 abuf
->written
= written
;
10241 /* bchilr: bchilr$pack $ICCi_2,$ccond,$hint */
10244 SEM_FN_NAME (frvbf
,bchilr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
10246 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10247 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
10248 int UNUSED written
= 0;
10249 IADDR UNUSED pc
= abuf
->addr
;
10250 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
10253 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
10256 tmp_tmp
= SUBSI (GET_H_SPR (((UINT
) 273)), 1);
10258 USI opval
= tmp_tmp
;
10259 sim_queue_fn_si_write (current_cpu
, frvbf_h_spr_set
, ((UINT
) 273), opval
);
10260 TRACE_RESULT (current_cpu
, abuf
, "spr", 'x', opval
);
10262 if (NOTBI (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 4), 2))))) {
10263 if (EQSI (FLD (f_ccond
), 0)) {
10264 if (NESI (tmp_tmp
, 0)) {
10266 USI opval
= GET_H_SPR (((UINT
) 272));
10267 sim_queue_pc_write (current_cpu
, opval
);
10268 written
|= (1 << 6);
10269 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
10273 if (EQSI (tmp_tmp
, 0)) {
10275 USI opval
= GET_H_SPR (((UINT
) 272));
10276 sim_queue_pc_write (current_cpu
, opval
);
10277 written
|= (1 << 6);
10278 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
10286 abuf
->written
= written
;
10291 /* bcclr: bcclr$pack $ICCi_2,$ccond,$hint */
10294 SEM_FN_NAME (frvbf
,bcclr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
10296 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10297 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
10298 int UNUSED written
= 0;
10299 IADDR UNUSED pc
= abuf
->addr
;
10300 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
10303 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
10306 tmp_tmp
= SUBSI (GET_H_SPR (((UINT
) 273)), 1);
10308 USI opval
= tmp_tmp
;
10309 sim_queue_fn_si_write (current_cpu
, frvbf_h_spr_set
, ((UINT
) 273), opval
);
10310 TRACE_RESULT (current_cpu
, abuf
, "spr", 'x', opval
);
10312 if (TRUNCQIBI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 1))) {
10313 if (EQSI (FLD (f_ccond
), 0)) {
10314 if (NESI (tmp_tmp
, 0)) {
10316 USI opval
= GET_H_SPR (((UINT
) 272));
10317 sim_queue_pc_write (current_cpu
, opval
);
10318 written
|= (1 << 6);
10319 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
10323 if (EQSI (tmp_tmp
, 0)) {
10325 USI opval
= GET_H_SPR (((UINT
) 272));
10326 sim_queue_pc_write (current_cpu
, opval
);
10327 written
|= (1 << 6);
10328 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
10336 abuf
->written
= written
;
10341 /* bcnclr: bcnclr$pack $ICCi_2,$ccond,$hint */
10344 SEM_FN_NAME (frvbf
,bcnclr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
10346 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10347 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
10348 int UNUSED written
= 0;
10349 IADDR UNUSED pc
= abuf
->addr
;
10350 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
10353 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
10356 tmp_tmp
= SUBSI (GET_H_SPR (((UINT
) 273)), 1);
10358 USI opval
= tmp_tmp
;
10359 sim_queue_fn_si_write (current_cpu
, frvbf_h_spr_set
, ((UINT
) 273), opval
);
10360 TRACE_RESULT (current_cpu
, abuf
, "spr", 'x', opval
);
10362 if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 1)))) {
10363 if (EQSI (FLD (f_ccond
), 0)) {
10364 if (NESI (tmp_tmp
, 0)) {
10366 USI opval
= GET_H_SPR (((UINT
) 272));
10367 sim_queue_pc_write (current_cpu
, opval
);
10368 written
|= (1 << 6);
10369 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
10373 if (EQSI (tmp_tmp
, 0)) {
10375 USI opval
= GET_H_SPR (((UINT
) 272));
10376 sim_queue_pc_write (current_cpu
, opval
);
10377 written
|= (1 << 6);
10378 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
10386 abuf
->written
= written
;
10391 /* bcnlr: bcnlr$pack $ICCi_2,$ccond,$hint */
10394 SEM_FN_NAME (frvbf
,bcnlr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
10396 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10397 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
10398 int UNUSED written
= 0;
10399 IADDR UNUSED pc
= abuf
->addr
;
10400 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
10403 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
10406 tmp_tmp
= SUBSI (GET_H_SPR (((UINT
) 273)), 1);
10408 USI opval
= tmp_tmp
;
10409 sim_queue_fn_si_write (current_cpu
, frvbf_h_spr_set
, ((UINT
) 273), opval
);
10410 TRACE_RESULT (current_cpu
, abuf
, "spr", 'x', opval
);
10412 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 8), 3))) {
10413 if (EQSI (FLD (f_ccond
), 0)) {
10414 if (NESI (tmp_tmp
, 0)) {
10416 USI opval
= GET_H_SPR (((UINT
) 272));
10417 sim_queue_pc_write (current_cpu
, opval
);
10418 written
|= (1 << 6);
10419 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
10423 if (EQSI (tmp_tmp
, 0)) {
10425 USI opval
= GET_H_SPR (((UINT
) 272));
10426 sim_queue_pc_write (current_cpu
, opval
);
10427 written
|= (1 << 6);
10428 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
10436 abuf
->written
= written
;
10441 /* bcplr: bcplr$pack $ICCi_2,$ccond,$hint */
10444 SEM_FN_NAME (frvbf
,bcplr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
10446 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10447 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
10448 int UNUSED written
= 0;
10449 IADDR UNUSED pc
= abuf
->addr
;
10450 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
10453 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
10456 tmp_tmp
= SUBSI (GET_H_SPR (((UINT
) 273)), 1);
10458 USI opval
= tmp_tmp
;
10459 sim_queue_fn_si_write (current_cpu
, frvbf_h_spr_set
, ((UINT
) 273), opval
);
10460 TRACE_RESULT (current_cpu
, abuf
, "spr", 'x', opval
);
10462 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 8), 3)))) {
10463 if (EQSI (FLD (f_ccond
), 0)) {
10464 if (NESI (tmp_tmp
, 0)) {
10466 USI opval
= GET_H_SPR (((UINT
) 272));
10467 sim_queue_pc_write (current_cpu
, opval
);
10468 written
|= (1 << 6);
10469 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
10473 if (EQSI (tmp_tmp
, 0)) {
10475 USI opval
= GET_H_SPR (((UINT
) 272));
10476 sim_queue_pc_write (current_cpu
, opval
);
10477 written
|= (1 << 6);
10478 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
10486 abuf
->written
= written
;
10491 /* bcvlr: bcvlr$pack $ICCi_2,$ccond,$hint */
10494 SEM_FN_NAME (frvbf
,bcvlr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
10496 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10497 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
10498 int UNUSED written
= 0;
10499 IADDR UNUSED pc
= abuf
->addr
;
10500 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
10503 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
10506 tmp_tmp
= SUBSI (GET_H_SPR (((UINT
) 273)), 1);
10508 USI opval
= tmp_tmp
;
10509 sim_queue_fn_si_write (current_cpu
, frvbf_h_spr_set
, ((UINT
) 273), opval
);
10510 TRACE_RESULT (current_cpu
, abuf
, "spr", 'x', opval
);
10512 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 2), 1))) {
10513 if (EQSI (FLD (f_ccond
), 0)) {
10514 if (NESI (tmp_tmp
, 0)) {
10516 USI opval
= GET_H_SPR (((UINT
) 272));
10517 sim_queue_pc_write (current_cpu
, opval
);
10518 written
|= (1 << 6);
10519 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
10523 if (EQSI (tmp_tmp
, 0)) {
10525 USI opval
= GET_H_SPR (((UINT
) 272));
10526 sim_queue_pc_write (current_cpu
, opval
);
10527 written
|= (1 << 6);
10528 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
10536 abuf
->written
= written
;
10541 /* bcnvlr: bcnvlr$pack $ICCi_2,$ccond,$hint */
10544 SEM_FN_NAME (frvbf
,bcnvlr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
10546 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10547 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
10548 int UNUSED written
= 0;
10549 IADDR UNUSED pc
= abuf
->addr
;
10550 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
10553 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
10556 tmp_tmp
= SUBSI (GET_H_SPR (((UINT
) 273)), 1);
10558 USI opval
= tmp_tmp
;
10559 sim_queue_fn_si_write (current_cpu
, frvbf_h_spr_set
, ((UINT
) 273), opval
);
10560 TRACE_RESULT (current_cpu
, abuf
, "spr", 'x', opval
);
10562 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 2), 1)))) {
10563 if (EQSI (FLD (f_ccond
), 0)) {
10564 if (NESI (tmp_tmp
, 0)) {
10566 USI opval
= GET_H_SPR (((UINT
) 272));
10567 sim_queue_pc_write (current_cpu
, opval
);
10568 written
|= (1 << 6);
10569 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
10573 if (EQSI (tmp_tmp
, 0)) {
10575 USI opval
= GET_H_SPR (((UINT
) 272));
10576 sim_queue_pc_write (current_cpu
, opval
);
10577 written
|= (1 << 6);
10578 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
10586 abuf
->written
= written
;
10591 /* fcbralr: fcbralr$pack $ccond$hint_taken */
10594 SEM_FN_NAME (frvbf
,fcbralr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
10596 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10597 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
10598 int UNUSED written
= 0;
10599 IADDR UNUSED pc
= abuf
->addr
;
10600 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
10603 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
10606 tmp_tmp
= SUBSI (GET_H_SPR (((UINT
) 273)), 1);
10608 USI opval
= tmp_tmp
;
10609 sim_queue_fn_si_write (current_cpu
, frvbf_h_spr_set
, ((UINT
) 273), opval
);
10610 TRACE_RESULT (current_cpu
, abuf
, "spr", 'x', opval
);
10612 if (EQSI (FLD (f_ccond
), 0)) {
10613 if (NESI (tmp_tmp
, 0)) {
10615 USI opval
= GET_H_SPR (((UINT
) 272));
10616 sim_queue_pc_write (current_cpu
, opval
);
10617 written
|= (1 << 5);
10618 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
10622 if (EQSI (tmp_tmp
, 0)) {
10624 USI opval
= GET_H_SPR (((UINT
) 272));
10625 sim_queue_pc_write (current_cpu
, opval
);
10626 written
|= (1 << 5);
10627 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
10634 abuf
->written
= written
;
10639 /* fcbnolr: fcbnolr$pack$hint_not_taken */
10642 SEM_FN_NAME (frvbf
,fcbnolr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
10644 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10645 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
10646 int UNUSED written
= 0;
10647 IADDR UNUSED pc
= abuf
->addr
;
10648 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
10651 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
10654 tmp_tmp
= SUBSI (GET_H_SPR (((UINT
) 273)), 1);
10656 USI opval
= tmp_tmp
;
10657 sim_queue_fn_si_write (current_cpu
, frvbf_h_spr_set
, ((UINT
) 273), opval
);
10658 TRACE_RESULT (current_cpu
, abuf
, "spr", 'x', opval
);
10660 ((void) 0); /*nop*/
10668 /* fcbeqlr: fcbeqlr$pack $FCCi_2,$ccond,$hint */
10671 SEM_FN_NAME (frvbf
,fcbeqlr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
10673 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10674 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
10675 int UNUSED written
= 0;
10676 IADDR UNUSED pc
= abuf
->addr
;
10677 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
10680 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
10683 tmp_tmp
= SUBSI (GET_H_SPR (((UINT
) 273)), 1);
10685 USI opval
= tmp_tmp
;
10686 sim_queue_fn_si_write (current_cpu
, frvbf_h_spr_set
, ((UINT
) 273), opval
);
10687 TRACE_RESULT (current_cpu
, abuf
, "spr", 'x', opval
);
10689 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 8), 3))) {
10690 if (EQSI (FLD (f_ccond
), 0)) {
10691 if (NESI (tmp_tmp
, 0)) {
10693 USI opval
= GET_H_SPR (((UINT
) 272));
10694 sim_queue_pc_write (current_cpu
, opval
);
10695 written
|= (1 << 6);
10696 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
10700 if (EQSI (tmp_tmp
, 0)) {
10702 USI opval
= GET_H_SPR (((UINT
) 272));
10703 sim_queue_pc_write (current_cpu
, opval
);
10704 written
|= (1 << 6);
10705 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
10713 abuf
->written
= written
;
10718 /* fcbnelr: fcbnelr$pack $FCCi_2,$ccond,$hint */
10721 SEM_FN_NAME (frvbf
,fcbnelr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
10723 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10724 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
10725 int UNUSED written
= 0;
10726 IADDR UNUSED pc
= abuf
->addr
;
10727 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
10730 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
10733 tmp_tmp
= SUBSI (GET_H_SPR (((UINT
) 273)), 1);
10735 USI opval
= tmp_tmp
;
10736 sim_queue_fn_si_write (current_cpu
, frvbf_h_spr_set
, ((UINT
) 273), opval
);
10737 TRACE_RESULT (current_cpu
, abuf
, "spr", 'x', opval
);
10739 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 4), 2)), ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 1))))) {
10740 if (EQSI (FLD (f_ccond
), 0)) {
10741 if (NESI (tmp_tmp
, 0)) {
10743 USI opval
= GET_H_SPR (((UINT
) 272));
10744 sim_queue_pc_write (current_cpu
, opval
);
10745 written
|= (1 << 6);
10746 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
10750 if (EQSI (tmp_tmp
, 0)) {
10752 USI opval
= GET_H_SPR (((UINT
) 272));
10753 sim_queue_pc_write (current_cpu
, opval
);
10754 written
|= (1 << 6);
10755 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
10763 abuf
->written
= written
;
10768 /* fcblglr: fcblglr$pack $FCCi_2,$ccond,$hint */
10771 SEM_FN_NAME (frvbf
,fcblglr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
10773 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10774 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
10775 int UNUSED written
= 0;
10776 IADDR UNUSED pc
= abuf
->addr
;
10777 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
10780 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
10783 tmp_tmp
= SUBSI (GET_H_SPR (((UINT
) 273)), 1);
10785 USI opval
= tmp_tmp
;
10786 sim_queue_fn_si_write (current_cpu
, frvbf_h_spr_set
, ((UINT
) 273), opval
);
10787 TRACE_RESULT (current_cpu
, abuf
, "spr", 'x', opval
);
10789 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 4), 2)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 2), 1)))) {
10790 if (EQSI (FLD (f_ccond
), 0)) {
10791 if (NESI (tmp_tmp
, 0)) {
10793 USI opval
= GET_H_SPR (((UINT
) 272));
10794 sim_queue_pc_write (current_cpu
, opval
);
10795 written
|= (1 << 6);
10796 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
10800 if (EQSI (tmp_tmp
, 0)) {
10802 USI opval
= GET_H_SPR (((UINT
) 272));
10803 sim_queue_pc_write (current_cpu
, opval
);
10804 written
|= (1 << 6);
10805 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
10813 abuf
->written
= written
;
10818 /* fcbuelr: fcbuelr$pack $FCCi_2,$ccond,$hint */
10821 SEM_FN_NAME (frvbf
,fcbuelr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
10823 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10824 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
10825 int UNUSED written
= 0;
10826 IADDR UNUSED pc
= abuf
->addr
;
10827 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
10830 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
10833 tmp_tmp
= SUBSI (GET_H_SPR (((UINT
) 273)), 1);
10835 USI opval
= tmp_tmp
;
10836 sim_queue_fn_si_write (current_cpu
, frvbf_h_spr_set
, ((UINT
) 273), opval
);
10837 TRACE_RESULT (current_cpu
, abuf
, "spr", 'x', opval
);
10839 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 1)))) {
10840 if (EQSI (FLD (f_ccond
), 0)) {
10841 if (NESI (tmp_tmp
, 0)) {
10843 USI opval
= GET_H_SPR (((UINT
) 272));
10844 sim_queue_pc_write (current_cpu
, opval
);
10845 written
|= (1 << 6);
10846 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
10850 if (EQSI (tmp_tmp
, 0)) {
10852 USI opval
= GET_H_SPR (((UINT
) 272));
10853 sim_queue_pc_write (current_cpu
, opval
);
10854 written
|= (1 << 6);
10855 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
10863 abuf
->written
= written
;
10868 /* fcbullr: fcbullr$pack $FCCi_2,$ccond,$hint */
10871 SEM_FN_NAME (frvbf
,fcbullr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
10873 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10874 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
10875 int UNUSED written
= 0;
10876 IADDR UNUSED pc
= abuf
->addr
;
10877 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
10880 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
10883 tmp_tmp
= SUBSI (GET_H_SPR (((UINT
) 273)), 1);
10885 USI opval
= tmp_tmp
;
10886 sim_queue_fn_si_write (current_cpu
, frvbf_h_spr_set
, ((UINT
) 273), opval
);
10887 TRACE_RESULT (current_cpu
, abuf
, "spr", 'x', opval
);
10889 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 1)))) {
10890 if (EQSI (FLD (f_ccond
), 0)) {
10891 if (NESI (tmp_tmp
, 0)) {
10893 USI opval
= GET_H_SPR (((UINT
) 272));
10894 sim_queue_pc_write (current_cpu
, opval
);
10895 written
|= (1 << 6);
10896 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
10900 if (EQSI (tmp_tmp
, 0)) {
10902 USI opval
= GET_H_SPR (((UINT
) 272));
10903 sim_queue_pc_write (current_cpu
, opval
);
10904 written
|= (1 << 6);
10905 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
10913 abuf
->written
= written
;
10918 /* fcbgelr: fcbgelr$pack $FCCi_2,$ccond,$hint */
10921 SEM_FN_NAME (frvbf
,fcbgelr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
10923 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10924 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
10925 int UNUSED written
= 0;
10926 IADDR UNUSED pc
= abuf
->addr
;
10927 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
10930 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
10933 tmp_tmp
= SUBSI (GET_H_SPR (((UINT
) 273)), 1);
10935 USI opval
= tmp_tmp
;
10936 sim_queue_fn_si_write (current_cpu
, frvbf_h_spr_set
, ((UINT
) 273), opval
);
10937 TRACE_RESULT (current_cpu
, abuf
, "spr", 'x', opval
);
10939 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 2), 1)))) {
10940 if (EQSI (FLD (f_ccond
), 0)) {
10941 if (NESI (tmp_tmp
, 0)) {
10943 USI opval
= GET_H_SPR (((UINT
) 272));
10944 sim_queue_pc_write (current_cpu
, opval
);
10945 written
|= (1 << 6);
10946 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
10950 if (EQSI (tmp_tmp
, 0)) {
10952 USI opval
= GET_H_SPR (((UINT
) 272));
10953 sim_queue_pc_write (current_cpu
, opval
);
10954 written
|= (1 << 6);
10955 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
10963 abuf
->written
= written
;
10968 /* fcbltlr: fcbltlr$pack $FCCi_2,$ccond,$hint */
10971 SEM_FN_NAME (frvbf
,fcbltlr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
10973 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10974 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
10975 int UNUSED written
= 0;
10976 IADDR UNUSED pc
= abuf
->addr
;
10977 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
10980 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
10983 tmp_tmp
= SUBSI (GET_H_SPR (((UINT
) 273)), 1);
10985 USI opval
= tmp_tmp
;
10986 sim_queue_fn_si_write (current_cpu
, frvbf_h_spr_set
, ((UINT
) 273), opval
);
10987 TRACE_RESULT (current_cpu
, abuf
, "spr", 'x', opval
);
10989 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 4), 2))) {
10990 if (EQSI (FLD (f_ccond
), 0)) {
10991 if (NESI (tmp_tmp
, 0)) {
10993 USI opval
= GET_H_SPR (((UINT
) 272));
10994 sim_queue_pc_write (current_cpu
, opval
);
10995 written
|= (1 << 6);
10996 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
11000 if (EQSI (tmp_tmp
, 0)) {
11002 USI opval
= GET_H_SPR (((UINT
) 272));
11003 sim_queue_pc_write (current_cpu
, opval
);
11004 written
|= (1 << 6);
11005 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
11013 abuf
->written
= written
;
11018 /* fcbugelr: fcbugelr$pack $FCCi_2,$ccond,$hint */
11021 SEM_FN_NAME (frvbf
,fcbugelr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
11023 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11024 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
11025 int UNUSED written
= 0;
11026 IADDR UNUSED pc
= abuf
->addr
;
11027 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
11030 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
11033 tmp_tmp
= SUBSI (GET_H_SPR (((UINT
) 273)), 1);
11035 USI opval
= tmp_tmp
;
11036 sim_queue_fn_si_write (current_cpu
, frvbf_h_spr_set
, ((UINT
) 273), opval
);
11037 TRACE_RESULT (current_cpu
, abuf
, "spr", 'x', opval
);
11039 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 8), 3)), ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 1))))) {
11040 if (EQSI (FLD (f_ccond
), 0)) {
11041 if (NESI (tmp_tmp
, 0)) {
11043 USI opval
= GET_H_SPR (((UINT
) 272));
11044 sim_queue_pc_write (current_cpu
, opval
);
11045 written
|= (1 << 6);
11046 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
11050 if (EQSI (tmp_tmp
, 0)) {
11052 USI opval
= GET_H_SPR (((UINT
) 272));
11053 sim_queue_pc_write (current_cpu
, opval
);
11054 written
|= (1 << 6);
11055 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
11063 abuf
->written
= written
;
11068 /* fcbuglr: fcbuglr$pack $FCCi_2,$ccond,$hint */
11071 SEM_FN_NAME (frvbf
,fcbuglr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
11073 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11074 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
11075 int UNUSED written
= 0;
11076 IADDR UNUSED pc
= abuf
->addr
;
11077 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
11080 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
11083 tmp_tmp
= SUBSI (GET_H_SPR (((UINT
) 273)), 1);
11085 USI opval
= tmp_tmp
;
11086 sim_queue_fn_si_write (current_cpu
, frvbf_h_spr_set
, ((UINT
) 273), opval
);
11087 TRACE_RESULT (current_cpu
, abuf
, "spr", 'x', opval
);
11089 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 1)))) {
11090 if (EQSI (FLD (f_ccond
), 0)) {
11091 if (NESI (tmp_tmp
, 0)) {
11093 USI opval
= GET_H_SPR (((UINT
) 272));
11094 sim_queue_pc_write (current_cpu
, opval
);
11095 written
|= (1 << 6);
11096 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
11100 if (EQSI (tmp_tmp
, 0)) {
11102 USI opval
= GET_H_SPR (((UINT
) 272));
11103 sim_queue_pc_write (current_cpu
, opval
);
11104 written
|= (1 << 6);
11105 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
11113 abuf
->written
= written
;
11118 /* fcblelr: fcblelr$pack $FCCi_2,$ccond,$hint */
11121 SEM_FN_NAME (frvbf
,fcblelr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
11123 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11124 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
11125 int UNUSED written
= 0;
11126 IADDR UNUSED pc
= abuf
->addr
;
11127 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
11130 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
11133 tmp_tmp
= SUBSI (GET_H_SPR (((UINT
) 273)), 1);
11135 USI opval
= tmp_tmp
;
11136 sim_queue_fn_si_write (current_cpu
, frvbf_h_spr_set
, ((UINT
) 273), opval
);
11137 TRACE_RESULT (current_cpu
, abuf
, "spr", 'x', opval
);
11139 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 4), 2)))) {
11140 if (EQSI (FLD (f_ccond
), 0)) {
11141 if (NESI (tmp_tmp
, 0)) {
11143 USI opval
= GET_H_SPR (((UINT
) 272));
11144 sim_queue_pc_write (current_cpu
, opval
);
11145 written
|= (1 << 6);
11146 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
11150 if (EQSI (tmp_tmp
, 0)) {
11152 USI opval
= GET_H_SPR (((UINT
) 272));
11153 sim_queue_pc_write (current_cpu
, opval
);
11154 written
|= (1 << 6);
11155 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
11163 abuf
->written
= written
;
11168 /* fcbgtlr: fcbgtlr$pack $FCCi_2,$ccond,$hint */
11171 SEM_FN_NAME (frvbf
,fcbgtlr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
11173 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11174 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
11175 int UNUSED written
= 0;
11176 IADDR UNUSED pc
= abuf
->addr
;
11177 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
11180 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
11183 tmp_tmp
= SUBSI (GET_H_SPR (((UINT
) 273)), 1);
11185 USI opval
= tmp_tmp
;
11186 sim_queue_fn_si_write (current_cpu
, frvbf_h_spr_set
, ((UINT
) 273), opval
);
11187 TRACE_RESULT (current_cpu
, abuf
, "spr", 'x', opval
);
11189 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 2), 1))) {
11190 if (EQSI (FLD (f_ccond
), 0)) {
11191 if (NESI (tmp_tmp
, 0)) {
11193 USI opval
= GET_H_SPR (((UINT
) 272));
11194 sim_queue_pc_write (current_cpu
, opval
);
11195 written
|= (1 << 6);
11196 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
11200 if (EQSI (tmp_tmp
, 0)) {
11202 USI opval
= GET_H_SPR (((UINT
) 272));
11203 sim_queue_pc_write (current_cpu
, opval
);
11204 written
|= (1 << 6);
11205 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
11213 abuf
->written
= written
;
11218 /* fcbulelr: fcbulelr$pack $FCCi_2,$ccond,$hint */
11221 SEM_FN_NAME (frvbf
,fcbulelr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
11223 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11224 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
11225 int UNUSED written
= 0;
11226 IADDR UNUSED pc
= abuf
->addr
;
11227 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
11230 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
11233 tmp_tmp
= SUBSI (GET_H_SPR (((UINT
) 273)), 1);
11235 USI opval
= tmp_tmp
;
11236 sim_queue_fn_si_write (current_cpu
, frvbf_h_spr_set
, ((UINT
) 273), opval
);
11237 TRACE_RESULT (current_cpu
, abuf
, "spr", 'x', opval
);
11239 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 8), 3)), ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 1))))) {
11240 if (EQSI (FLD (f_ccond
), 0)) {
11241 if (NESI (tmp_tmp
, 0)) {
11243 USI opval
= GET_H_SPR (((UINT
) 272));
11244 sim_queue_pc_write (current_cpu
, opval
);
11245 written
|= (1 << 6);
11246 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
11250 if (EQSI (tmp_tmp
, 0)) {
11252 USI opval
= GET_H_SPR (((UINT
) 272));
11253 sim_queue_pc_write (current_cpu
, opval
);
11254 written
|= (1 << 6);
11255 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
11263 abuf
->written
= written
;
11268 /* fcbulr: fcbulr$pack $FCCi_2,$ccond,$hint */
11271 SEM_FN_NAME (frvbf
,fcbulr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
11273 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11274 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
11275 int UNUSED written
= 0;
11276 IADDR UNUSED pc
= abuf
->addr
;
11277 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
11280 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
11283 tmp_tmp
= SUBSI (GET_H_SPR (((UINT
) 273)), 1);
11285 USI opval
= tmp_tmp
;
11286 sim_queue_fn_si_write (current_cpu
, frvbf_h_spr_set
, ((UINT
) 273), opval
);
11287 TRACE_RESULT (current_cpu
, abuf
, "spr", 'x', opval
);
11289 if (TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 1))) {
11290 if (EQSI (FLD (f_ccond
), 0)) {
11291 if (NESI (tmp_tmp
, 0)) {
11293 USI opval
= GET_H_SPR (((UINT
) 272));
11294 sim_queue_pc_write (current_cpu
, opval
);
11295 written
|= (1 << 6);
11296 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
11300 if (EQSI (tmp_tmp
, 0)) {
11302 USI opval
= GET_H_SPR (((UINT
) 272));
11303 sim_queue_pc_write (current_cpu
, opval
);
11304 written
|= (1 << 6);
11305 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
11313 abuf
->written
= written
;
11318 /* fcbolr: fcbolr$pack $FCCi_2,$ccond,$hint */
11321 SEM_FN_NAME (frvbf
,fcbolr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
11323 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11324 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
11325 int UNUSED written
= 0;
11326 IADDR UNUSED pc
= abuf
->addr
;
11327 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
11330 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
11333 tmp_tmp
= SUBSI (GET_H_SPR (((UINT
) 273)), 1);
11335 USI opval
= tmp_tmp
;
11336 sim_queue_fn_si_write (current_cpu
, frvbf_h_spr_set
, ((UINT
) 273), opval
);
11337 TRACE_RESULT (current_cpu
, abuf
, "spr", 'x', opval
);
11339 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 8), 3)), ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 4), 2)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 2), 1))))) {
11340 if (EQSI (FLD (f_ccond
), 0)) {
11341 if (NESI (tmp_tmp
, 0)) {
11343 USI opval
= GET_H_SPR (((UINT
) 272));
11344 sim_queue_pc_write (current_cpu
, opval
);
11345 written
|= (1 << 6);
11346 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
11350 if (EQSI (tmp_tmp
, 0)) {
11352 USI opval
= GET_H_SPR (((UINT
) 272));
11353 sim_queue_pc_write (current_cpu
, opval
);
11354 written
|= (1 << 6);
11355 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
11363 abuf
->written
= written
;
11368 /* jmpl: jmpl$pack @($GRi,$GRj) */
11371 SEM_FN_NAME (frvbf
,jmpl
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
11373 #define FLD(f) abuf->fields.sfmt_cjmpl.f
11374 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
11375 int UNUSED written
= 0;
11376 IADDR UNUSED pc
= abuf
->addr
;
11377 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
11380 if (EQSI (FLD (f_LI
), 1)) {
11381 frvbf_set_write_next_vliw_addr_to_LR (current_cpu
, 1);
11384 USI opval
= ANDSI (ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))), 0xfffffffc);
11385 sim_queue_pc_write (current_cpu
, opval
);
11386 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
11388 frvbf_model_branch (current_cpu
, pc
, 2);
11395 /* calll: calll$pack @($GRi,$GRj) */
11398 SEM_FN_NAME (frvbf
,calll
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
11400 #define FLD(f) abuf->fields.sfmt_cjmpl.f
11401 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
11402 int UNUSED written
= 0;
11403 IADDR UNUSED pc
= abuf
->addr
;
11404 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
11407 if (EQSI (FLD (f_LI
), 1)) {
11408 frvbf_set_write_next_vliw_addr_to_LR (current_cpu
, 1);
11411 USI opval
= ANDSI (ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))), 0xfffffffc);
11412 sim_queue_pc_write (current_cpu
, opval
);
11413 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
11415 frvbf_model_branch (current_cpu
, pc
, 2);
11422 /* jmpil: jmpil$pack @($GRi,$s12) */
11425 SEM_FN_NAME (frvbf
,jmpil
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
11427 #define FLD(f) abuf->fields.sfmt_jmpil.f
11428 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
11429 int UNUSED written
= 0;
11430 IADDR UNUSED pc
= abuf
->addr
;
11431 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
11434 if (EQSI (FLD (f_LI
), 1)) {
11435 frvbf_set_write_next_vliw_addr_to_LR (current_cpu
, 1);
11438 USI opval
= ANDSI (ADDSI (GET_H_GR (FLD (f_GRi
)), FLD (f_d12
)), 0xfffffffc);
11439 sim_queue_pc_write (current_cpu
, opval
);
11440 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
11442 frvbf_model_branch (current_cpu
, pc
, 2);
11449 /* callil: callil$pack @($GRi,$s12) */
11452 SEM_FN_NAME (frvbf
,callil
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
11454 #define FLD(f) abuf->fields.sfmt_jmpil.f
11455 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
11456 int UNUSED written
= 0;
11457 IADDR UNUSED pc
= abuf
->addr
;
11458 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
11461 if (EQSI (FLD (f_LI
), 1)) {
11462 frvbf_set_write_next_vliw_addr_to_LR (current_cpu
, 1);
11465 USI opval
= ANDSI (ADDSI (GET_H_GR (FLD (f_GRi
)), FLD (f_d12
)), 0xfffffffc);
11466 sim_queue_pc_write (current_cpu
, opval
);
11467 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
11469 frvbf_model_branch (current_cpu
, pc
, 2);
11476 /* call: call$pack $label24 */
11479 SEM_FN_NAME (frvbf
,call
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
11481 #define FLD(f) abuf->fields.sfmt_call.f
11482 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
11483 int UNUSED written
= 0;
11484 IADDR UNUSED pc
= abuf
->addr
;
11485 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
11488 frvbf_set_write_next_vliw_addr_to_LR (current_cpu
, 1);
11490 USI opval
= FLD (i_label24
);
11491 sim_queue_pc_write (current_cpu
, opval
);
11492 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
11494 frvbf_model_branch (current_cpu
, pc
, 2);
11501 /* rett: rett$pack $debug */
11504 SEM_FN_NAME (frvbf
,rett
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
11506 #define FLD(f) abuf->fields.sfmt_rett.f
11507 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
11508 int UNUSED written
= 0;
11509 IADDR UNUSED pc
= abuf
->addr
;
11510 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
11514 USI opval
= frv_rett (current_cpu
, pc
, FLD (f_debug
));
11515 sim_queue_pc_write (current_cpu
, opval
);
11516 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
11518 frvbf_model_branch (current_cpu
, pc
, 2);
11525 /* rei: rei$pack $eir */
11528 SEM_FN_NAME (frvbf
,rei
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
11530 #define FLD(f) abuf->fields.fmt_empty.f
11531 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
11532 int UNUSED written
= 0;
11533 IADDR UNUSED pc
= abuf
->addr
;
11534 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
11536 ((void) 0); /*nop*/
11542 /* tra: tra$pack $GRi,$GRj */
11545 SEM_FN_NAME (frvbf
,tra
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
11547 #define FLD(f) abuf->fields.sfmt_ftne.f
11548 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
11549 int UNUSED written
= 0;
11550 IADDR UNUSED pc
= abuf
->addr
;
11551 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
11558 if (NEBI (CPU (h_psr_esr
), 0)) {
11566 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
11569 abuf
->written
= written
;
11574 /* tno: tno$pack */
11577 SEM_FN_NAME (frvbf
,tno
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
11579 #define FLD(f) abuf->fields.fmt_empty.f
11580 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
11581 int UNUSED written
= 0;
11582 IADDR UNUSED pc
= abuf
->addr
;
11583 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
11585 ((void) 0); /*nop*/
11591 /* teq: teq$pack $ICCi_2,$GRi,$GRj */
11594 SEM_FN_NAME (frvbf
,teq
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
11596 #define FLD(f) abuf->fields.sfmt_teq.f
11597 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
11598 int UNUSED written
= 0;
11599 IADDR UNUSED pc
= abuf
->addr
;
11600 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
11602 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 4), 2))) {
11608 if (NEBI (CPU (h_psr_esr
), 0)) {
11616 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
11620 abuf
->written
= written
;
11625 /* tne: tne$pack $ICCi_2,$GRi,$GRj */
11628 SEM_FN_NAME (frvbf
,tne
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
11630 #define FLD(f) abuf->fields.sfmt_teq.f
11631 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
11632 int UNUSED written
= 0;
11633 IADDR UNUSED pc
= abuf
->addr
;
11634 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
11636 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 4), 2)))) {
11642 if (NEBI (CPU (h_psr_esr
), 0)) {
11650 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
11654 abuf
->written
= written
;
11659 /* tle: tle$pack $ICCi_2,$GRi,$GRj */
11662 SEM_FN_NAME (frvbf
,tle
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
11664 #define FLD(f) abuf->fields.sfmt_teq.f
11665 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
11666 int UNUSED written
= 0;
11667 IADDR UNUSED pc
= abuf
->addr
;
11668 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
11670 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 4), 2)), XORBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 2), 1))))) {
11676 if (NEBI (CPU (h_psr_esr
), 0)) {
11684 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
11688 abuf
->written
= written
;
11693 /* tgt: tgt$pack $ICCi_2,$GRi,$GRj */
11696 SEM_FN_NAME (frvbf
,tgt
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
11698 #define FLD(f) abuf->fields.sfmt_teq.f
11699 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
11700 int UNUSED written
= 0;
11701 IADDR UNUSED pc
= abuf
->addr
;
11702 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
11704 if (NOTBI (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 4), 2)), XORBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 2), 1)))))) {
11710 if (NEBI (CPU (h_psr_esr
), 0)) {
11718 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
11722 abuf
->written
= written
;
11727 /* tlt: tlt$pack $ICCi_2,$GRi,$GRj */
11730 SEM_FN_NAME (frvbf
,tlt
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
11732 #define FLD(f) abuf->fields.sfmt_teq.f
11733 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
11734 int UNUSED written
= 0;
11735 IADDR UNUSED pc
= abuf
->addr
;
11736 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
11738 if (XORBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 2), 1)))) {
11744 if (NEBI (CPU (h_psr_esr
), 0)) {
11752 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
11756 abuf
->written
= written
;
11761 /* tge: tge$pack $ICCi_2,$GRi,$GRj */
11764 SEM_FN_NAME (frvbf
,tge
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
11766 #define FLD(f) abuf->fields.sfmt_teq.f
11767 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
11768 int UNUSED written
= 0;
11769 IADDR UNUSED pc
= abuf
->addr
;
11770 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
11772 if (NOTBI (XORBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 2), 1))))) {
11778 if (NEBI (CPU (h_psr_esr
), 0)) {
11786 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
11790 abuf
->written
= written
;
11795 /* tls: tls$pack $ICCi_2,$GRi,$GRj */
11798 SEM_FN_NAME (frvbf
,tls
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
11800 #define FLD(f) abuf->fields.sfmt_teq.f
11801 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
11802 int UNUSED written
= 0;
11803 IADDR UNUSED pc
= abuf
->addr
;
11804 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
11806 if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 4), 2)))) {
11812 if (NEBI (CPU (h_psr_esr
), 0)) {
11820 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
11824 abuf
->written
= written
;
11829 /* thi: thi$pack $ICCi_2,$GRi,$GRj */
11832 SEM_FN_NAME (frvbf
,thi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
11834 #define FLD(f) abuf->fields.sfmt_teq.f
11835 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
11836 int UNUSED written
= 0;
11837 IADDR UNUSED pc
= abuf
->addr
;
11838 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
11840 if (NOTBI (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 4), 2))))) {
11846 if (NEBI (CPU (h_psr_esr
), 0)) {
11854 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
11858 abuf
->written
= written
;
11863 /* tc: tc$pack $ICCi_2,$GRi,$GRj */
11866 SEM_FN_NAME (frvbf
,tc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
11868 #define FLD(f) abuf->fields.sfmt_teq.f
11869 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
11870 int UNUSED written
= 0;
11871 IADDR UNUSED pc
= abuf
->addr
;
11872 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
11874 if (TRUNCQIBI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 1))) {
11880 if (NEBI (CPU (h_psr_esr
), 0)) {
11888 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
11892 abuf
->written
= written
;
11897 /* tnc: tnc$pack $ICCi_2,$GRi,$GRj */
11900 SEM_FN_NAME (frvbf
,tnc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
11902 #define FLD(f) abuf->fields.sfmt_teq.f
11903 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
11904 int UNUSED written
= 0;
11905 IADDR UNUSED pc
= abuf
->addr
;
11906 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
11908 if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 1)))) {
11914 if (NEBI (CPU (h_psr_esr
), 0)) {
11922 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
11926 abuf
->written
= written
;
11931 /* tn: tn$pack $ICCi_2,$GRi,$GRj */
11934 SEM_FN_NAME (frvbf
,tn
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
11936 #define FLD(f) abuf->fields.sfmt_teq.f
11937 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
11938 int UNUSED written
= 0;
11939 IADDR UNUSED pc
= abuf
->addr
;
11940 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
11942 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 8), 3))) {
11948 if (NEBI (CPU (h_psr_esr
), 0)) {
11956 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
11960 abuf
->written
= written
;
11965 /* tp: tp$pack $ICCi_2,$GRi,$GRj */
11968 SEM_FN_NAME (frvbf
,tp
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
11970 #define FLD(f) abuf->fields.sfmt_teq.f
11971 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
11972 int UNUSED written
= 0;
11973 IADDR UNUSED pc
= abuf
->addr
;
11974 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
11976 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 8), 3)))) {
11982 if (NEBI (CPU (h_psr_esr
), 0)) {
11990 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
11994 abuf
->written
= written
;
11999 /* tv: tv$pack $ICCi_2,$GRi,$GRj */
12002 SEM_FN_NAME (frvbf
,tv
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
12004 #define FLD(f) abuf->fields.sfmt_teq.f
12005 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
12006 int UNUSED written
= 0;
12007 IADDR UNUSED pc
= abuf
->addr
;
12008 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
12010 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 2), 1))) {
12016 if (NEBI (CPU (h_psr_esr
), 0)) {
12024 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
12028 abuf
->written
= written
;
12033 /* tnv: tnv$pack $ICCi_2,$GRi,$GRj */
12036 SEM_FN_NAME (frvbf
,tnv
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
12038 #define FLD(f) abuf->fields.sfmt_teq.f
12039 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
12040 int UNUSED written
= 0;
12041 IADDR UNUSED pc
= abuf
->addr
;
12042 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
12044 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 2), 1)))) {
12050 if (NEBI (CPU (h_psr_esr
), 0)) {
12058 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
12062 abuf
->written
= written
;
12067 /* ftra: ftra$pack $GRi,$GRj */
12070 SEM_FN_NAME (frvbf
,ftra
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
12072 #define FLD(f) abuf->fields.sfmt_ftne.f
12073 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
12074 int UNUSED written
= 0;
12075 IADDR UNUSED pc
= abuf
->addr
;
12076 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
12083 if (NEBI (CPU (h_psr_esr
), 0)) {
12091 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
12094 abuf
->written
= written
;
12099 /* ftno: ftno$pack */
12102 SEM_FN_NAME (frvbf
,ftno
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
12104 #define FLD(f) abuf->fields.fmt_empty.f
12105 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
12106 int UNUSED written
= 0;
12107 IADDR UNUSED pc
= abuf
->addr
;
12108 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
12110 ((void) 0); /*nop*/
12116 /* ftne: ftne$pack $FCCi_2,$GRi,$GRj */
12119 SEM_FN_NAME (frvbf
,ftne
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
12121 #define FLD(f) abuf->fields.sfmt_ftne.f
12122 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
12123 int UNUSED written
= 0;
12124 IADDR UNUSED pc
= abuf
->addr
;
12125 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
12127 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 4), 2)), ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 1))))) {
12133 if (NEBI (CPU (h_psr_esr
), 0)) {
12141 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
12145 abuf
->written
= written
;
12150 /* fteq: fteq$pack $FCCi_2,$GRi,$GRj */
12153 SEM_FN_NAME (frvbf
,fteq
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
12155 #define FLD(f) abuf->fields.sfmt_ftne.f
12156 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
12157 int UNUSED written
= 0;
12158 IADDR UNUSED pc
= abuf
->addr
;
12159 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
12161 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 8), 3))) {
12167 if (NEBI (CPU (h_psr_esr
), 0)) {
12175 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
12179 abuf
->written
= written
;
12184 /* ftlg: ftlg$pack $FCCi_2,$GRi,$GRj */
12187 SEM_FN_NAME (frvbf
,ftlg
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
12189 #define FLD(f) abuf->fields.sfmt_ftne.f
12190 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
12191 int UNUSED written
= 0;
12192 IADDR UNUSED pc
= abuf
->addr
;
12193 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
12195 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 4), 2)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 2), 1)))) {
12201 if (NEBI (CPU (h_psr_esr
), 0)) {
12209 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
12213 abuf
->written
= written
;
12218 /* ftue: ftue$pack $FCCi_2,$GRi,$GRj */
12221 SEM_FN_NAME (frvbf
,ftue
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
12223 #define FLD(f) abuf->fields.sfmt_ftne.f
12224 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
12225 int UNUSED written
= 0;
12226 IADDR UNUSED pc
= abuf
->addr
;
12227 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
12229 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 1)))) {
12235 if (NEBI (CPU (h_psr_esr
), 0)) {
12243 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
12247 abuf
->written
= written
;
12252 /* ftul: ftul$pack $FCCi_2,$GRi,$GRj */
12255 SEM_FN_NAME (frvbf
,ftul
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
12257 #define FLD(f) abuf->fields.sfmt_ftne.f
12258 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
12259 int UNUSED written
= 0;
12260 IADDR UNUSED pc
= abuf
->addr
;
12261 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
12263 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 1)))) {
12269 if (NEBI (CPU (h_psr_esr
), 0)) {
12277 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
12281 abuf
->written
= written
;
12286 /* ftge: ftge$pack $FCCi_2,$GRi,$GRj */
12289 SEM_FN_NAME (frvbf
,ftge
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
12291 #define FLD(f) abuf->fields.sfmt_ftne.f
12292 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
12293 int UNUSED written
= 0;
12294 IADDR UNUSED pc
= abuf
->addr
;
12295 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
12297 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 2), 1)))) {
12303 if (NEBI (CPU (h_psr_esr
), 0)) {
12311 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
12315 abuf
->written
= written
;
12320 /* ftlt: ftlt$pack $FCCi_2,$GRi,$GRj */
12323 SEM_FN_NAME (frvbf
,ftlt
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
12325 #define FLD(f) abuf->fields.sfmt_ftne.f
12326 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
12327 int UNUSED written
= 0;
12328 IADDR UNUSED pc
= abuf
->addr
;
12329 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
12331 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 4), 2))) {
12337 if (NEBI (CPU (h_psr_esr
), 0)) {
12345 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
12349 abuf
->written
= written
;
12354 /* ftuge: ftuge$pack $FCCi_2,$GRi,$GRj */
12357 SEM_FN_NAME (frvbf
,ftuge
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
12359 #define FLD(f) abuf->fields.sfmt_ftne.f
12360 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
12361 int UNUSED written
= 0;
12362 IADDR UNUSED pc
= abuf
->addr
;
12363 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
12365 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 8), 3)), ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 1))))) {
12371 if (NEBI (CPU (h_psr_esr
), 0)) {
12379 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
12383 abuf
->written
= written
;
12388 /* ftug: ftug$pack $FCCi_2,$GRi,$GRj */
12391 SEM_FN_NAME (frvbf
,ftug
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
12393 #define FLD(f) abuf->fields.sfmt_ftne.f
12394 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
12395 int UNUSED written
= 0;
12396 IADDR UNUSED pc
= abuf
->addr
;
12397 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
12399 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 1)))) {
12405 if (NEBI (CPU (h_psr_esr
), 0)) {
12413 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
12417 abuf
->written
= written
;
12422 /* ftle: ftle$pack $FCCi_2,$GRi,$GRj */
12425 SEM_FN_NAME (frvbf
,ftle
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
12427 #define FLD(f) abuf->fields.sfmt_ftne.f
12428 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
12429 int UNUSED written
= 0;
12430 IADDR UNUSED pc
= abuf
->addr
;
12431 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
12433 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 4), 2)))) {
12439 if (NEBI (CPU (h_psr_esr
), 0)) {
12447 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
12451 abuf
->written
= written
;
12456 /* ftgt: ftgt$pack $FCCi_2,$GRi,$GRj */
12459 SEM_FN_NAME (frvbf
,ftgt
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
12461 #define FLD(f) abuf->fields.sfmt_ftne.f
12462 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
12463 int UNUSED written
= 0;
12464 IADDR UNUSED pc
= abuf
->addr
;
12465 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
12467 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 2), 1))) {
12473 if (NEBI (CPU (h_psr_esr
), 0)) {
12481 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
12485 abuf
->written
= written
;
12490 /* ftule: ftule$pack $FCCi_2,$GRi,$GRj */
12493 SEM_FN_NAME (frvbf
,ftule
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
12495 #define FLD(f) abuf->fields.sfmt_ftne.f
12496 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
12497 int UNUSED written
= 0;
12498 IADDR UNUSED pc
= abuf
->addr
;
12499 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
12501 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 8), 3)), ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 1))))) {
12507 if (NEBI (CPU (h_psr_esr
), 0)) {
12515 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
12519 abuf
->written
= written
;
12524 /* ftu: ftu$pack $FCCi_2,$GRi,$GRj */
12527 SEM_FN_NAME (frvbf
,ftu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
12529 #define FLD(f) abuf->fields.sfmt_ftne.f
12530 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
12531 int UNUSED written
= 0;
12532 IADDR UNUSED pc
= abuf
->addr
;
12533 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
12535 if (TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 1))) {
12541 if (NEBI (CPU (h_psr_esr
), 0)) {
12549 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
12553 abuf
->written
= written
;
12558 /* fto: fto$pack $FCCi_2,$GRi,$GRj */
12561 SEM_FN_NAME (frvbf
,fto
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
12563 #define FLD(f) abuf->fields.sfmt_ftne.f
12564 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
12565 int UNUSED written
= 0;
12566 IADDR UNUSED pc
= abuf
->addr
;
12567 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
12569 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 8), 3)), ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 4), 2)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 2), 1))))) {
12575 if (NEBI (CPU (h_psr_esr
), 0)) {
12583 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
12587 abuf
->written
= written
;
12592 /* tira: tira$pack $GRi,$s12 */
12595 SEM_FN_NAME (frvbf
,tira
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
12597 #define FLD(f) abuf->fields.sfmt_ftine.f
12598 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
12599 int UNUSED written
= 0;
12600 IADDR UNUSED pc
= abuf
->addr
;
12601 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
12608 if (NEBI (CPU (h_psr_esr
), 0)) {
12616 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
12619 abuf
->written
= written
;
12624 /* tino: tino$pack */
12627 SEM_FN_NAME (frvbf
,tino
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
12629 #define FLD(f) abuf->fields.fmt_empty.f
12630 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
12631 int UNUSED written
= 0;
12632 IADDR UNUSED pc
= abuf
->addr
;
12633 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
12635 ((void) 0); /*nop*/
12641 /* tieq: tieq$pack $ICCi_2,$GRi,$s12 */
12644 SEM_FN_NAME (frvbf
,tieq
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
12646 #define FLD(f) abuf->fields.sfmt_tieq.f
12647 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
12648 int UNUSED written
= 0;
12649 IADDR UNUSED pc
= abuf
->addr
;
12650 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
12652 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 4), 2))) {
12658 if (NEBI (CPU (h_psr_esr
), 0)) {
12666 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
12670 abuf
->written
= written
;
12675 /* tine: tine$pack $ICCi_2,$GRi,$s12 */
12678 SEM_FN_NAME (frvbf
,tine
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
12680 #define FLD(f) abuf->fields.sfmt_tieq.f
12681 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
12682 int UNUSED written
= 0;
12683 IADDR UNUSED pc
= abuf
->addr
;
12684 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
12686 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 4), 2)))) {
12692 if (NEBI (CPU (h_psr_esr
), 0)) {
12700 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
12704 abuf
->written
= written
;
12709 /* tile: tile$pack $ICCi_2,$GRi,$s12 */
12712 SEM_FN_NAME (frvbf
,tile
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
12714 #define FLD(f) abuf->fields.sfmt_tieq.f
12715 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
12716 int UNUSED written
= 0;
12717 IADDR UNUSED pc
= abuf
->addr
;
12718 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
12720 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 4), 2)), XORBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 2), 1))))) {
12726 if (NEBI (CPU (h_psr_esr
), 0)) {
12734 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
12738 abuf
->written
= written
;
12743 /* tigt: tigt$pack $ICCi_2,$GRi,$s12 */
12746 SEM_FN_NAME (frvbf
,tigt
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
12748 #define FLD(f) abuf->fields.sfmt_tieq.f
12749 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
12750 int UNUSED written
= 0;
12751 IADDR UNUSED pc
= abuf
->addr
;
12752 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
12754 if (NOTBI (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 4), 2)), XORBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 2), 1)))))) {
12760 if (NEBI (CPU (h_psr_esr
), 0)) {
12768 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
12772 abuf
->written
= written
;
12777 /* tilt: tilt$pack $ICCi_2,$GRi,$s12 */
12780 SEM_FN_NAME (frvbf
,tilt
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
12782 #define FLD(f) abuf->fields.sfmt_tieq.f
12783 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
12784 int UNUSED written
= 0;
12785 IADDR UNUSED pc
= abuf
->addr
;
12786 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
12788 if (XORBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 2), 1)))) {
12794 if (NEBI (CPU (h_psr_esr
), 0)) {
12802 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
12806 abuf
->written
= written
;
12811 /* tige: tige$pack $ICCi_2,$GRi,$s12 */
12814 SEM_FN_NAME (frvbf
,tige
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
12816 #define FLD(f) abuf->fields.sfmt_tieq.f
12817 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
12818 int UNUSED written
= 0;
12819 IADDR UNUSED pc
= abuf
->addr
;
12820 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
12822 if (NOTBI (XORBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 2), 1))))) {
12828 if (NEBI (CPU (h_psr_esr
), 0)) {
12836 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
12840 abuf
->written
= written
;
12845 /* tils: tils$pack $ICCi_2,$GRi,$s12 */
12848 SEM_FN_NAME (frvbf
,tils
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
12850 #define FLD(f) abuf->fields.sfmt_tieq.f
12851 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
12852 int UNUSED written
= 0;
12853 IADDR UNUSED pc
= abuf
->addr
;
12854 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
12856 if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 4), 2)))) {
12862 if (NEBI (CPU (h_psr_esr
), 0)) {
12870 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
12874 abuf
->written
= written
;
12879 /* tihi: tihi$pack $ICCi_2,$GRi,$s12 */
12882 SEM_FN_NAME (frvbf
,tihi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
12884 #define FLD(f) abuf->fields.sfmt_tieq.f
12885 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
12886 int UNUSED written
= 0;
12887 IADDR UNUSED pc
= abuf
->addr
;
12888 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
12890 if (NOTBI (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 4), 2))))) {
12896 if (NEBI (CPU (h_psr_esr
), 0)) {
12904 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
12908 abuf
->written
= written
;
12913 /* tic: tic$pack $ICCi_2,$GRi,$s12 */
12916 SEM_FN_NAME (frvbf
,tic
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
12918 #define FLD(f) abuf->fields.sfmt_tieq.f
12919 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
12920 int UNUSED written
= 0;
12921 IADDR UNUSED pc
= abuf
->addr
;
12922 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
12924 if (TRUNCQIBI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 1))) {
12930 if (NEBI (CPU (h_psr_esr
), 0)) {
12938 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
12942 abuf
->written
= written
;
12947 /* tinc: tinc$pack $ICCi_2,$GRi,$s12 */
12950 SEM_FN_NAME (frvbf
,tinc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
12952 #define FLD(f) abuf->fields.sfmt_tieq.f
12953 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
12954 int UNUSED written
= 0;
12955 IADDR UNUSED pc
= abuf
->addr
;
12956 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
12958 if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 1)))) {
12964 if (NEBI (CPU (h_psr_esr
), 0)) {
12972 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
12976 abuf
->written
= written
;
12981 /* tin: tin$pack $ICCi_2,$GRi,$s12 */
12984 SEM_FN_NAME (frvbf
,tin
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
12986 #define FLD(f) abuf->fields.sfmt_tieq.f
12987 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
12988 int UNUSED written
= 0;
12989 IADDR UNUSED pc
= abuf
->addr
;
12990 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
12992 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 8), 3))) {
12998 if (NEBI (CPU (h_psr_esr
), 0)) {
13006 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
13010 abuf
->written
= written
;
13015 /* tip: tip$pack $ICCi_2,$GRi,$s12 */
13018 SEM_FN_NAME (frvbf
,tip
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
13020 #define FLD(f) abuf->fields.sfmt_tieq.f
13021 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
13022 int UNUSED written
= 0;
13023 IADDR UNUSED pc
= abuf
->addr
;
13024 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
13026 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 8), 3)))) {
13032 if (NEBI (CPU (h_psr_esr
), 0)) {
13040 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
13044 abuf
->written
= written
;
13049 /* tiv: tiv$pack $ICCi_2,$GRi,$s12 */
13052 SEM_FN_NAME (frvbf
,tiv
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
13054 #define FLD(f) abuf->fields.sfmt_tieq.f
13055 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
13056 int UNUSED written
= 0;
13057 IADDR UNUSED pc
= abuf
->addr
;
13058 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
13060 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 2), 1))) {
13066 if (NEBI (CPU (h_psr_esr
), 0)) {
13074 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
13078 abuf
->written
= written
;
13083 /* tinv: tinv$pack $ICCi_2,$GRi,$s12 */
13086 SEM_FN_NAME (frvbf
,tinv
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
13088 #define FLD(f) abuf->fields.sfmt_tieq.f
13089 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
13090 int UNUSED written
= 0;
13091 IADDR UNUSED pc
= abuf
->addr
;
13092 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
13094 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 2), 1)))) {
13100 if (NEBI (CPU (h_psr_esr
), 0)) {
13108 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
13112 abuf
->written
= written
;
13117 /* ftira: ftira$pack $GRi,$s12 */
13120 SEM_FN_NAME (frvbf
,ftira
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
13122 #define FLD(f) abuf->fields.sfmt_ftine.f
13123 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
13124 int UNUSED written
= 0;
13125 IADDR UNUSED pc
= abuf
->addr
;
13126 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
13133 if (NEBI (CPU (h_psr_esr
), 0)) {
13141 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
13144 abuf
->written
= written
;
13149 /* ftino: ftino$pack */
13152 SEM_FN_NAME (frvbf
,ftino
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
13154 #define FLD(f) abuf->fields.fmt_empty.f
13155 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
13156 int UNUSED written
= 0;
13157 IADDR UNUSED pc
= abuf
->addr
;
13158 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
13160 ((void) 0); /*nop*/
13166 /* ftine: ftine$pack $FCCi_2,$GRi,$s12 */
13169 SEM_FN_NAME (frvbf
,ftine
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
13171 #define FLD(f) abuf->fields.sfmt_ftine.f
13172 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
13173 int UNUSED written
= 0;
13174 IADDR UNUSED pc
= abuf
->addr
;
13175 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
13177 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 4), 2)), ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 1))))) {
13183 if (NEBI (CPU (h_psr_esr
), 0)) {
13191 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
13195 abuf
->written
= written
;
13200 /* ftieq: ftieq$pack $FCCi_2,$GRi,$s12 */
13203 SEM_FN_NAME (frvbf
,ftieq
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
13205 #define FLD(f) abuf->fields.sfmt_ftine.f
13206 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
13207 int UNUSED written
= 0;
13208 IADDR UNUSED pc
= abuf
->addr
;
13209 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
13211 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 8), 3))) {
13217 if (NEBI (CPU (h_psr_esr
), 0)) {
13225 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
13229 abuf
->written
= written
;
13234 /* ftilg: ftilg$pack $FCCi_2,$GRi,$s12 */
13237 SEM_FN_NAME (frvbf
,ftilg
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
13239 #define FLD(f) abuf->fields.sfmt_ftine.f
13240 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
13241 int UNUSED written
= 0;
13242 IADDR UNUSED pc
= abuf
->addr
;
13243 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
13245 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 4), 2)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 2), 1)))) {
13251 if (NEBI (CPU (h_psr_esr
), 0)) {
13259 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
13263 abuf
->written
= written
;
13268 /* ftiue: ftiue$pack $FCCi_2,$GRi,$s12 */
13271 SEM_FN_NAME (frvbf
,ftiue
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
13273 #define FLD(f) abuf->fields.sfmt_ftine.f
13274 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
13275 int UNUSED written
= 0;
13276 IADDR UNUSED pc
= abuf
->addr
;
13277 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
13279 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 1)))) {
13285 if (NEBI (CPU (h_psr_esr
), 0)) {
13293 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
13297 abuf
->written
= written
;
13302 /* ftiul: ftiul$pack $FCCi_2,$GRi,$s12 */
13305 SEM_FN_NAME (frvbf
,ftiul
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
13307 #define FLD(f) abuf->fields.sfmt_ftine.f
13308 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
13309 int UNUSED written
= 0;
13310 IADDR UNUSED pc
= abuf
->addr
;
13311 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
13313 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 1)))) {
13319 if (NEBI (CPU (h_psr_esr
), 0)) {
13327 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
13331 abuf
->written
= written
;
13336 /* ftige: ftige$pack $FCCi_2,$GRi,$s12 */
13339 SEM_FN_NAME (frvbf
,ftige
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
13341 #define FLD(f) abuf->fields.sfmt_ftine.f
13342 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
13343 int UNUSED written
= 0;
13344 IADDR UNUSED pc
= abuf
->addr
;
13345 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
13347 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 2), 1)))) {
13353 if (NEBI (CPU (h_psr_esr
), 0)) {
13361 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
13365 abuf
->written
= written
;
13370 /* ftilt: ftilt$pack $FCCi_2,$GRi,$s12 */
13373 SEM_FN_NAME (frvbf
,ftilt
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
13375 #define FLD(f) abuf->fields.sfmt_ftine.f
13376 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
13377 int UNUSED written
= 0;
13378 IADDR UNUSED pc
= abuf
->addr
;
13379 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
13381 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 4), 2))) {
13387 if (NEBI (CPU (h_psr_esr
), 0)) {
13395 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
13399 abuf
->written
= written
;
13404 /* ftiuge: ftiuge$pack $FCCi_2,$GRi,$s12 */
13407 SEM_FN_NAME (frvbf
,ftiuge
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
13409 #define FLD(f) abuf->fields.sfmt_ftine.f
13410 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
13411 int UNUSED written
= 0;
13412 IADDR UNUSED pc
= abuf
->addr
;
13413 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
13415 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 8), 3)), ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 1))))) {
13421 if (NEBI (CPU (h_psr_esr
), 0)) {
13429 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
13433 abuf
->written
= written
;
13438 /* ftiug: ftiug$pack $FCCi_2,$GRi,$s12 */
13441 SEM_FN_NAME (frvbf
,ftiug
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
13443 #define FLD(f) abuf->fields.sfmt_ftine.f
13444 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
13445 int UNUSED written
= 0;
13446 IADDR UNUSED pc
= abuf
->addr
;
13447 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
13449 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 1)))) {
13455 if (NEBI (CPU (h_psr_esr
), 0)) {
13463 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
13467 abuf
->written
= written
;
13472 /* ftile: ftile$pack $FCCi_2,$GRi,$s12 */
13475 SEM_FN_NAME (frvbf
,ftile
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
13477 #define FLD(f) abuf->fields.sfmt_ftine.f
13478 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
13479 int UNUSED written
= 0;
13480 IADDR UNUSED pc
= abuf
->addr
;
13481 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
13483 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 4), 2)))) {
13489 if (NEBI (CPU (h_psr_esr
), 0)) {
13497 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
13501 abuf
->written
= written
;
13506 /* ftigt: ftigt$pack $FCCi_2,$GRi,$s12 */
13509 SEM_FN_NAME (frvbf
,ftigt
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
13511 #define FLD(f) abuf->fields.sfmt_ftine.f
13512 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
13513 int UNUSED written
= 0;
13514 IADDR UNUSED pc
= abuf
->addr
;
13515 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
13517 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 2), 1))) {
13523 if (NEBI (CPU (h_psr_esr
), 0)) {
13531 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
13535 abuf
->written
= written
;
13540 /* ftiule: ftiule$pack $FCCi_2,$GRi,$s12 */
13543 SEM_FN_NAME (frvbf
,ftiule
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
13545 #define FLD(f) abuf->fields.sfmt_ftine.f
13546 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
13547 int UNUSED written
= 0;
13548 IADDR UNUSED pc
= abuf
->addr
;
13549 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
13551 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 8), 3)), ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 1))))) {
13557 if (NEBI (CPU (h_psr_esr
), 0)) {
13565 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
13569 abuf
->written
= written
;
13574 /* ftiu: ftiu$pack $FCCi_2,$GRi,$s12 */
13577 SEM_FN_NAME (frvbf
,ftiu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
13579 #define FLD(f) abuf->fields.sfmt_ftine.f
13580 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
13581 int UNUSED written
= 0;
13582 IADDR UNUSED pc
= abuf
->addr
;
13583 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
13585 if (TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 1))) {
13591 if (NEBI (CPU (h_psr_esr
), 0)) {
13599 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
13603 abuf
->written
= written
;
13608 /* ftio: ftio$pack $FCCi_2,$GRi,$s12 */
13611 SEM_FN_NAME (frvbf
,ftio
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
13613 #define FLD(f) abuf->fields.sfmt_ftine.f
13614 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
13615 int UNUSED written
= 0;
13616 IADDR UNUSED pc
= abuf
->addr
;
13617 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
13619 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 8), 3)), ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 4), 2)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 2), 1))))) {
13625 if (NEBI (CPU (h_psr_esr
), 0)) {
13633 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
13637 abuf
->written
= written
;
13642 /* break: break$pack */
13645 SEM_FN_NAME (frvbf
,break) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
13647 #define FLD(f) abuf->fields.sfmt_break.f
13648 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
13649 int UNUSED written
= 0;
13650 IADDR UNUSED pc
= abuf
->addr
;
13651 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
13660 frv_break (current_cpu
);
13667 /* mtrap: mtrap$pack */
13670 SEM_FN_NAME (frvbf
,mtrap
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
13672 #define FLD(f) abuf->fields.fmt_empty.f
13673 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
13674 int UNUSED written
= 0;
13675 IADDR UNUSED pc
= abuf
->addr
;
13676 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
13678 frv_mtrap (current_cpu
);
13684 /* andcr: andcr$pack $CRi,$CRj,$CRk */
13687 SEM_FN_NAME (frvbf
,andcr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
13689 #define FLD(f) abuf->fields.sfmt_andcr.f
13690 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
13691 int UNUSED written
= 0;
13692 IADDR UNUSED pc
= abuf
->addr
;
13693 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
13696 UQI opval
= frvbf_cr_logic (current_cpu
, 0, CPU (h_cccr
[FLD (f_CRi
)]), CPU (h_cccr
[FLD (f_CRj
)]));
13697 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRk
)]), opval
);
13698 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
13705 /* orcr: orcr$pack $CRi,$CRj,$CRk */
13708 SEM_FN_NAME (frvbf
,orcr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
13710 #define FLD(f) abuf->fields.sfmt_andcr.f
13711 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
13712 int UNUSED written
= 0;
13713 IADDR UNUSED pc
= abuf
->addr
;
13714 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
13717 UQI opval
= frvbf_cr_logic (current_cpu
, 1, CPU (h_cccr
[FLD (f_CRi
)]), CPU (h_cccr
[FLD (f_CRj
)]));
13718 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRk
)]), opval
);
13719 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
13726 /* xorcr: xorcr$pack $CRi,$CRj,$CRk */
13729 SEM_FN_NAME (frvbf
,xorcr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
13731 #define FLD(f) abuf->fields.sfmt_andcr.f
13732 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
13733 int UNUSED written
= 0;
13734 IADDR UNUSED pc
= abuf
->addr
;
13735 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
13738 UQI opval
= frvbf_cr_logic (current_cpu
, 2, CPU (h_cccr
[FLD (f_CRi
)]), CPU (h_cccr
[FLD (f_CRj
)]));
13739 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRk
)]), opval
);
13740 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
13747 /* nandcr: nandcr$pack $CRi,$CRj,$CRk */
13750 SEM_FN_NAME (frvbf
,nandcr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
13752 #define FLD(f) abuf->fields.sfmt_andcr.f
13753 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
13754 int UNUSED written
= 0;
13755 IADDR UNUSED pc
= abuf
->addr
;
13756 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
13759 UQI opval
= frvbf_cr_logic (current_cpu
, 3, CPU (h_cccr
[FLD (f_CRi
)]), CPU (h_cccr
[FLD (f_CRj
)]));
13760 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRk
)]), opval
);
13761 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
13768 /* norcr: norcr$pack $CRi,$CRj,$CRk */
13771 SEM_FN_NAME (frvbf
,norcr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
13773 #define FLD(f) abuf->fields.sfmt_andcr.f
13774 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
13775 int UNUSED written
= 0;
13776 IADDR UNUSED pc
= abuf
->addr
;
13777 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
13780 UQI opval
= frvbf_cr_logic (current_cpu
, 4, CPU (h_cccr
[FLD (f_CRi
)]), CPU (h_cccr
[FLD (f_CRj
)]));
13781 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRk
)]), opval
);
13782 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
13789 /* andncr: andncr$pack $CRi,$CRj,$CRk */
13792 SEM_FN_NAME (frvbf
,andncr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
13794 #define FLD(f) abuf->fields.sfmt_andcr.f
13795 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
13796 int UNUSED written
= 0;
13797 IADDR UNUSED pc
= abuf
->addr
;
13798 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
13801 UQI opval
= frvbf_cr_logic (current_cpu
, 5, CPU (h_cccr
[FLD (f_CRi
)]), CPU (h_cccr
[FLD (f_CRj
)]));
13802 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRk
)]), opval
);
13803 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
13810 /* orncr: orncr$pack $CRi,$CRj,$CRk */
13813 SEM_FN_NAME (frvbf
,orncr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
13815 #define FLD(f) abuf->fields.sfmt_andcr.f
13816 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
13817 int UNUSED written
= 0;
13818 IADDR UNUSED pc
= abuf
->addr
;
13819 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
13822 UQI opval
= frvbf_cr_logic (current_cpu
, 6, CPU (h_cccr
[FLD (f_CRi
)]), CPU (h_cccr
[FLD (f_CRj
)]));
13823 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRk
)]), opval
);
13824 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
13831 /* nandncr: nandncr$pack $CRi,$CRj,$CRk */
13834 SEM_FN_NAME (frvbf
,nandncr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
13836 #define FLD(f) abuf->fields.sfmt_andcr.f
13837 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
13838 int UNUSED written
= 0;
13839 IADDR UNUSED pc
= abuf
->addr
;
13840 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
13843 UQI opval
= frvbf_cr_logic (current_cpu
, 7, CPU (h_cccr
[FLD (f_CRi
)]), CPU (h_cccr
[FLD (f_CRj
)]));
13844 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRk
)]), opval
);
13845 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
13852 /* norncr: norncr$pack $CRi,$CRj,$CRk */
13855 SEM_FN_NAME (frvbf
,norncr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
13857 #define FLD(f) abuf->fields.sfmt_andcr.f
13858 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
13859 int UNUSED written
= 0;
13860 IADDR UNUSED pc
= abuf
->addr
;
13861 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
13864 UQI opval
= frvbf_cr_logic (current_cpu
, 8, CPU (h_cccr
[FLD (f_CRi
)]), CPU (h_cccr
[FLD (f_CRj
)]));
13865 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRk
)]), opval
);
13866 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
13873 /* notcr: notcr$pack $CRj,$CRk */
13876 SEM_FN_NAME (frvbf
,notcr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
13878 #define FLD(f) abuf->fields.sfmt_andcr.f
13879 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
13880 int UNUSED written
= 0;
13881 IADDR UNUSED pc
= abuf
->addr
;
13882 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
13885 UQI opval
= XORQI (CPU (h_cccr
[FLD (f_CRj
)]), 1);
13886 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRk
)]), opval
);
13887 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
13894 /* ckra: ckra$pack $CRj_int */
13897 SEM_FN_NAME (frvbf
,ckra
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
13899 #define FLD(f) abuf->fields.sfmt_cckeq.f
13900 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
13901 int UNUSED written
= 0;
13902 IADDR UNUSED pc
= abuf
->addr
;
13903 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
13907 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
13908 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
13915 /* ckno: ckno$pack $CRj_int */
13918 SEM_FN_NAME (frvbf
,ckno
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
13920 #define FLD(f) abuf->fields.sfmt_cckeq.f
13921 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
13922 int UNUSED written
= 0;
13923 IADDR UNUSED pc
= abuf
->addr
;
13924 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
13928 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
13929 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
13936 /* ckeq: ckeq$pack $ICCi_3,$CRj_int */
13939 SEM_FN_NAME (frvbf
,ckeq
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
13941 #define FLD(f) abuf->fields.sfmt_cckeq.f
13942 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
13943 int UNUSED written
= 0;
13944 IADDR UNUSED pc
= abuf
->addr
;
13945 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
13947 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_3
)]), 4), 2))) {
13950 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
13951 written
|= (1 << 1);
13952 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
13957 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
13958 written
|= (1 << 1);
13959 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
13963 abuf
->written
= written
;
13968 /* ckne: ckne$pack $ICCi_3,$CRj_int */
13971 SEM_FN_NAME (frvbf
,ckne
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
13973 #define FLD(f) abuf->fields.sfmt_cckeq.f
13974 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
13975 int UNUSED written
= 0;
13976 IADDR UNUSED pc
= abuf
->addr
;
13977 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
13979 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_3
)]), 4), 2)))) {
13982 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
13983 written
|= (1 << 1);
13984 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
13989 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
13990 written
|= (1 << 1);
13991 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
13995 abuf
->written
= written
;
14000 /* ckle: ckle$pack $ICCi_3,$CRj_int */
14003 SEM_FN_NAME (frvbf
,ckle
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
14005 #define FLD(f) abuf->fields.sfmt_cckeq.f
14006 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
14007 int UNUSED written
= 0;
14008 IADDR UNUSED pc
= abuf
->addr
;
14009 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
14011 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_3
)]), 4), 2)), XORBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_3
)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_3
)]), 2), 1))))) {
14014 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
14015 written
|= (1 << 1);
14016 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14021 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
14022 written
|= (1 << 1);
14023 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14027 abuf
->written
= written
;
14032 /* ckgt: ckgt$pack $ICCi_3,$CRj_int */
14035 SEM_FN_NAME (frvbf
,ckgt
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
14037 #define FLD(f) abuf->fields.sfmt_cckeq.f
14038 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
14039 int UNUSED written
= 0;
14040 IADDR UNUSED pc
= abuf
->addr
;
14041 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
14043 if (NOTBI (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_3
)]), 4), 2)), XORBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_3
)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_3
)]), 2), 1)))))) {
14046 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
14047 written
|= (1 << 1);
14048 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14053 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
14054 written
|= (1 << 1);
14055 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14059 abuf
->written
= written
;
14064 /* cklt: cklt$pack $ICCi_3,$CRj_int */
14067 SEM_FN_NAME (frvbf
,cklt
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
14069 #define FLD(f) abuf->fields.sfmt_cckeq.f
14070 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
14071 int UNUSED written
= 0;
14072 IADDR UNUSED pc
= abuf
->addr
;
14073 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
14075 if (XORBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_3
)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_3
)]), 2), 1)))) {
14078 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
14079 written
|= (1 << 1);
14080 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14085 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
14086 written
|= (1 << 1);
14087 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14091 abuf
->written
= written
;
14096 /* ckge: ckge$pack $ICCi_3,$CRj_int */
14099 SEM_FN_NAME (frvbf
,ckge
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
14101 #define FLD(f) abuf->fields.sfmt_cckeq.f
14102 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
14103 int UNUSED written
= 0;
14104 IADDR UNUSED pc
= abuf
->addr
;
14105 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
14107 if (NOTBI (XORBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_3
)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_3
)]), 2), 1))))) {
14110 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
14111 written
|= (1 << 1);
14112 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14117 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
14118 written
|= (1 << 1);
14119 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14123 abuf
->written
= written
;
14128 /* ckls: ckls$pack $ICCi_3,$CRj_int */
14131 SEM_FN_NAME (frvbf
,ckls
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
14133 #define FLD(f) abuf->fields.sfmt_cckeq.f
14134 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
14135 int UNUSED written
= 0;
14136 IADDR UNUSED pc
= abuf
->addr
;
14137 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
14139 if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_3
)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_3
)]), 4), 2)))) {
14142 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
14143 written
|= (1 << 1);
14144 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14149 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
14150 written
|= (1 << 1);
14151 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14155 abuf
->written
= written
;
14160 /* ckhi: ckhi$pack $ICCi_3,$CRj_int */
14163 SEM_FN_NAME (frvbf
,ckhi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
14165 #define FLD(f) abuf->fields.sfmt_cckeq.f
14166 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
14167 int UNUSED written
= 0;
14168 IADDR UNUSED pc
= abuf
->addr
;
14169 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
14171 if (NOTBI (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_3
)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_3
)]), 4), 2))))) {
14174 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
14175 written
|= (1 << 1);
14176 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14181 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
14182 written
|= (1 << 1);
14183 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14187 abuf
->written
= written
;
14192 /* ckc: ckc$pack $ICCi_3,$CRj_int */
14195 SEM_FN_NAME (frvbf
,ckc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
14197 #define FLD(f) abuf->fields.sfmt_cckeq.f
14198 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
14199 int UNUSED written
= 0;
14200 IADDR UNUSED pc
= abuf
->addr
;
14201 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
14203 if (TRUNCQIBI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_3
)]), 1))) {
14206 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
14207 written
|= (1 << 1);
14208 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14213 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
14214 written
|= (1 << 1);
14215 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14219 abuf
->written
= written
;
14224 /* cknc: cknc$pack $ICCi_3,$CRj_int */
14227 SEM_FN_NAME (frvbf
,cknc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
14229 #define FLD(f) abuf->fields.sfmt_cckeq.f
14230 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
14231 int UNUSED written
= 0;
14232 IADDR UNUSED pc
= abuf
->addr
;
14233 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
14235 if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_3
)]), 1)))) {
14238 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
14239 written
|= (1 << 1);
14240 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14245 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
14246 written
|= (1 << 1);
14247 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14251 abuf
->written
= written
;
14256 /* ckn: ckn$pack $ICCi_3,$CRj_int */
14259 SEM_FN_NAME (frvbf
,ckn
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
14261 #define FLD(f) abuf->fields.sfmt_cckeq.f
14262 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
14263 int UNUSED written
= 0;
14264 IADDR UNUSED pc
= abuf
->addr
;
14265 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
14267 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_3
)]), 8), 3))) {
14270 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
14271 written
|= (1 << 1);
14272 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14277 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
14278 written
|= (1 << 1);
14279 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14283 abuf
->written
= written
;
14288 /* ckp: ckp$pack $ICCi_3,$CRj_int */
14291 SEM_FN_NAME (frvbf
,ckp
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
14293 #define FLD(f) abuf->fields.sfmt_cckeq.f
14294 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
14295 int UNUSED written
= 0;
14296 IADDR UNUSED pc
= abuf
->addr
;
14297 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
14299 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_3
)]), 8), 3)))) {
14302 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
14303 written
|= (1 << 1);
14304 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14309 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
14310 written
|= (1 << 1);
14311 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14315 abuf
->written
= written
;
14320 /* ckv: ckv$pack $ICCi_3,$CRj_int */
14323 SEM_FN_NAME (frvbf
,ckv
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
14325 #define FLD(f) abuf->fields.sfmt_cckeq.f
14326 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
14327 int UNUSED written
= 0;
14328 IADDR UNUSED pc
= abuf
->addr
;
14329 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
14331 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_3
)]), 2), 1))) {
14334 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
14335 written
|= (1 << 1);
14336 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14341 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
14342 written
|= (1 << 1);
14343 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14347 abuf
->written
= written
;
14352 /* cknv: cknv$pack $ICCi_3,$CRj_int */
14355 SEM_FN_NAME (frvbf
,cknv
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
14357 #define FLD(f) abuf->fields.sfmt_cckeq.f
14358 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
14359 int UNUSED written
= 0;
14360 IADDR UNUSED pc
= abuf
->addr
;
14361 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
14363 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_3
)]), 2), 1)))) {
14366 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
14367 written
|= (1 << 1);
14368 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14373 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
14374 written
|= (1 << 1);
14375 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14379 abuf
->written
= written
;
14384 /* fckra: fckra$pack $CRj_float */
14387 SEM_FN_NAME (frvbf
,fckra
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
14389 #define FLD(f) abuf->fields.sfmt_cfckne.f
14390 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
14391 int UNUSED written
= 0;
14392 IADDR UNUSED pc
= abuf
->addr
;
14393 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
14397 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
14398 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14405 /* fckno: fckno$pack $CRj_float */
14408 SEM_FN_NAME (frvbf
,fckno
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
14410 #define FLD(f) abuf->fields.sfmt_cfckne.f
14411 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
14412 int UNUSED written
= 0;
14413 IADDR UNUSED pc
= abuf
->addr
;
14414 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
14418 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
14419 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14426 /* fckne: fckne$pack $FCCi_3,$CRj_float */
14429 SEM_FN_NAME (frvbf
,fckne
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
14431 #define FLD(f) abuf->fields.sfmt_cfckne.f
14432 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
14433 int UNUSED written
= 0;
14434 IADDR UNUSED pc
= abuf
->addr
;
14435 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
14437 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 4), 2)), ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 1))))) {
14440 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
14441 written
|= (1 << 1);
14442 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14447 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
14448 written
|= (1 << 1);
14449 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14453 abuf
->written
= written
;
14458 /* fckeq: fckeq$pack $FCCi_3,$CRj_float */
14461 SEM_FN_NAME (frvbf
,fckeq
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
14463 #define FLD(f) abuf->fields.sfmt_cfckne.f
14464 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
14465 int UNUSED written
= 0;
14466 IADDR UNUSED pc
= abuf
->addr
;
14467 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
14469 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 8), 3))) {
14472 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
14473 written
|= (1 << 1);
14474 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14479 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
14480 written
|= (1 << 1);
14481 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14485 abuf
->written
= written
;
14490 /* fcklg: fcklg$pack $FCCi_3,$CRj_float */
14493 SEM_FN_NAME (frvbf
,fcklg
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
14495 #define FLD(f) abuf->fields.sfmt_cfckne.f
14496 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
14497 int UNUSED written
= 0;
14498 IADDR UNUSED pc
= abuf
->addr
;
14499 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
14501 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 4), 2)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 2), 1)))) {
14504 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
14505 written
|= (1 << 1);
14506 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14511 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
14512 written
|= (1 << 1);
14513 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14517 abuf
->written
= written
;
14522 /* fckue: fckue$pack $FCCi_3,$CRj_float */
14525 SEM_FN_NAME (frvbf
,fckue
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
14527 #define FLD(f) abuf->fields.sfmt_cfckne.f
14528 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
14529 int UNUSED written
= 0;
14530 IADDR UNUSED pc
= abuf
->addr
;
14531 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
14533 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 1)))) {
14536 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
14537 written
|= (1 << 1);
14538 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14543 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
14544 written
|= (1 << 1);
14545 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14549 abuf
->written
= written
;
14554 /* fckul: fckul$pack $FCCi_3,$CRj_float */
14557 SEM_FN_NAME (frvbf
,fckul
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
14559 #define FLD(f) abuf->fields.sfmt_cfckne.f
14560 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
14561 int UNUSED written
= 0;
14562 IADDR UNUSED pc
= abuf
->addr
;
14563 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
14565 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 1)))) {
14568 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
14569 written
|= (1 << 1);
14570 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14575 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
14576 written
|= (1 << 1);
14577 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14581 abuf
->written
= written
;
14586 /* fckge: fckge$pack $FCCi_3,$CRj_float */
14589 SEM_FN_NAME (frvbf
,fckge
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
14591 #define FLD(f) abuf->fields.sfmt_cfckne.f
14592 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
14593 int UNUSED written
= 0;
14594 IADDR UNUSED pc
= abuf
->addr
;
14595 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
14597 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 2), 1)))) {
14600 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
14601 written
|= (1 << 1);
14602 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14607 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
14608 written
|= (1 << 1);
14609 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14613 abuf
->written
= written
;
14618 /* fcklt: fcklt$pack $FCCi_3,$CRj_float */
14621 SEM_FN_NAME (frvbf
,fcklt
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
14623 #define FLD(f) abuf->fields.sfmt_cfckne.f
14624 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
14625 int UNUSED written
= 0;
14626 IADDR UNUSED pc
= abuf
->addr
;
14627 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
14629 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 4), 2))) {
14632 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
14633 written
|= (1 << 1);
14634 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14639 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
14640 written
|= (1 << 1);
14641 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14645 abuf
->written
= written
;
14650 /* fckuge: fckuge$pack $FCCi_3,$CRj_float */
14653 SEM_FN_NAME (frvbf
,fckuge
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
14655 #define FLD(f) abuf->fields.sfmt_cfckne.f
14656 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
14657 int UNUSED written
= 0;
14658 IADDR UNUSED pc
= abuf
->addr
;
14659 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
14661 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 8), 3)), ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 1))))) {
14664 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
14665 written
|= (1 << 1);
14666 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14671 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
14672 written
|= (1 << 1);
14673 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14677 abuf
->written
= written
;
14682 /* fckug: fckug$pack $FCCi_3,$CRj_float */
14685 SEM_FN_NAME (frvbf
,fckug
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
14687 #define FLD(f) abuf->fields.sfmt_cfckne.f
14688 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
14689 int UNUSED written
= 0;
14690 IADDR UNUSED pc
= abuf
->addr
;
14691 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
14693 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 1)))) {
14696 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
14697 written
|= (1 << 1);
14698 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14703 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
14704 written
|= (1 << 1);
14705 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14709 abuf
->written
= written
;
14714 /* fckle: fckle$pack $FCCi_3,$CRj_float */
14717 SEM_FN_NAME (frvbf
,fckle
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
14719 #define FLD(f) abuf->fields.sfmt_cfckne.f
14720 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
14721 int UNUSED written
= 0;
14722 IADDR UNUSED pc
= abuf
->addr
;
14723 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
14725 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 4), 2)))) {
14728 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
14729 written
|= (1 << 1);
14730 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14735 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
14736 written
|= (1 << 1);
14737 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14741 abuf
->written
= written
;
14746 /* fckgt: fckgt$pack $FCCi_3,$CRj_float */
14749 SEM_FN_NAME (frvbf
,fckgt
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
14751 #define FLD(f) abuf->fields.sfmt_cfckne.f
14752 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
14753 int UNUSED written
= 0;
14754 IADDR UNUSED pc
= abuf
->addr
;
14755 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
14757 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 2), 1))) {
14760 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
14761 written
|= (1 << 1);
14762 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14767 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
14768 written
|= (1 << 1);
14769 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14773 abuf
->written
= written
;
14778 /* fckule: fckule$pack $FCCi_3,$CRj_float */
14781 SEM_FN_NAME (frvbf
,fckule
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
14783 #define FLD(f) abuf->fields.sfmt_cfckne.f
14784 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
14785 int UNUSED written
= 0;
14786 IADDR UNUSED pc
= abuf
->addr
;
14787 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
14789 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 8), 3)), ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 1))))) {
14792 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
14793 written
|= (1 << 1);
14794 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14799 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
14800 written
|= (1 << 1);
14801 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14805 abuf
->written
= written
;
14810 /* fcku: fcku$pack $FCCi_3,$CRj_float */
14813 SEM_FN_NAME (frvbf
,fcku
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
14815 #define FLD(f) abuf->fields.sfmt_cfckne.f
14816 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
14817 int UNUSED written
= 0;
14818 IADDR UNUSED pc
= abuf
->addr
;
14819 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
14821 if (TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 1))) {
14824 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
14825 written
|= (1 << 1);
14826 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14831 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
14832 written
|= (1 << 1);
14833 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14837 abuf
->written
= written
;
14842 /* fcko: fcko$pack $FCCi_3,$CRj_float */
14845 SEM_FN_NAME (frvbf
,fcko
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
14847 #define FLD(f) abuf->fields.sfmt_cfckne.f
14848 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
14849 int UNUSED written
= 0;
14850 IADDR UNUSED pc
= abuf
->addr
;
14851 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
14853 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 8), 3)), ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 4), 2)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 2), 1))))) {
14856 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
14857 written
|= (1 << 1);
14858 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14863 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
14864 written
|= (1 << 1);
14865 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14869 abuf
->written
= written
;
14874 /* cckra: cckra$pack $CRj_int,$CCi,$cond */
14877 SEM_FN_NAME (frvbf
,cckra
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
14879 #define FLD(f) abuf->fields.sfmt_cckeq.f
14880 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
14881 int UNUSED written
= 0;
14882 IADDR UNUSED pc
= abuf
->addr
;
14883 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
14885 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
14888 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
14889 written
|= (1 << 2);
14890 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14895 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
14896 written
|= (1 << 2);
14897 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14901 abuf
->written
= written
;
14906 /* cckno: cckno$pack $CRj_int,$CCi,$cond */
14909 SEM_FN_NAME (frvbf
,cckno
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
14911 #define FLD(f) abuf->fields.sfmt_cckeq.f
14912 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
14913 int UNUSED written
= 0;
14914 IADDR UNUSED pc
= abuf
->addr
;
14915 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
14917 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
14920 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
14921 written
|= (1 << 2);
14922 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14927 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
14928 written
|= (1 << 2);
14929 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14933 abuf
->written
= written
;
14938 /* cckeq: cckeq$pack $ICCi_3,$CRj_int,$CCi,$cond */
14941 SEM_FN_NAME (frvbf
,cckeq
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
14943 #define FLD(f) abuf->fields.sfmt_cckeq.f
14944 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
14945 int UNUSED written
= 0;
14946 IADDR UNUSED pc
= abuf
->addr
;
14947 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
14949 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
14950 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_3
)]), 4), 2))) {
14953 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
14954 written
|= (1 << 3);
14955 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14960 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
14961 written
|= (1 << 3);
14962 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14968 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
14969 written
|= (1 << 3);
14970 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14974 abuf
->written
= written
;
14979 /* cckne: cckne$pack $ICCi_3,$CRj_int,$CCi,$cond */
14982 SEM_FN_NAME (frvbf
,cckne
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
14984 #define FLD(f) abuf->fields.sfmt_cckeq.f
14985 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
14986 int UNUSED written
= 0;
14987 IADDR UNUSED pc
= abuf
->addr
;
14988 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
14990 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
14991 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_3
)]), 4), 2)))) {
14994 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
14995 written
|= (1 << 3);
14996 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15001 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
15002 written
|= (1 << 3);
15003 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15009 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
15010 written
|= (1 << 3);
15011 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15015 abuf
->written
= written
;
15020 /* cckle: cckle$pack $ICCi_3,$CRj_int,$CCi,$cond */
15023 SEM_FN_NAME (frvbf
,cckle
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
15025 #define FLD(f) abuf->fields.sfmt_cckeq.f
15026 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
15027 int UNUSED written
= 0;
15028 IADDR UNUSED pc
= abuf
->addr
;
15029 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
15031 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
15032 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_3
)]), 4), 2)), XORBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_3
)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_3
)]), 2), 1))))) {
15035 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
15036 written
|= (1 << 3);
15037 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15042 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
15043 written
|= (1 << 3);
15044 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15050 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
15051 written
|= (1 << 3);
15052 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15056 abuf
->written
= written
;
15061 /* cckgt: cckgt$pack $ICCi_3,$CRj_int,$CCi,$cond */
15064 SEM_FN_NAME (frvbf
,cckgt
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
15066 #define FLD(f) abuf->fields.sfmt_cckeq.f
15067 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
15068 int UNUSED written
= 0;
15069 IADDR UNUSED pc
= abuf
->addr
;
15070 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
15072 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
15073 if (NOTBI (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_3
)]), 4), 2)), XORBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_3
)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_3
)]), 2), 1)))))) {
15076 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
15077 written
|= (1 << 3);
15078 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15083 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
15084 written
|= (1 << 3);
15085 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15091 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
15092 written
|= (1 << 3);
15093 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15097 abuf
->written
= written
;
15102 /* ccklt: ccklt$pack $ICCi_3,$CRj_int,$CCi,$cond */
15105 SEM_FN_NAME (frvbf
,ccklt
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
15107 #define FLD(f) abuf->fields.sfmt_cckeq.f
15108 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
15109 int UNUSED written
= 0;
15110 IADDR UNUSED pc
= abuf
->addr
;
15111 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
15113 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
15114 if (XORBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_3
)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_3
)]), 2), 1)))) {
15117 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
15118 written
|= (1 << 3);
15119 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15124 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
15125 written
|= (1 << 3);
15126 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15132 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
15133 written
|= (1 << 3);
15134 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15138 abuf
->written
= written
;
15143 /* cckge: cckge$pack $ICCi_3,$CRj_int,$CCi,$cond */
15146 SEM_FN_NAME (frvbf
,cckge
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
15148 #define FLD(f) abuf->fields.sfmt_cckeq.f
15149 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
15150 int UNUSED written
= 0;
15151 IADDR UNUSED pc
= abuf
->addr
;
15152 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
15154 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
15155 if (NOTBI (XORBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_3
)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_3
)]), 2), 1))))) {
15158 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
15159 written
|= (1 << 3);
15160 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15165 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
15166 written
|= (1 << 3);
15167 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15173 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
15174 written
|= (1 << 3);
15175 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15179 abuf
->written
= written
;
15184 /* cckls: cckls$pack $ICCi_3,$CRj_int,$CCi,$cond */
15187 SEM_FN_NAME (frvbf
,cckls
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
15189 #define FLD(f) abuf->fields.sfmt_cckeq.f
15190 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
15191 int UNUSED written
= 0;
15192 IADDR UNUSED pc
= abuf
->addr
;
15193 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
15195 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
15196 if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_3
)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_3
)]), 4), 2)))) {
15199 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
15200 written
|= (1 << 3);
15201 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15206 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
15207 written
|= (1 << 3);
15208 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15214 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
15215 written
|= (1 << 3);
15216 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15220 abuf
->written
= written
;
15225 /* cckhi: cckhi$pack $ICCi_3,$CRj_int,$CCi,$cond */
15228 SEM_FN_NAME (frvbf
,cckhi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
15230 #define FLD(f) abuf->fields.sfmt_cckeq.f
15231 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
15232 int UNUSED written
= 0;
15233 IADDR UNUSED pc
= abuf
->addr
;
15234 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
15236 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
15237 if (NOTBI (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_3
)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_3
)]), 4), 2))))) {
15240 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
15241 written
|= (1 << 3);
15242 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15247 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
15248 written
|= (1 << 3);
15249 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15255 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
15256 written
|= (1 << 3);
15257 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15261 abuf
->written
= written
;
15266 /* cckc: cckc$pack $ICCi_3,$CRj_int,$CCi,$cond */
15269 SEM_FN_NAME (frvbf
,cckc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
15271 #define FLD(f) abuf->fields.sfmt_cckeq.f
15272 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
15273 int UNUSED written
= 0;
15274 IADDR UNUSED pc
= abuf
->addr
;
15275 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
15277 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
15278 if (TRUNCQIBI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_3
)]), 1))) {
15281 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
15282 written
|= (1 << 3);
15283 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15288 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
15289 written
|= (1 << 3);
15290 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15296 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
15297 written
|= (1 << 3);
15298 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15302 abuf
->written
= written
;
15307 /* ccknc: ccknc$pack $ICCi_3,$CRj_int,$CCi,$cond */
15310 SEM_FN_NAME (frvbf
,ccknc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
15312 #define FLD(f) abuf->fields.sfmt_cckeq.f
15313 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
15314 int UNUSED written
= 0;
15315 IADDR UNUSED pc
= abuf
->addr
;
15316 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
15318 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
15319 if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_3
)]), 1)))) {
15322 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
15323 written
|= (1 << 3);
15324 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15329 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
15330 written
|= (1 << 3);
15331 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15337 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
15338 written
|= (1 << 3);
15339 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15343 abuf
->written
= written
;
15348 /* cckn: cckn$pack $ICCi_3,$CRj_int,$CCi,$cond */
15351 SEM_FN_NAME (frvbf
,cckn
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
15353 #define FLD(f) abuf->fields.sfmt_cckeq.f
15354 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
15355 int UNUSED written
= 0;
15356 IADDR UNUSED pc
= abuf
->addr
;
15357 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
15359 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
15360 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_3
)]), 8), 3))) {
15363 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
15364 written
|= (1 << 3);
15365 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15370 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
15371 written
|= (1 << 3);
15372 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15378 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
15379 written
|= (1 << 3);
15380 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15384 abuf
->written
= written
;
15389 /* cckp: cckp$pack $ICCi_3,$CRj_int,$CCi,$cond */
15392 SEM_FN_NAME (frvbf
,cckp
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
15394 #define FLD(f) abuf->fields.sfmt_cckeq.f
15395 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
15396 int UNUSED written
= 0;
15397 IADDR UNUSED pc
= abuf
->addr
;
15398 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
15400 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
15401 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_3
)]), 8), 3)))) {
15404 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
15405 written
|= (1 << 3);
15406 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15411 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
15412 written
|= (1 << 3);
15413 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15419 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
15420 written
|= (1 << 3);
15421 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15425 abuf
->written
= written
;
15430 /* cckv: cckv$pack $ICCi_3,$CRj_int,$CCi,$cond */
15433 SEM_FN_NAME (frvbf
,cckv
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
15435 #define FLD(f) abuf->fields.sfmt_cckeq.f
15436 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
15437 int UNUSED written
= 0;
15438 IADDR UNUSED pc
= abuf
->addr
;
15439 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
15441 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
15442 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_3
)]), 2), 1))) {
15445 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
15446 written
|= (1 << 3);
15447 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15452 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
15453 written
|= (1 << 3);
15454 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15460 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
15461 written
|= (1 << 3);
15462 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15466 abuf
->written
= written
;
15471 /* ccknv: ccknv$pack $ICCi_3,$CRj_int,$CCi,$cond */
15474 SEM_FN_NAME (frvbf
,ccknv
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
15476 #define FLD(f) abuf->fields.sfmt_cckeq.f
15477 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
15478 int UNUSED written
= 0;
15479 IADDR UNUSED pc
= abuf
->addr
;
15480 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
15482 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
15483 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_3
)]), 2), 1)))) {
15486 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
15487 written
|= (1 << 3);
15488 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15493 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
15494 written
|= (1 << 3);
15495 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15501 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
15502 written
|= (1 << 3);
15503 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15507 abuf
->written
= written
;
15512 /* cfckra: cfckra$pack $CRj_float,$CCi,$cond */
15515 SEM_FN_NAME (frvbf
,cfckra
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
15517 #define FLD(f) abuf->fields.sfmt_cfckne.f
15518 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
15519 int UNUSED written
= 0;
15520 IADDR UNUSED pc
= abuf
->addr
;
15521 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
15523 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
15526 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
15527 written
|= (1 << 2);
15528 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15533 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
15534 written
|= (1 << 2);
15535 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15539 abuf
->written
= written
;
15544 /* cfckno: cfckno$pack $CRj_float,$CCi,$cond */
15547 SEM_FN_NAME (frvbf
,cfckno
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
15549 #define FLD(f) abuf->fields.sfmt_cfckne.f
15550 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
15551 int UNUSED written
= 0;
15552 IADDR UNUSED pc
= abuf
->addr
;
15553 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
15555 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
15558 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
15559 written
|= (1 << 2);
15560 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15565 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
15566 written
|= (1 << 2);
15567 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15571 abuf
->written
= written
;
15576 /* cfckne: cfckne$pack $FCCi_3,$CRj_float,$CCi,$cond */
15579 SEM_FN_NAME (frvbf
,cfckne
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
15581 #define FLD(f) abuf->fields.sfmt_cfckne.f
15582 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
15583 int UNUSED written
= 0;
15584 IADDR UNUSED pc
= abuf
->addr
;
15585 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
15587 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
15588 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 4), 2)), ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 1))))) {
15591 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
15592 written
|= (1 << 3);
15593 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15598 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
15599 written
|= (1 << 3);
15600 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15606 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
15607 written
|= (1 << 3);
15608 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15612 abuf
->written
= written
;
15617 /* cfckeq: cfckeq$pack $FCCi_3,$CRj_float,$CCi,$cond */
15620 SEM_FN_NAME (frvbf
,cfckeq
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
15622 #define FLD(f) abuf->fields.sfmt_cfckne.f
15623 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
15624 int UNUSED written
= 0;
15625 IADDR UNUSED pc
= abuf
->addr
;
15626 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
15628 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
15629 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 8), 3))) {
15632 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
15633 written
|= (1 << 3);
15634 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15639 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
15640 written
|= (1 << 3);
15641 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15647 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
15648 written
|= (1 << 3);
15649 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15653 abuf
->written
= written
;
15658 /* cfcklg: cfcklg$pack $FCCi_3,$CRj_float,$CCi,$cond */
15661 SEM_FN_NAME (frvbf
,cfcklg
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
15663 #define FLD(f) abuf->fields.sfmt_cfckne.f
15664 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
15665 int UNUSED written
= 0;
15666 IADDR UNUSED pc
= abuf
->addr
;
15667 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
15669 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
15670 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 4), 2)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 2), 1)))) {
15673 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
15674 written
|= (1 << 3);
15675 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15680 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
15681 written
|= (1 << 3);
15682 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15688 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
15689 written
|= (1 << 3);
15690 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15694 abuf
->written
= written
;
15699 /* cfckue: cfckue$pack $FCCi_3,$CRj_float,$CCi,$cond */
15702 SEM_FN_NAME (frvbf
,cfckue
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
15704 #define FLD(f) abuf->fields.sfmt_cfckne.f
15705 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
15706 int UNUSED written
= 0;
15707 IADDR UNUSED pc
= abuf
->addr
;
15708 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
15710 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
15711 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 1)))) {
15714 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
15715 written
|= (1 << 3);
15716 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15721 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
15722 written
|= (1 << 3);
15723 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15729 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
15730 written
|= (1 << 3);
15731 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15735 abuf
->written
= written
;
15740 /* cfckul: cfckul$pack $FCCi_3,$CRj_float,$CCi,$cond */
15743 SEM_FN_NAME (frvbf
,cfckul
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
15745 #define FLD(f) abuf->fields.sfmt_cfckne.f
15746 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
15747 int UNUSED written
= 0;
15748 IADDR UNUSED pc
= abuf
->addr
;
15749 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
15751 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
15752 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 1)))) {
15755 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
15756 written
|= (1 << 3);
15757 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15762 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
15763 written
|= (1 << 3);
15764 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15770 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
15771 written
|= (1 << 3);
15772 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15776 abuf
->written
= written
;
15781 /* cfckge: cfckge$pack $FCCi_3,$CRj_float,$CCi,$cond */
15784 SEM_FN_NAME (frvbf
,cfckge
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
15786 #define FLD(f) abuf->fields.sfmt_cfckne.f
15787 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
15788 int UNUSED written
= 0;
15789 IADDR UNUSED pc
= abuf
->addr
;
15790 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
15792 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
15793 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 2), 1)))) {
15796 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
15797 written
|= (1 << 3);
15798 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15803 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
15804 written
|= (1 << 3);
15805 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15811 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
15812 written
|= (1 << 3);
15813 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15817 abuf
->written
= written
;
15822 /* cfcklt: cfcklt$pack $FCCi_3,$CRj_float,$CCi,$cond */
15825 SEM_FN_NAME (frvbf
,cfcklt
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
15827 #define FLD(f) abuf->fields.sfmt_cfckne.f
15828 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
15829 int UNUSED written
= 0;
15830 IADDR UNUSED pc
= abuf
->addr
;
15831 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
15833 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
15834 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 4), 2))) {
15837 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
15838 written
|= (1 << 3);
15839 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15844 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
15845 written
|= (1 << 3);
15846 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15852 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
15853 written
|= (1 << 3);
15854 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15858 abuf
->written
= written
;
15863 /* cfckuge: cfckuge$pack $FCCi_3,$CRj_float,$CCi,$cond */
15866 SEM_FN_NAME (frvbf
,cfckuge
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
15868 #define FLD(f) abuf->fields.sfmt_cfckne.f
15869 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
15870 int UNUSED written
= 0;
15871 IADDR UNUSED pc
= abuf
->addr
;
15872 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
15874 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
15875 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 8), 3)), ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 1))))) {
15878 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
15879 written
|= (1 << 3);
15880 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15885 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
15886 written
|= (1 << 3);
15887 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15893 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
15894 written
|= (1 << 3);
15895 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15899 abuf
->written
= written
;
15904 /* cfckug: cfckug$pack $FCCi_3,$CRj_float,$CCi,$cond */
15907 SEM_FN_NAME (frvbf
,cfckug
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
15909 #define FLD(f) abuf->fields.sfmt_cfckne.f
15910 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
15911 int UNUSED written
= 0;
15912 IADDR UNUSED pc
= abuf
->addr
;
15913 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
15915 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
15916 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 1)))) {
15919 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
15920 written
|= (1 << 3);
15921 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15926 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
15927 written
|= (1 << 3);
15928 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15934 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
15935 written
|= (1 << 3);
15936 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15940 abuf
->written
= written
;
15945 /* cfckle: cfckle$pack $FCCi_3,$CRj_float,$CCi,$cond */
15948 SEM_FN_NAME (frvbf
,cfckle
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
15950 #define FLD(f) abuf->fields.sfmt_cfckne.f
15951 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
15952 int UNUSED written
= 0;
15953 IADDR UNUSED pc
= abuf
->addr
;
15954 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
15956 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
15957 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 4), 2)))) {
15960 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
15961 written
|= (1 << 3);
15962 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15967 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
15968 written
|= (1 << 3);
15969 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15975 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
15976 written
|= (1 << 3);
15977 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15981 abuf
->written
= written
;
15986 /* cfckgt: cfckgt$pack $FCCi_3,$CRj_float,$CCi,$cond */
15989 SEM_FN_NAME (frvbf
,cfckgt
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
15991 #define FLD(f) abuf->fields.sfmt_cfckne.f
15992 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
15993 int UNUSED written
= 0;
15994 IADDR UNUSED pc
= abuf
->addr
;
15995 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
15997 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
15998 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 2), 1))) {
16001 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
16002 written
|= (1 << 3);
16003 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
16008 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
16009 written
|= (1 << 3);
16010 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
16016 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
16017 written
|= (1 << 3);
16018 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
16022 abuf
->written
= written
;
16027 /* cfckule: cfckule$pack $FCCi_3,$CRj_float,$CCi,$cond */
16030 SEM_FN_NAME (frvbf
,cfckule
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16032 #define FLD(f) abuf->fields.sfmt_cfckne.f
16033 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16034 int UNUSED written
= 0;
16035 IADDR UNUSED pc
= abuf
->addr
;
16036 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16038 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
16039 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 8), 3)), ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 1))))) {
16042 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
16043 written
|= (1 << 3);
16044 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
16049 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
16050 written
|= (1 << 3);
16051 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
16057 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
16058 written
|= (1 << 3);
16059 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
16063 abuf
->written
= written
;
16068 /* cfcku: cfcku$pack $FCCi_3,$CRj_float,$CCi,$cond */
16071 SEM_FN_NAME (frvbf
,cfcku
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16073 #define FLD(f) abuf->fields.sfmt_cfckne.f
16074 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16075 int UNUSED written
= 0;
16076 IADDR UNUSED pc
= abuf
->addr
;
16077 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16079 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
16080 if (TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 1))) {
16083 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
16084 written
|= (1 << 3);
16085 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
16090 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
16091 written
|= (1 << 3);
16092 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
16098 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
16099 written
|= (1 << 3);
16100 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
16104 abuf
->written
= written
;
16109 /* cfcko: cfcko$pack $FCCi_3,$CRj_float,$CCi,$cond */
16112 SEM_FN_NAME (frvbf
,cfcko
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16114 #define FLD(f) abuf->fields.sfmt_cfckne.f
16115 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16116 int UNUSED written
= 0;
16117 IADDR UNUSED pc
= abuf
->addr
;
16118 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16120 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
16121 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 8), 3)), ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 4), 2)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 2), 1))))) {
16124 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
16125 written
|= (1 << 3);
16126 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
16131 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
16132 written
|= (1 << 3);
16133 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
16139 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
16140 written
|= (1 << 3);
16141 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
16145 abuf
->written
= written
;
16150 /* cjmpl: cjmpl$pack @($GRi,$GRj),$CCi,$cond */
16153 SEM_FN_NAME (frvbf
,cjmpl
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16155 #define FLD(f) abuf->fields.sfmt_cjmpl.f
16156 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16157 int UNUSED written
= 0;
16158 IADDR UNUSED pc
= abuf
->addr
;
16159 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16161 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
16163 if (EQSI (FLD (f_LI
), 1)) {
16164 frvbf_set_write_next_vliw_addr_to_LR (current_cpu
, 1);
16167 USI opval
= ANDSI (ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))), 0xfffffffc);
16168 sim_queue_pc_write (current_cpu
, opval
);
16169 written
|= (1 << 6);
16170 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
16172 frvbf_model_branch (current_cpu
, pc
, 2);
16176 abuf
->written
= written
;
16181 /* ccalll: ccalll$pack @($GRi,$GRj),$CCi,$cond */
16184 SEM_FN_NAME (frvbf
,ccalll
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16186 #define FLD(f) abuf->fields.sfmt_cjmpl.f
16187 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16188 int UNUSED written
= 0;
16189 IADDR UNUSED pc
= abuf
->addr
;
16190 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16192 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
16194 if (EQSI (FLD (f_LI
), 1)) {
16195 frvbf_set_write_next_vliw_addr_to_LR (current_cpu
, 1);
16198 USI opval
= ANDSI (ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))), 0xfffffffc);
16199 sim_queue_pc_write (current_cpu
, opval
);
16200 written
|= (1 << 6);
16201 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
16203 frvbf_model_branch (current_cpu
, pc
, 2);
16207 abuf
->written
= written
;
16212 /* ici: ici$pack @($GRi,$GRj) */
16215 SEM_FN_NAME (frvbf
,ici
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16217 #define FLD(f) abuf->fields.sfmt_icpl.f
16218 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16219 int UNUSED written
= 0;
16220 IADDR UNUSED pc
= abuf
->addr
;
16221 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16223 frvbf_insn_cache_invalidate (current_cpu
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))), 0);
16229 /* dci: dci$pack @($GRi,$GRj) */
16232 SEM_FN_NAME (frvbf
,dci
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16234 #define FLD(f) abuf->fields.sfmt_icpl.f
16235 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16236 int UNUSED written
= 0;
16237 IADDR UNUSED pc
= abuf
->addr
;
16238 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16240 frvbf_data_cache_invalidate (current_cpu
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))), 0);
16246 /* icei: icei$pack @($GRi,$GRj),$ae */
16249 SEM_FN_NAME (frvbf
,icei
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16251 #define FLD(f) abuf->fields.sfmt_icei.f
16252 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16253 int UNUSED written
= 0;
16254 IADDR UNUSED pc
= abuf
->addr
;
16255 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16257 if (EQSI (FLD (f_ae
), 0)) {
16258 frvbf_insn_cache_invalidate (current_cpu
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))), -1);
16260 frvbf_insn_cache_invalidate (current_cpu
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))), FLD (f_ae
));
16267 /* dcei: dcei$pack @($GRi,$GRj),$ae */
16270 SEM_FN_NAME (frvbf
,dcei
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16272 #define FLD(f) abuf->fields.sfmt_icei.f
16273 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16274 int UNUSED written
= 0;
16275 IADDR UNUSED pc
= abuf
->addr
;
16276 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16278 if (EQSI (FLD (f_ae
), 0)) {
16279 frvbf_data_cache_invalidate (current_cpu
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))), -1);
16281 frvbf_data_cache_invalidate (current_cpu
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))), FLD (f_ae
));
16288 /* dcf: dcf$pack @($GRi,$GRj) */
16291 SEM_FN_NAME (frvbf
,dcf
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16293 #define FLD(f) abuf->fields.sfmt_icpl.f
16294 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16295 int UNUSED written
= 0;
16296 IADDR UNUSED pc
= abuf
->addr
;
16297 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16299 frvbf_data_cache_flush (current_cpu
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))), 0);
16305 /* dcef: dcef$pack @($GRi,$GRj),$ae */
16308 SEM_FN_NAME (frvbf
,dcef
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16310 #define FLD(f) abuf->fields.sfmt_icei.f
16311 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16312 int UNUSED written
= 0;
16313 IADDR UNUSED pc
= abuf
->addr
;
16314 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16316 if (EQSI (FLD (f_ae
), 0)) {
16317 frvbf_data_cache_flush (current_cpu
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))), -1);
16319 frvbf_data_cache_flush (current_cpu
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))), FLD (f_ae
));
16326 /* witlb: witlb$pack $GRk,@($GRi,$GRj) */
16329 SEM_FN_NAME (frvbf
,witlb
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16331 #define FLD(f) abuf->fields.fmt_empty.f
16332 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16333 int UNUSED written
= 0;
16334 IADDR UNUSED pc
= abuf
->addr
;
16335 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16337 ((void) 0); /*nop*/
16343 /* wdtlb: wdtlb$pack $GRk,@($GRi,$GRj) */
16346 SEM_FN_NAME (frvbf
,wdtlb
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16348 #define FLD(f) abuf->fields.fmt_empty.f
16349 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16350 int UNUSED written
= 0;
16351 IADDR UNUSED pc
= abuf
->addr
;
16352 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16354 ((void) 0); /*nop*/
16360 /* itlbi: itlbi$pack @($GRi,$GRj) */
16363 SEM_FN_NAME (frvbf
,itlbi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16365 #define FLD(f) abuf->fields.fmt_empty.f
16366 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16367 int UNUSED written
= 0;
16368 IADDR UNUSED pc
= abuf
->addr
;
16369 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16371 ((void) 0); /*nop*/
16377 /* dtlbi: dtlbi$pack @($GRi,$GRj) */
16380 SEM_FN_NAME (frvbf
,dtlbi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16382 #define FLD(f) abuf->fields.fmt_empty.f
16383 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16384 int UNUSED written
= 0;
16385 IADDR UNUSED pc
= abuf
->addr
;
16386 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16388 ((void) 0); /*nop*/
16394 /* icpl: icpl$pack $GRi,$GRj,$lock */
16397 SEM_FN_NAME (frvbf
,icpl
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16399 #define FLD(f) abuf->fields.sfmt_icpl.f
16400 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16401 int UNUSED written
= 0;
16402 IADDR UNUSED pc
= abuf
->addr
;
16403 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16405 frvbf_insn_cache_preload (current_cpu
, GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)), FLD (f_lock
));
16411 /* dcpl: dcpl$pack $GRi,$GRj,$lock */
16414 SEM_FN_NAME (frvbf
,dcpl
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16416 #define FLD(f) abuf->fields.sfmt_icpl.f
16417 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16418 int UNUSED written
= 0;
16419 IADDR UNUSED pc
= abuf
->addr
;
16420 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16422 frvbf_data_cache_preload (current_cpu
, GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)), FLD (f_lock
));
16428 /* icul: icul$pack $GRi */
16431 SEM_FN_NAME (frvbf
,icul
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16433 #define FLD(f) abuf->fields.sfmt_jmpil.f
16434 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16435 int UNUSED written
= 0;
16436 IADDR UNUSED pc
= abuf
->addr
;
16437 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16439 frvbf_insn_cache_unlock (current_cpu
, GET_H_GR (FLD (f_GRi
)));
16445 /* dcul: dcul$pack $GRi */
16448 SEM_FN_NAME (frvbf
,dcul
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16450 #define FLD(f) abuf->fields.sfmt_jmpil.f
16451 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16452 int UNUSED written
= 0;
16453 IADDR UNUSED pc
= abuf
->addr
;
16454 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16456 frvbf_data_cache_unlock (current_cpu
, GET_H_GR (FLD (f_GRi
)));
16462 /* bar: bar$pack */
16465 SEM_FN_NAME (frvbf
,bar
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16467 #define FLD(f) abuf->fields.fmt_empty.f
16468 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16469 int UNUSED written
= 0;
16470 IADDR UNUSED pc
= abuf
->addr
;
16471 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16473 ((void) 0); /*nop*/
16479 /* membar: membar$pack */
16482 SEM_FN_NAME (frvbf
,membar
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16484 #define FLD(f) abuf->fields.fmt_empty.f
16485 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16486 int UNUSED written
= 0;
16487 IADDR UNUSED pc
= abuf
->addr
;
16488 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16490 ((void) 0); /*nop*/
16496 /* cop1: cop1$pack $s6_1,$CPRi,$CPRj,$CPRk */
16499 SEM_FN_NAME (frvbf
,cop1
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16501 #define FLD(f) abuf->fields.fmt_empty.f
16502 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16503 int UNUSED written
= 0;
16504 IADDR UNUSED pc
= abuf
->addr
;
16505 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16507 ((void) 0); /*nop*/
16513 /* cop2: cop2$pack $s6_1,$CPRi,$CPRj,$CPRk */
16516 SEM_FN_NAME (frvbf
,cop2
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16518 #define FLD(f) abuf->fields.fmt_empty.f
16519 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16520 int UNUSED written
= 0;
16521 IADDR UNUSED pc
= abuf
->addr
;
16522 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16524 ((void) 0); /*nop*/
16530 /* clrgr: clrgr$pack $GRk */
16533 SEM_FN_NAME (frvbf
,clrgr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16535 #define FLD(f) abuf->fields.sfmt_setlos.f
16536 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16537 int UNUSED written
= 0;
16538 IADDR UNUSED pc
= abuf
->addr
;
16539 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16541 frvbf_clear_ne_flags (current_cpu
, FLD (f_GRk
), 0);
16547 /* clrfr: clrfr$pack $FRk */
16550 SEM_FN_NAME (frvbf
,clrfr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16552 #define FLD(f) abuf->fields.sfmt_mhsethis.f
16553 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16554 int UNUSED written
= 0;
16555 IADDR UNUSED pc
= abuf
->addr
;
16556 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16558 frvbf_clear_ne_flags (current_cpu
, FLD (f_FRk
), 1);
16564 /* clrga: clrga$pack */
16567 SEM_FN_NAME (frvbf
,clrga
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16569 #define FLD(f) abuf->fields.fmt_empty.f
16570 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16571 int UNUSED written
= 0;
16572 IADDR UNUSED pc
= abuf
->addr
;
16573 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16575 frvbf_clear_ne_flags (current_cpu
, -1, 0);
16581 /* clrfa: clrfa$pack */
16584 SEM_FN_NAME (frvbf
,clrfa
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16586 #define FLD(f) abuf->fields.fmt_empty.f
16587 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16588 int UNUSED written
= 0;
16589 IADDR UNUSED pc
= abuf
->addr
;
16590 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16592 frvbf_clear_ne_flags (current_cpu
, -1, 1);
16598 /* commitgr: commitgr$pack $GRk */
16601 SEM_FN_NAME (frvbf
,commitgr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16603 #define FLD(f) abuf->fields.sfmt_setlos.f
16604 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16605 int UNUSED written
= 0;
16606 IADDR UNUSED pc
= abuf
->addr
;
16607 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16609 frvbf_commit (current_cpu
, FLD (f_GRk
), 0);
16615 /* commitfr: commitfr$pack $FRk */
16618 SEM_FN_NAME (frvbf
,commitfr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16620 #define FLD(f) abuf->fields.sfmt_mhsethis.f
16621 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16622 int UNUSED written
= 0;
16623 IADDR UNUSED pc
= abuf
->addr
;
16624 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16626 frvbf_commit (current_cpu
, FLD (f_FRk
), 1);
16632 /* commitga: commitga$pack */
16635 SEM_FN_NAME (frvbf
,commitga
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16637 #define FLD(f) abuf->fields.fmt_empty.f
16638 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16639 int UNUSED written
= 0;
16640 IADDR UNUSED pc
= abuf
->addr
;
16641 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16643 frvbf_commit (current_cpu
, -1, 0);
16649 /* commitfa: commitfa$pack */
16652 SEM_FN_NAME (frvbf
,commitfa
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16654 #define FLD(f) abuf->fields.fmt_empty.f
16655 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16656 int UNUSED written
= 0;
16657 IADDR UNUSED pc
= abuf
->addr
;
16658 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16660 frvbf_commit (current_cpu
, -1, 1);
16666 /* fitos: fitos$pack $FRintj,$FRk */
16669 SEM_FN_NAME (frvbf
,fitos
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16671 #define FLD(f) abuf->fields.sfmt_fditos.f
16672 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16673 int UNUSED written
= 0;
16674 IADDR UNUSED pc
= abuf
->addr
;
16675 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16678 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->floatsisf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR_INT (FLD (f_FRj
)));
16679 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
16680 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
16687 /* fstoi: fstoi$pack $FRj,$FRintk */
16690 SEM_FN_NAME (frvbf
,fstoi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16692 #define FLD(f) abuf->fields.sfmt_fdstoi.f
16693 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16694 int UNUSED written
= 0;
16695 IADDR UNUSED pc
= abuf
->addr
;
16696 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16699 SI opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->fixsfsi
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRj
)));
16700 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
16701 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
16708 /* fitod: fitod$pack $FRintj,$FRdoublek */
16711 SEM_FN_NAME (frvbf
,fitod
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16713 #define FLD(f) abuf->fields.sfmt_fitod.f
16714 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16715 int UNUSED written
= 0;
16716 IADDR UNUSED pc
= abuf
->addr
;
16717 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16720 DF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->floatsidf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR_INT (FLD (f_FRj
)));
16721 sim_queue_fn_df_write (current_cpu
, frvbf_h_fr_double_set
, FLD (f_FRk
), opval
);
16722 TRACE_RESULT (current_cpu
, abuf
, "fr_double", 'f', opval
);
16729 /* fdtoi: fdtoi$pack $FRdoublej,$FRintk */
16732 SEM_FN_NAME (frvbf
,fdtoi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16734 #define FLD(f) abuf->fields.sfmt_fdtoi.f
16735 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16736 int UNUSED written
= 0;
16737 IADDR UNUSED pc
= abuf
->addr
;
16738 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16741 SI opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->fixdfsi
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR_DOUBLE (FLD (f_FRj
)));
16742 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
16743 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
16750 /* fditos: fditos$pack $FRintj,$FRk */
16753 SEM_FN_NAME (frvbf
,fditos
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16755 #define FLD(f) abuf->fields.sfmt_fditos.f
16756 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16757 int UNUSED written
= 0;
16758 IADDR UNUSED pc
= abuf
->addr
;
16759 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16763 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->floatsisf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR_INT (FLD (f_FRj
)));
16764 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
16765 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
16768 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->floatsisf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR_INT (((FLD (f_FRj
)) + (1))));
16769 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, ((FLD (f_FRk
)) + (1)), opval
);
16770 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
16778 /* fdstoi: fdstoi$pack $FRj,$FRintk */
16781 SEM_FN_NAME (frvbf
,fdstoi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16783 #define FLD(f) abuf->fields.sfmt_fdstoi.f
16784 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16785 int UNUSED written
= 0;
16786 IADDR UNUSED pc
= abuf
->addr
;
16787 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16791 SI opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->fixsfsi
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRj
)));
16792 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
16793 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
16796 USI opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->fixsfsi
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (((FLD (f_FRj
)) + (1))));
16797 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, ((FLD (f_FRk
)) + (1)), opval
);
16798 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
16806 /* nfditos: nfditos$pack $FRintj,$FRk */
16809 SEM_FN_NAME (frvbf
,nfditos
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16811 #define FLD(f) abuf->fields.sfmt_fditos.f
16812 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16813 int UNUSED written
= 0;
16814 IADDR UNUSED pc
= abuf
->addr
;
16815 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16818 frvbf_set_ne_index (current_cpu
, FLD (f_FRk
));
16820 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->floatsisf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR_INT (FLD (f_FRj
)));
16821 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
16822 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
16824 frvbf_set_ne_index (current_cpu
, ADDSI (FLD (f_FRk
), 1));
16826 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->floatsisf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR_INT (((FLD (f_FRj
)) + (1))));
16827 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, ((FLD (f_FRk
)) + (1)), opval
);
16828 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
16836 /* nfdstoi: nfdstoi$pack $FRj,$FRintk */
16839 SEM_FN_NAME (frvbf
,nfdstoi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16841 #define FLD(f) abuf->fields.sfmt_fdstoi.f
16842 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16843 int UNUSED written
= 0;
16844 IADDR UNUSED pc
= abuf
->addr
;
16845 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16848 frvbf_set_ne_index (current_cpu
, FLD (f_FRk
));
16850 SI opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->fixsfsi
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRj
)));
16851 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
16852 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
16854 frvbf_set_ne_index (current_cpu
, ADDSI (FLD (f_FRk
), 1));
16856 USI opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->fixsfsi
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (((FLD (f_FRj
)) + (1))));
16857 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, ((FLD (f_FRk
)) + (1)), opval
);
16858 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
16866 /* cfitos: cfitos$pack $FRintj,$FRk,$CCi,$cond */
16869 SEM_FN_NAME (frvbf
,cfitos
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16871 #define FLD(f) abuf->fields.sfmt_cfitos.f
16872 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16873 int UNUSED written
= 0;
16874 IADDR UNUSED pc
= abuf
->addr
;
16875 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16877 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
16879 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->floatsisf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR_INT (FLD (f_FRj
)));
16880 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
16881 written
|= (1 << 3);
16882 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
16886 abuf
->written
= written
;
16891 /* cfstoi: cfstoi$pack $FRj,$FRintk,$CCi,$cond */
16894 SEM_FN_NAME (frvbf
,cfstoi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16896 #define FLD(f) abuf->fields.sfmt_cfstoi.f
16897 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16898 int UNUSED written
= 0;
16899 IADDR UNUSED pc
= abuf
->addr
;
16900 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16902 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
16904 SI opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->fixsfsi
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRj
)));
16905 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
16906 written
|= (1 << 3);
16907 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
16911 abuf
->written
= written
;
16916 /* nfitos: nfitos$pack $FRintj,$FRk */
16919 SEM_FN_NAME (frvbf
,nfitos
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16921 #define FLD(f) abuf->fields.sfmt_fditos.f
16922 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16923 int UNUSED written
= 0;
16924 IADDR UNUSED pc
= abuf
->addr
;
16925 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16928 frvbf_set_ne_index (current_cpu
, FLD (f_FRk
));
16930 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->floatsisf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR_INT (FLD (f_FRj
)));
16931 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
16932 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
16940 /* nfstoi: nfstoi$pack $FRj,$FRintk */
16943 SEM_FN_NAME (frvbf
,nfstoi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16945 #define FLD(f) abuf->fields.sfmt_fdstoi.f
16946 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16947 int UNUSED written
= 0;
16948 IADDR UNUSED pc
= abuf
->addr
;
16949 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16952 frvbf_set_ne_index (current_cpu
, FLD (f_FRk
));
16954 SI opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->fixsfsi
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRj
)));
16955 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
16956 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
16964 /* fmovs: fmovs$pack $FRj,$FRk */
16967 SEM_FN_NAME (frvbf
,fmovs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16969 #define FLD(f) abuf->fields.sfmt_cfmadds.f
16970 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16971 int UNUSED written
= 0;
16972 IADDR UNUSED pc
= abuf
->addr
;
16973 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16976 SF opval
= GET_H_FR (FLD (f_FRj
));
16977 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
16978 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
16985 /* fmovd: fmovd$pack $FRdoublej,$FRdoublek */
16988 SEM_FN_NAME (frvbf
,fmovd
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16990 #define FLD(f) abuf->fields.sfmt_fmaddd.f
16991 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16992 int UNUSED written
= 0;
16993 IADDR UNUSED pc
= abuf
->addr
;
16994 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16997 DF opval
= GET_H_FR_DOUBLE (FLD (f_FRj
));
16998 sim_queue_fn_df_write (current_cpu
, frvbf_h_fr_double_set
, FLD (f_FRk
), opval
);
16999 TRACE_RESULT (current_cpu
, abuf
, "fr_double", 'f', opval
);
17006 /* fdmovs: fdmovs$pack $FRj,$FRk */
17009 SEM_FN_NAME (frvbf
,fdmovs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
17011 #define FLD(f) abuf->fields.sfmt_fdmadds.f
17012 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
17013 int UNUSED written
= 0;
17014 IADDR UNUSED pc
= abuf
->addr
;
17015 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
17019 SF opval
= GET_H_FR (FLD (f_FRj
));
17020 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
17021 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
17024 SF opval
= GET_H_FR (((FLD (f_FRj
)) + (1)));
17025 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, ((FLD (f_FRk
)) + (1)), opval
);
17026 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
17034 /* cfmovs: cfmovs$pack $FRj,$FRk,$CCi,$cond */
17037 SEM_FN_NAME (frvbf
,cfmovs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
17039 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17040 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
17041 int UNUSED written
= 0;
17042 IADDR UNUSED pc
= abuf
->addr
;
17043 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
17045 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
17047 SF opval
= GET_H_FR (FLD (f_FRj
));
17048 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
17049 written
|= (1 << 3);
17050 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
17054 abuf
->written
= written
;
17059 /* fnegs: fnegs$pack $FRj,$FRk */
17062 SEM_FN_NAME (frvbf
,fnegs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
17064 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17065 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
17066 int UNUSED written
= 0;
17067 IADDR UNUSED pc
= abuf
->addr
;
17068 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
17071 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->negsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRj
)));
17072 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
17073 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
17080 /* fnegd: fnegd$pack $FRdoublej,$FRdoublek */
17083 SEM_FN_NAME (frvbf
,fnegd
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
17085 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17086 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
17087 int UNUSED written
= 0;
17088 IADDR UNUSED pc
= abuf
->addr
;
17089 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
17092 DF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->negdf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR_DOUBLE (FLD (f_FRj
)));
17093 sim_queue_fn_df_write (current_cpu
, frvbf_h_fr_double_set
, FLD (f_FRk
), opval
);
17094 TRACE_RESULT (current_cpu
, abuf
, "fr_double", 'f', opval
);
17101 /* fdnegs: fdnegs$pack $FRj,$FRk */
17104 SEM_FN_NAME (frvbf
,fdnegs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
17106 #define FLD(f) abuf->fields.sfmt_fdmadds.f
17107 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
17108 int UNUSED written
= 0;
17109 IADDR UNUSED pc
= abuf
->addr
;
17110 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
17114 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->negsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRj
)));
17115 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
17116 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
17119 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->negsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (((FLD (f_FRj
)) + (1))));
17120 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, ((FLD (f_FRk
)) + (1)), opval
);
17121 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
17129 /* cfnegs: cfnegs$pack $FRj,$FRk,$CCi,$cond */
17132 SEM_FN_NAME (frvbf
,cfnegs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
17134 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17135 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
17136 int UNUSED written
= 0;
17137 IADDR UNUSED pc
= abuf
->addr
;
17138 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
17140 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
17142 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->negsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRj
)));
17143 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
17144 written
|= (1 << 3);
17145 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
17149 abuf
->written
= written
;
17154 /* fabss: fabss$pack $FRj,$FRk */
17157 SEM_FN_NAME (frvbf
,fabss
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
17159 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17160 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
17161 int UNUSED written
= 0;
17162 IADDR UNUSED pc
= abuf
->addr
;
17163 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
17166 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->abssf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRj
)));
17167 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
17168 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
17175 /* fabsd: fabsd$pack $FRdoublej,$FRdoublek */
17178 SEM_FN_NAME (frvbf
,fabsd
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
17180 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17181 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
17182 int UNUSED written
= 0;
17183 IADDR UNUSED pc
= abuf
->addr
;
17184 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
17187 DF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->absdf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR_DOUBLE (FLD (f_FRj
)));
17188 sim_queue_fn_df_write (current_cpu
, frvbf_h_fr_double_set
, FLD (f_FRk
), opval
);
17189 TRACE_RESULT (current_cpu
, abuf
, "fr_double", 'f', opval
);
17196 /* fdabss: fdabss$pack $FRj,$FRk */
17199 SEM_FN_NAME (frvbf
,fdabss
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
17201 #define FLD(f) abuf->fields.sfmt_fdmadds.f
17202 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
17203 int UNUSED written
= 0;
17204 IADDR UNUSED pc
= abuf
->addr
;
17205 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
17209 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->abssf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRj
)));
17210 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
17211 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
17214 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->abssf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (((FLD (f_FRj
)) + (1))));
17215 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, ((FLD (f_FRk
)) + (1)), opval
);
17216 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
17224 /* cfabss: cfabss$pack $FRj,$FRk,$CCi,$cond */
17227 SEM_FN_NAME (frvbf
,cfabss
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
17229 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17230 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
17231 int UNUSED written
= 0;
17232 IADDR UNUSED pc
= abuf
->addr
;
17233 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
17235 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
17237 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->abssf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRj
)));
17238 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
17239 written
|= (1 << 3);
17240 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
17244 abuf
->written
= written
;
17249 /* fsqrts: fsqrts$pack $FRj,$FRk */
17252 SEM_FN_NAME (frvbf
,fsqrts
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
17254 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17255 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
17256 int UNUSED written
= 0;
17257 IADDR UNUSED pc
= abuf
->addr
;
17258 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
17261 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->sqrtsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRj
)));
17262 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
17263 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
17270 /* fdsqrts: fdsqrts$pack $FRj,$FRk */
17273 SEM_FN_NAME (frvbf
,fdsqrts
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
17275 #define FLD(f) abuf->fields.sfmt_fdmadds.f
17276 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
17277 int UNUSED written
= 0;
17278 IADDR UNUSED pc
= abuf
->addr
;
17279 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
17283 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->sqrtsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRj
)));
17284 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
17285 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
17288 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->sqrtsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (((FLD (f_FRj
)) + (1))));
17289 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, ((FLD (f_FRk
)) + (1)), opval
);
17290 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
17298 /* nfdsqrts: nfdsqrts$pack $FRj,$FRk */
17301 SEM_FN_NAME (frvbf
,nfdsqrts
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
17303 #define FLD(f) abuf->fields.sfmt_fdmadds.f
17304 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
17305 int UNUSED written
= 0;
17306 IADDR UNUSED pc
= abuf
->addr
;
17307 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
17310 frvbf_set_ne_index (current_cpu
, FLD (f_FRk
));
17312 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->sqrtsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRj
)));
17313 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
17314 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
17316 frvbf_set_ne_index (current_cpu
, ADDSI (FLD (f_FRk
), 1));
17318 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->sqrtsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (((FLD (f_FRj
)) + (1))));
17319 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, ((FLD (f_FRk
)) + (1)), opval
);
17320 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
17328 /* fsqrtd: fsqrtd$pack $FRdoublej,$FRdoublek */
17331 SEM_FN_NAME (frvbf
,fsqrtd
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
17333 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17334 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
17335 int UNUSED written
= 0;
17336 IADDR UNUSED pc
= abuf
->addr
;
17337 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
17340 DF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->sqrtdf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR_DOUBLE (FLD (f_FRj
)));
17341 sim_queue_fn_df_write (current_cpu
, frvbf_h_fr_double_set
, FLD (f_FRk
), opval
);
17342 TRACE_RESULT (current_cpu
, abuf
, "fr_double", 'f', opval
);
17349 /* cfsqrts: cfsqrts$pack $FRj,$FRk,$CCi,$cond */
17352 SEM_FN_NAME (frvbf
,cfsqrts
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
17354 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17355 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
17356 int UNUSED written
= 0;
17357 IADDR UNUSED pc
= abuf
->addr
;
17358 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
17360 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
17362 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->sqrtsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRj
)));
17363 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
17364 written
|= (1 << 3);
17365 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
17369 abuf
->written
= written
;
17374 /* nfsqrts: nfsqrts$pack $FRj,$FRk */
17377 SEM_FN_NAME (frvbf
,nfsqrts
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
17379 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17380 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
17381 int UNUSED written
= 0;
17382 IADDR UNUSED pc
= abuf
->addr
;
17383 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
17386 frvbf_set_ne_index (current_cpu
, FLD (f_FRk
));
17388 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->sqrtsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRj
)));
17389 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
17390 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
17398 /* fadds: fadds$pack $FRi,$FRj,$FRk */
17401 SEM_FN_NAME (frvbf
,fadds
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
17403 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17404 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
17405 int UNUSED written
= 0;
17406 IADDR UNUSED pc
= abuf
->addr
;
17407 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
17410 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->addsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRi
)), GET_H_FR (FLD (f_FRj
)));
17411 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
17412 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
17419 /* fsubs: fsubs$pack $FRi,$FRj,$FRk */
17422 SEM_FN_NAME (frvbf
,fsubs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
17424 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17425 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
17426 int UNUSED written
= 0;
17427 IADDR UNUSED pc
= abuf
->addr
;
17428 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
17431 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->subsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRi
)), GET_H_FR (FLD (f_FRj
)));
17432 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
17433 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
17440 /* fmuls: fmuls$pack $FRi,$FRj,$FRk */
17443 SEM_FN_NAME (frvbf
,fmuls
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
17445 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17446 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
17447 int UNUSED written
= 0;
17448 IADDR UNUSED pc
= abuf
->addr
;
17449 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
17452 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->mulsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRi
)), GET_H_FR (FLD (f_FRj
)));
17453 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
17454 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
17461 /* fdivs: fdivs$pack $FRi,$FRj,$FRk */
17464 SEM_FN_NAME (frvbf
,fdivs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
17466 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17467 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
17468 int UNUSED written
= 0;
17469 IADDR UNUSED pc
= abuf
->addr
;
17470 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
17473 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->divsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRi
)), GET_H_FR (FLD (f_FRj
)));
17474 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
17475 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
17482 /* faddd: faddd$pack $FRdoublei,$FRdoublej,$FRdoublek */
17485 SEM_FN_NAME (frvbf
,faddd
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
17487 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17488 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
17489 int UNUSED written
= 0;
17490 IADDR UNUSED pc
= abuf
->addr
;
17491 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
17494 DF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->adddf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR_DOUBLE (FLD (f_FRi
)), GET_H_FR_DOUBLE (FLD (f_FRj
)));
17495 sim_queue_fn_df_write (current_cpu
, frvbf_h_fr_double_set
, FLD (f_FRk
), opval
);
17496 TRACE_RESULT (current_cpu
, abuf
, "fr_double", 'f', opval
);
17503 /* fsubd: fsubd$pack $FRdoublei,$FRdoublej,$FRdoublek */
17506 SEM_FN_NAME (frvbf
,fsubd
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
17508 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17509 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
17510 int UNUSED written
= 0;
17511 IADDR UNUSED pc
= abuf
->addr
;
17512 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
17515 DF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->subdf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR_DOUBLE (FLD (f_FRi
)), GET_H_FR_DOUBLE (FLD (f_FRj
)));
17516 sim_queue_fn_df_write (current_cpu
, frvbf_h_fr_double_set
, FLD (f_FRk
), opval
);
17517 TRACE_RESULT (current_cpu
, abuf
, "fr_double", 'f', opval
);
17524 /* fmuld: fmuld$pack $FRdoublei,$FRdoublej,$FRdoublek */
17527 SEM_FN_NAME (frvbf
,fmuld
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
17529 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17530 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
17531 int UNUSED written
= 0;
17532 IADDR UNUSED pc
= abuf
->addr
;
17533 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
17536 DF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->muldf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR_DOUBLE (FLD (f_FRi
)), GET_H_FR_DOUBLE (FLD (f_FRj
)));
17537 sim_queue_fn_df_write (current_cpu
, frvbf_h_fr_double_set
, FLD (f_FRk
), opval
);
17538 TRACE_RESULT (current_cpu
, abuf
, "fr_double", 'f', opval
);
17545 /* fdivd: fdivd$pack $FRdoublei,$FRdoublej,$FRdoublek */
17548 SEM_FN_NAME (frvbf
,fdivd
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
17550 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17551 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
17552 int UNUSED written
= 0;
17553 IADDR UNUSED pc
= abuf
->addr
;
17554 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
17557 DF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->divdf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR_DOUBLE (FLD (f_FRi
)), GET_H_FR_DOUBLE (FLD (f_FRj
)));
17558 sim_queue_fn_df_write (current_cpu
, frvbf_h_fr_double_set
, FLD (f_FRk
), opval
);
17559 TRACE_RESULT (current_cpu
, abuf
, "fr_double", 'f', opval
);
17566 /* cfadds: cfadds$pack $FRi,$FRj,$FRk,$CCi,$cond */
17569 SEM_FN_NAME (frvbf
,cfadds
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
17571 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17572 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
17573 int UNUSED written
= 0;
17574 IADDR UNUSED pc
= abuf
->addr
;
17575 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
17577 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
17579 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->addsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRi
)), GET_H_FR (FLD (f_FRj
)));
17580 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
17581 written
|= (1 << 4);
17582 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
17586 abuf
->written
= written
;
17591 /* cfsubs: cfsubs$pack $FRi,$FRj,$FRk,$CCi,$cond */
17594 SEM_FN_NAME (frvbf
,cfsubs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
17596 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17597 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
17598 int UNUSED written
= 0;
17599 IADDR UNUSED pc
= abuf
->addr
;
17600 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
17602 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
17604 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->subsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRi
)), GET_H_FR (FLD (f_FRj
)));
17605 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
17606 written
|= (1 << 4);
17607 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
17611 abuf
->written
= written
;
17616 /* cfmuls: cfmuls$pack $FRi,$FRj,$FRk,$CCi,$cond */
17619 SEM_FN_NAME (frvbf
,cfmuls
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
17621 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17622 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
17623 int UNUSED written
= 0;
17624 IADDR UNUSED pc
= abuf
->addr
;
17625 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
17627 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
17629 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->mulsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRi
)), GET_H_FR (FLD (f_FRj
)));
17630 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
17631 written
|= (1 << 4);
17632 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
17636 abuf
->written
= written
;
17641 /* cfdivs: cfdivs$pack $FRi,$FRj,$FRk,$CCi,$cond */
17644 SEM_FN_NAME (frvbf
,cfdivs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
17646 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17647 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
17648 int UNUSED written
= 0;
17649 IADDR UNUSED pc
= abuf
->addr
;
17650 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
17652 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
17654 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->divsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRi
)), GET_H_FR (FLD (f_FRj
)));
17655 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
17656 written
|= (1 << 4);
17657 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
17661 abuf
->written
= written
;
17666 /* nfadds: nfadds$pack $FRi,$FRj,$FRk */
17669 SEM_FN_NAME (frvbf
,nfadds
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
17671 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17672 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
17673 int UNUSED written
= 0;
17674 IADDR UNUSED pc
= abuf
->addr
;
17675 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
17678 frvbf_set_ne_index (current_cpu
, FLD (f_FRk
));
17680 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->addsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRi
)), GET_H_FR (FLD (f_FRj
)));
17681 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
17682 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
17690 /* nfsubs: nfsubs$pack $FRi,$FRj,$FRk */
17693 SEM_FN_NAME (frvbf
,nfsubs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
17695 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17696 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
17697 int UNUSED written
= 0;
17698 IADDR UNUSED pc
= abuf
->addr
;
17699 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
17702 frvbf_set_ne_index (current_cpu
, FLD (f_FRk
));
17704 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->subsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRi
)), GET_H_FR (FLD (f_FRj
)));
17705 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
17706 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
17714 /* nfmuls: nfmuls$pack $FRi,$FRj,$FRk */
17717 SEM_FN_NAME (frvbf
,nfmuls
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
17719 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17720 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
17721 int UNUSED written
= 0;
17722 IADDR UNUSED pc
= abuf
->addr
;
17723 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
17726 frvbf_set_ne_index (current_cpu
, FLD (f_FRk
));
17728 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->mulsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRi
)), GET_H_FR (FLD (f_FRj
)));
17729 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
17730 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
17738 /* nfdivs: nfdivs$pack $FRi,$FRj,$FRk */
17741 SEM_FN_NAME (frvbf
,nfdivs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
17743 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17744 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
17745 int UNUSED written
= 0;
17746 IADDR UNUSED pc
= abuf
->addr
;
17747 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
17750 frvbf_set_ne_index (current_cpu
, FLD (f_FRk
));
17752 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->divsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRi
)), GET_H_FR (FLD (f_FRj
)));
17753 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
17754 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
17762 /* fcmps: fcmps$pack $FRi,$FRj,$FCCi_2 */
17765 SEM_FN_NAME (frvbf
,fcmps
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
17767 #define FLD(f) abuf->fields.sfmt_cfcmps.f
17768 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
17769 int UNUSED written
= 0;
17770 IADDR UNUSED pc
= abuf
->addr
;
17771 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
17773 if ((* CGEN_CPU_FPU (current_cpu
)->ops
->gtsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRi
)), GET_H_FR (FLD (f_FRj
)))) {
17776 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[FLD (f_FCCi_2
)]), opval
);
17777 written
|= (1 << 2);
17778 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
17781 if ((* CGEN_CPU_FPU (current_cpu
)->ops
->eqsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRi
)), GET_H_FR (FLD (f_FRj
)))) {
17784 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[FLD (f_FCCi_2
)]), opval
);
17785 written
|= (1 << 2);
17786 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
17789 if ((* CGEN_CPU_FPU (current_cpu
)->ops
->ltsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRi
)), GET_H_FR (FLD (f_FRj
)))) {
17792 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[FLD (f_FCCi_2
)]), opval
);
17793 written
|= (1 << 2);
17794 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
17799 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[FLD (f_FCCi_2
)]), opval
);
17800 written
|= (1 << 2);
17801 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
17807 abuf
->written
= written
;
17812 /* fcmpd: fcmpd$pack $FRdoublei,$FRdoublej,$FCCi_2 */
17815 SEM_FN_NAME (frvbf
,fcmpd
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
17817 #define FLD(f) abuf->fields.sfmt_fcmpd.f
17818 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
17819 int UNUSED written
= 0;
17820 IADDR UNUSED pc
= abuf
->addr
;
17821 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
17823 if ((* CGEN_CPU_FPU (current_cpu
)->ops
->gtdf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR_DOUBLE (FLD (f_FRi
)), GET_H_FR_DOUBLE (FLD (f_FRj
)))) {
17826 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[FLD (f_FCCi_2
)]), opval
);
17827 written
|= (1 << 2);
17828 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
17831 if ((* CGEN_CPU_FPU (current_cpu
)->ops
->eqdf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR_DOUBLE (FLD (f_FRi
)), GET_H_FR_DOUBLE (FLD (f_FRj
)))) {
17834 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[FLD (f_FCCi_2
)]), opval
);
17835 written
|= (1 << 2);
17836 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
17839 if ((* CGEN_CPU_FPU (current_cpu
)->ops
->ltdf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR_DOUBLE (FLD (f_FRi
)), GET_H_FR_DOUBLE (FLD (f_FRj
)))) {
17842 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[FLD (f_FCCi_2
)]), opval
);
17843 written
|= (1 << 2);
17844 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
17849 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[FLD (f_FCCi_2
)]), opval
);
17850 written
|= (1 << 2);
17851 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
17857 abuf
->written
= written
;
17862 /* cfcmps: cfcmps$pack $FRi,$FRj,$FCCi_2,$CCi,$cond */
17865 SEM_FN_NAME (frvbf
,cfcmps
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
17867 #define FLD(f) abuf->fields.sfmt_cfcmps.f
17868 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
17869 int UNUSED written
= 0;
17870 IADDR UNUSED pc
= abuf
->addr
;
17871 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
17873 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
17874 if ((* CGEN_CPU_FPU (current_cpu
)->ops
->gtsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRi
)), GET_H_FR (FLD (f_FRj
)))) {
17877 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[FLD (f_FCCi_2
)]), opval
);
17878 written
|= (1 << 4);
17879 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
17882 if ((* CGEN_CPU_FPU (current_cpu
)->ops
->eqsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRi
)), GET_H_FR (FLD (f_FRj
)))) {
17885 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[FLD (f_FCCi_2
)]), opval
);
17886 written
|= (1 << 4);
17887 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
17890 if ((* CGEN_CPU_FPU (current_cpu
)->ops
->ltsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRi
)), GET_H_FR (FLD (f_FRj
)))) {
17893 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[FLD (f_FCCi_2
)]), opval
);
17894 written
|= (1 << 4);
17895 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
17900 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[FLD (f_FCCi_2
)]), opval
);
17901 written
|= (1 << 4);
17902 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
17909 abuf
->written
= written
;
17914 /* fdcmps: fdcmps$pack $FRi,$FRj,$FCCi_2 */
17917 SEM_FN_NAME (frvbf
,fdcmps
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
17919 #define FLD(f) abuf->fields.sfmt_nfdcmps.f
17920 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
17921 int UNUSED written
= 0;
17922 IADDR UNUSED pc
= abuf
->addr
;
17923 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
17926 if ((* CGEN_CPU_FPU (current_cpu
)->ops
->gtsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRi
)), GET_H_FR (FLD (f_FRj
)))) {
17929 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[FLD (f_FCCi_2
)]), opval
);
17930 written
|= (1 << 7);
17931 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
17934 if ((* CGEN_CPU_FPU (current_cpu
)->ops
->eqsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRi
)), GET_H_FR (FLD (f_FRj
)))) {
17937 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[FLD (f_FCCi_2
)]), opval
);
17938 written
|= (1 << 7);
17939 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
17942 if ((* CGEN_CPU_FPU (current_cpu
)->ops
->ltsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRi
)), GET_H_FR (FLD (f_FRj
)))) {
17945 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[FLD (f_FCCi_2
)]), opval
);
17946 written
|= (1 << 7);
17947 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
17952 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[FLD (f_FCCi_2
)]), opval
);
17953 written
|= (1 << 7);
17954 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
17959 if ((* CGEN_CPU_FPU (current_cpu
)->ops
->gtsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (((FLD (f_FRi
)) + (1))), GET_H_FR (((FLD (f_FRj
)) + (1))))) {
17962 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[((FLD (f_FCCi_2
)) + (1))]), opval
);
17963 written
|= (1 << 8);
17964 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
17967 if ((* CGEN_CPU_FPU (current_cpu
)->ops
->eqsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (((FLD (f_FRi
)) + (1))), GET_H_FR (((FLD (f_FRj
)) + (1))))) {
17970 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[((FLD (f_FCCi_2
)) + (1))]), opval
);
17971 written
|= (1 << 8);
17972 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
17975 if ((* CGEN_CPU_FPU (current_cpu
)->ops
->ltsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (((FLD (f_FRi
)) + (1))), GET_H_FR (((FLD (f_FRj
)) + (1))))) {
17978 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[((FLD (f_FCCi_2
)) + (1))]), opval
);
17979 written
|= (1 << 8);
17980 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
17985 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[((FLD (f_FCCi_2
)) + (1))]), opval
);
17986 written
|= (1 << 8);
17987 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
17994 abuf
->written
= written
;
17999 /* fmadds: fmadds$pack $FRi,$FRj,$FRk */
18002 SEM_FN_NAME (frvbf
,fmadds
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
18004 #define FLD(f) abuf->fields.sfmt_cfmadds.f
18005 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
18006 int UNUSED written
= 0;
18007 IADDR UNUSED pc
= abuf
->addr
;
18008 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
18011 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->addsf
) (CGEN_CPU_FPU (current_cpu
), (* CGEN_CPU_FPU (current_cpu
)->ops
->mulsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRi
)), GET_H_FR (FLD (f_FRj
))), GET_H_FR (FLD (f_FRk
)));
18012 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
18013 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18020 /* fmsubs: fmsubs$pack $FRi,$FRj,$FRk */
18023 SEM_FN_NAME (frvbf
,fmsubs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
18025 #define FLD(f) abuf->fields.sfmt_cfmadds.f
18026 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
18027 int UNUSED written
= 0;
18028 IADDR UNUSED pc
= abuf
->addr
;
18029 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
18032 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->subsf
) (CGEN_CPU_FPU (current_cpu
), (* CGEN_CPU_FPU (current_cpu
)->ops
->mulsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRi
)), GET_H_FR (FLD (f_FRj
))), GET_H_FR (FLD (f_FRk
)));
18033 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
18034 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18041 /* fmaddd: fmaddd$pack $FRdoublei,$FRdoublej,$FRdoublek */
18044 SEM_FN_NAME (frvbf
,fmaddd
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
18046 #define FLD(f) abuf->fields.sfmt_fmaddd.f
18047 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
18048 int UNUSED written
= 0;
18049 IADDR UNUSED pc
= abuf
->addr
;
18050 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
18053 DF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->adddf
) (CGEN_CPU_FPU (current_cpu
), (* CGEN_CPU_FPU (current_cpu
)->ops
->muldf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR_DOUBLE (FLD (f_FRi
)), GET_H_FR_DOUBLE (FLD (f_FRj
))), GET_H_FR_DOUBLE (FLD (f_FRk
)));
18054 sim_queue_fn_df_write (current_cpu
, frvbf_h_fr_double_set
, FLD (f_FRk
), opval
);
18055 TRACE_RESULT (current_cpu
, abuf
, "fr_double", 'f', opval
);
18062 /* fmsubd: fmsubd$pack $FRdoublei,$FRdoublej,$FRdoublek */
18065 SEM_FN_NAME (frvbf
,fmsubd
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
18067 #define FLD(f) abuf->fields.sfmt_fmaddd.f
18068 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
18069 int UNUSED written
= 0;
18070 IADDR UNUSED pc
= abuf
->addr
;
18071 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
18074 DF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->subdf
) (CGEN_CPU_FPU (current_cpu
), (* CGEN_CPU_FPU (current_cpu
)->ops
->muldf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR_DOUBLE (FLD (f_FRi
)), GET_H_FR_DOUBLE (FLD (f_FRj
))), GET_H_FR_DOUBLE (FLD (f_FRk
)));
18075 sim_queue_fn_df_write (current_cpu
, frvbf_h_fr_double_set
, FLD (f_FRk
), opval
);
18076 TRACE_RESULT (current_cpu
, abuf
, "fr_double", 'f', opval
);
18083 /* fdmadds: fdmadds$pack $FRi,$FRj,$FRk */
18086 SEM_FN_NAME (frvbf
,fdmadds
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
18088 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18089 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
18090 int UNUSED written
= 0;
18091 IADDR UNUSED pc
= abuf
->addr
;
18092 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
18096 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->addsf
) (CGEN_CPU_FPU (current_cpu
), (* CGEN_CPU_FPU (current_cpu
)->ops
->mulsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRi
)), GET_H_FR (FLD (f_FRj
))), GET_H_FR (FLD (f_FRk
)));
18097 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
18098 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18101 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->addsf
) (CGEN_CPU_FPU (current_cpu
), (* CGEN_CPU_FPU (current_cpu
)->ops
->mulsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (((FLD (f_FRi
)) + (1))), GET_H_FR (((FLD (f_FRj
)) + (1)))), GET_H_FR (((FLD (f_FRk
)) + (1))));
18102 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, ((FLD (f_FRk
)) + (1)), opval
);
18103 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18111 /* nfdmadds: nfdmadds$pack $FRi,$FRj,$FRk */
18114 SEM_FN_NAME (frvbf
,nfdmadds
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
18116 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18117 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
18118 int UNUSED written
= 0;
18119 IADDR UNUSED pc
= abuf
->addr
;
18120 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
18123 frvbf_set_ne_index (current_cpu
, FLD (f_FRk
));
18125 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->addsf
) (CGEN_CPU_FPU (current_cpu
), (* CGEN_CPU_FPU (current_cpu
)->ops
->mulsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRi
)), GET_H_FR (FLD (f_FRj
))), GET_H_FR (FLD (f_FRk
)));
18126 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
18127 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18129 frvbf_set_ne_index (current_cpu
, ADDSI (FLD (f_FRk
), 1));
18131 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->addsf
) (CGEN_CPU_FPU (current_cpu
), (* CGEN_CPU_FPU (current_cpu
)->ops
->mulsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (((FLD (f_FRi
)) + (1))), GET_H_FR (((FLD (f_FRj
)) + (1)))), GET_H_FR (((FLD (f_FRk
)) + (1))));
18132 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, ((FLD (f_FRk
)) + (1)), opval
);
18133 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18141 /* cfmadds: cfmadds$pack $FRi,$FRj,$FRk,$CCi,$cond */
18144 SEM_FN_NAME (frvbf
,cfmadds
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
18146 #define FLD(f) abuf->fields.sfmt_cfmadds.f
18147 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
18148 int UNUSED written
= 0;
18149 IADDR UNUSED pc
= abuf
->addr
;
18150 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
18152 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
18154 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->addsf
) (CGEN_CPU_FPU (current_cpu
), (* CGEN_CPU_FPU (current_cpu
)->ops
->mulsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRi
)), GET_H_FR (FLD (f_FRj
))), GET_H_FR (FLD (f_FRk
)));
18155 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
18156 written
|= (1 << 5);
18157 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18161 abuf
->written
= written
;
18166 /* cfmsubs: cfmsubs$pack $FRi,$FRj,$FRk,$CCi,$cond */
18169 SEM_FN_NAME (frvbf
,cfmsubs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
18171 #define FLD(f) abuf->fields.sfmt_cfmadds.f
18172 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
18173 int UNUSED written
= 0;
18174 IADDR UNUSED pc
= abuf
->addr
;
18175 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
18177 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
18179 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->subsf
) (CGEN_CPU_FPU (current_cpu
), (* CGEN_CPU_FPU (current_cpu
)->ops
->mulsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRi
)), GET_H_FR (FLD (f_FRj
))), GET_H_FR (FLD (f_FRk
)));
18180 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
18181 written
|= (1 << 5);
18182 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18186 abuf
->written
= written
;
18191 /* nfmadds: nfmadds$pack $FRi,$FRj,$FRk */
18194 SEM_FN_NAME (frvbf
,nfmadds
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
18196 #define FLD(f) abuf->fields.sfmt_cfmadds.f
18197 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
18198 int UNUSED written
= 0;
18199 IADDR UNUSED pc
= abuf
->addr
;
18200 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
18203 frvbf_set_ne_index (current_cpu
, FLD (f_FRk
));
18205 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->addsf
) (CGEN_CPU_FPU (current_cpu
), (* CGEN_CPU_FPU (current_cpu
)->ops
->mulsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRi
)), GET_H_FR (FLD (f_FRj
))), GET_H_FR (FLD (f_FRk
)));
18206 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
18207 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18215 /* nfmsubs: nfmsubs$pack $FRi,$FRj,$FRk */
18218 SEM_FN_NAME (frvbf
,nfmsubs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
18220 #define FLD(f) abuf->fields.sfmt_cfmadds.f
18221 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
18222 int UNUSED written
= 0;
18223 IADDR UNUSED pc
= abuf
->addr
;
18224 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
18227 frvbf_set_ne_index (current_cpu
, FLD (f_FRk
));
18229 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->subsf
) (CGEN_CPU_FPU (current_cpu
), (* CGEN_CPU_FPU (current_cpu
)->ops
->mulsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRi
)), GET_H_FR (FLD (f_FRj
))), GET_H_FR (FLD (f_FRk
)));
18230 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
18231 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18239 /* fmas: fmas$pack $FRi,$FRj,$FRk */
18242 SEM_FN_NAME (frvbf
,fmas
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
18244 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18245 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
18246 int UNUSED written
= 0;
18247 IADDR UNUSED pc
= abuf
->addr
;
18248 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
18252 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->mulsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRi
)), GET_H_FR (FLD (f_FRj
)));
18253 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
18254 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18257 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->addsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (((FLD (f_FRi
)) + (1))), GET_H_FR (((FLD (f_FRj
)) + (1))));
18258 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, ((FLD (f_FRk
)) + (1)), opval
);
18259 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18267 /* fmss: fmss$pack $FRi,$FRj,$FRk */
18270 SEM_FN_NAME (frvbf
,fmss
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
18272 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18273 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
18274 int UNUSED written
= 0;
18275 IADDR UNUSED pc
= abuf
->addr
;
18276 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
18280 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->mulsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRi
)), GET_H_FR (FLD (f_FRj
)));
18281 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
18282 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18285 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->subsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (((FLD (f_FRi
)) + (1))), GET_H_FR (((FLD (f_FRj
)) + (1))));
18286 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, ((FLD (f_FRk
)) + (1)), opval
);
18287 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18295 /* fdmas: fdmas$pack $FRi,$FRj,$FRk */
18298 SEM_FN_NAME (frvbf
,fdmas
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
18300 #define FLD(f) abuf->fields.sfmt_fdmas.f
18301 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
18302 int UNUSED written
= 0;
18303 IADDR UNUSED pc
= abuf
->addr
;
18304 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
18308 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->mulsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRi
)), GET_H_FR (FLD (f_FRj
)));
18309 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
18310 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18313 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->addsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (((FLD (f_FRi
)) + (1))), GET_H_FR (((FLD (f_FRj
)) + (1))));
18314 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, ((FLD (f_FRk
)) + (1)), opval
);
18315 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18318 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->mulsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (((FLD (f_FRi
)) + (2))), GET_H_FR (((FLD (f_FRj
)) + (2))));
18319 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, ((FLD (f_FRk
)) + (2)), opval
);
18320 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18323 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->addsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (((FLD (f_FRi
)) + (3))), GET_H_FR (((FLD (f_FRj
)) + (3))));
18324 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, ((FLD (f_FRk
)) + (3)), opval
);
18325 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18333 /* fdmss: fdmss$pack $FRi,$FRj,$FRk */
18336 SEM_FN_NAME (frvbf
,fdmss
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
18338 #define FLD(f) abuf->fields.sfmt_fdmas.f
18339 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
18340 int UNUSED written
= 0;
18341 IADDR UNUSED pc
= abuf
->addr
;
18342 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
18346 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->mulsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRi
)), GET_H_FR (FLD (f_FRj
)));
18347 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
18348 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18351 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->subsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (((FLD (f_FRi
)) + (1))), GET_H_FR (((FLD (f_FRj
)) + (1))));
18352 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, ((FLD (f_FRk
)) + (1)), opval
);
18353 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18356 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->mulsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (((FLD (f_FRi
)) + (2))), GET_H_FR (((FLD (f_FRj
)) + (2))));
18357 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, ((FLD (f_FRk
)) + (2)), opval
);
18358 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18361 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->subsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (((FLD (f_FRi
)) + (3))), GET_H_FR (((FLD (f_FRj
)) + (3))));
18362 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, ((FLD (f_FRk
)) + (3)), opval
);
18363 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18371 /* nfdmas: nfdmas$pack $FRi,$FRj,$FRk */
18374 SEM_FN_NAME (frvbf
,nfdmas
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
18376 #define FLD(f) abuf->fields.sfmt_fdmas.f
18377 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
18378 int UNUSED written
= 0;
18379 IADDR UNUSED pc
= abuf
->addr
;
18380 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
18383 frvbf_set_ne_index (current_cpu
, FLD (f_FRk
));
18384 frvbf_set_ne_index (current_cpu
, ADDSI (FLD (f_FRk
), 1));
18385 frvbf_set_ne_index (current_cpu
, ADDSI (FLD (f_FRk
), 2));
18386 frvbf_set_ne_index (current_cpu
, ADDSI (FLD (f_FRk
), 3));
18388 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->mulsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRi
)), GET_H_FR (FLD (f_FRj
)));
18389 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
18390 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18393 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->addsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (((FLD (f_FRi
)) + (1))), GET_H_FR (((FLD (f_FRj
)) + (1))));
18394 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, ((FLD (f_FRk
)) + (1)), opval
);
18395 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18398 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->mulsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (((FLD (f_FRi
)) + (2))), GET_H_FR (((FLD (f_FRj
)) + (2))));
18399 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, ((FLD (f_FRk
)) + (2)), opval
);
18400 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18403 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->addsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (((FLD (f_FRi
)) + (3))), GET_H_FR (((FLD (f_FRj
)) + (3))));
18404 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, ((FLD (f_FRk
)) + (3)), opval
);
18405 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18413 /* nfdmss: nfdmss$pack $FRi,$FRj,$FRk */
18416 SEM_FN_NAME (frvbf
,nfdmss
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
18418 #define FLD(f) abuf->fields.sfmt_fdmas.f
18419 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
18420 int UNUSED written
= 0;
18421 IADDR UNUSED pc
= abuf
->addr
;
18422 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
18425 frvbf_set_ne_index (current_cpu
, FLD (f_FRk
));
18426 frvbf_set_ne_index (current_cpu
, ADDSI (FLD (f_FRk
), 1));
18427 frvbf_set_ne_index (current_cpu
, ADDSI (FLD (f_FRk
), 2));
18428 frvbf_set_ne_index (current_cpu
, ADDSI (FLD (f_FRk
), 3));
18430 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->mulsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRi
)), GET_H_FR (FLD (f_FRj
)));
18431 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
18432 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18435 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->subsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (((FLD (f_FRi
)) + (1))), GET_H_FR (((FLD (f_FRj
)) + (1))));
18436 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, ((FLD (f_FRk
)) + (1)), opval
);
18437 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18440 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->mulsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (((FLD (f_FRi
)) + (2))), GET_H_FR (((FLD (f_FRj
)) + (2))));
18441 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, ((FLD (f_FRk
)) + (2)), opval
);
18442 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18445 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->subsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (((FLD (f_FRi
)) + (3))), GET_H_FR (((FLD (f_FRj
)) + (3))));
18446 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, ((FLD (f_FRk
)) + (3)), opval
);
18447 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18455 /* cfmas: cfmas$pack $FRi,$FRj,$FRk,$CCi,$cond */
18458 SEM_FN_NAME (frvbf
,cfmas
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
18460 #define FLD(f) abuf->fields.sfmt_cfmas.f
18461 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
18462 int UNUSED written
= 0;
18463 IADDR UNUSED pc
= abuf
->addr
;
18464 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
18466 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
18469 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->mulsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRi
)), GET_H_FR (FLD (f_FRj
)));
18470 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
18471 written
|= (1 << 9);
18472 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18475 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->addsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (((FLD (f_FRi
)) + (1))), GET_H_FR (((FLD (f_FRj
)) + (1))));
18476 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, ((FLD (f_FRk
)) + (1)), opval
);
18477 written
|= (1 << 10);
18478 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18483 abuf
->written
= written
;
18488 /* cfmss: cfmss$pack $FRi,$FRj,$FRk,$CCi,$cond */
18491 SEM_FN_NAME (frvbf
,cfmss
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
18493 #define FLD(f) abuf->fields.sfmt_cfmas.f
18494 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
18495 int UNUSED written
= 0;
18496 IADDR UNUSED pc
= abuf
->addr
;
18497 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
18499 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
18502 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->mulsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRi
)), GET_H_FR (FLD (f_FRj
)));
18503 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
18504 written
|= (1 << 9);
18505 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18508 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->subsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (((FLD (f_FRi
)) + (1))), GET_H_FR (((FLD (f_FRj
)) + (1))));
18509 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, ((FLD (f_FRk
)) + (1)), opval
);
18510 written
|= (1 << 10);
18511 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18516 abuf
->written
= written
;
18521 /* fmad: fmad$pack $FRi,$FRj,$FRk */
18524 SEM_FN_NAME (frvbf
,fmad
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
18526 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18527 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
18528 int UNUSED written
= 0;
18529 IADDR UNUSED pc
= abuf
->addr
;
18530 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
18534 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->ftruncdfsf
) (CGEN_CPU_FPU (current_cpu
), (* CGEN_CPU_FPU (current_cpu
)->ops
->muldf
) (CGEN_CPU_FPU (current_cpu
), (* CGEN_CPU_FPU (current_cpu
)->ops
->fextsfdf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRi
))), (* CGEN_CPU_FPU (current_cpu
)->ops
->fextsfdf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRj
)))));
18535 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
18536 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18539 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->ftruncdfsf
) (CGEN_CPU_FPU (current_cpu
), (* CGEN_CPU_FPU (current_cpu
)->ops
->adddf
) (CGEN_CPU_FPU (current_cpu
), (* CGEN_CPU_FPU (current_cpu
)->ops
->fextsfdf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (((FLD (f_FRi
)) + (1)))), (* CGEN_CPU_FPU (current_cpu
)->ops
->fextsfdf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (((FLD (f_FRj
)) + (1))))));
18540 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, ((FLD (f_FRk
)) + (1)), opval
);
18541 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18549 /* fmsd: fmsd$pack $FRi,$FRj,$FRk */
18552 SEM_FN_NAME (frvbf
,fmsd
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
18554 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18555 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
18556 int UNUSED written
= 0;
18557 IADDR UNUSED pc
= abuf
->addr
;
18558 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
18562 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->ftruncdfsf
) (CGEN_CPU_FPU (current_cpu
), (* CGEN_CPU_FPU (current_cpu
)->ops
->muldf
) (CGEN_CPU_FPU (current_cpu
), (* CGEN_CPU_FPU (current_cpu
)->ops
->fextsfdf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRi
))), (* CGEN_CPU_FPU (current_cpu
)->ops
->fextsfdf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRj
)))));
18563 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
18564 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18567 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->ftruncdfsf
) (CGEN_CPU_FPU (current_cpu
), (* CGEN_CPU_FPU (current_cpu
)->ops
->subdf
) (CGEN_CPU_FPU (current_cpu
), (* CGEN_CPU_FPU (current_cpu
)->ops
->fextsfdf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (((FLD (f_FRi
)) + (1)))), (* CGEN_CPU_FPU (current_cpu
)->ops
->fextsfdf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (((FLD (f_FRj
)) + (1))))));
18568 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, ((FLD (f_FRk
)) + (1)), opval
);
18569 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18577 /* nfmas: nfmas$pack $FRi,$FRj,$FRk */
18580 SEM_FN_NAME (frvbf
,nfmas
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
18582 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18583 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
18584 int UNUSED written
= 0;
18585 IADDR UNUSED pc
= abuf
->addr
;
18586 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
18589 frvbf_set_ne_index (current_cpu
, FLD (f_FRk
));
18591 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->mulsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRi
)), GET_H_FR (FLD (f_FRj
)));
18592 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
18593 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18595 frvbf_set_ne_index (current_cpu
, ADDSI (FLD (f_FRk
), 1));
18597 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->addsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (((FLD (f_FRi
)) + (1))), GET_H_FR (((FLD (f_FRj
)) + (1))));
18598 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, ((FLD (f_FRk
)) + (1)), opval
);
18599 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18607 /* nfmss: nfmss$pack $FRi,$FRj,$FRk */
18610 SEM_FN_NAME (frvbf
,nfmss
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
18612 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18613 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
18614 int UNUSED written
= 0;
18615 IADDR UNUSED pc
= abuf
->addr
;
18616 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
18619 frvbf_set_ne_index (current_cpu
, FLD (f_FRk
));
18621 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->mulsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRi
)), GET_H_FR (FLD (f_FRj
)));
18622 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
18623 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18625 frvbf_set_ne_index (current_cpu
, ADDSI (FLD (f_FRk
), 1));
18627 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->subsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (((FLD (f_FRi
)) + (1))), GET_H_FR (((FLD (f_FRj
)) + (1))));
18628 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, ((FLD (f_FRk
)) + (1)), opval
);
18629 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18637 /* fdadds: fdadds$pack $FRi,$FRj,$FRk */
18640 SEM_FN_NAME (frvbf
,fdadds
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
18642 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18643 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
18644 int UNUSED written
= 0;
18645 IADDR UNUSED pc
= abuf
->addr
;
18646 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
18650 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->addsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRi
)), GET_H_FR (FLD (f_FRj
)));
18651 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
18652 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18655 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->addsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (((FLD (f_FRi
)) + (1))), GET_H_FR (((FLD (f_FRj
)) + (1))));
18656 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, ((FLD (f_FRk
)) + (1)), opval
);
18657 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18665 /* fdsubs: fdsubs$pack $FRi,$FRj,$FRk */
18668 SEM_FN_NAME (frvbf
,fdsubs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
18670 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18671 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
18672 int UNUSED written
= 0;
18673 IADDR UNUSED pc
= abuf
->addr
;
18674 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
18678 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->subsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRi
)), GET_H_FR (FLD (f_FRj
)));
18679 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
18680 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18683 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->subsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (((FLD (f_FRi
)) + (1))), GET_H_FR (((FLD (f_FRj
)) + (1))));
18684 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, ((FLD (f_FRk
)) + (1)), opval
);
18685 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18693 /* fdmuls: fdmuls$pack $FRi,$FRj,$FRk */
18696 SEM_FN_NAME (frvbf
,fdmuls
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
18698 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18699 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
18700 int UNUSED written
= 0;
18701 IADDR UNUSED pc
= abuf
->addr
;
18702 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
18706 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->mulsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRi
)), GET_H_FR (FLD (f_FRj
)));
18707 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
18708 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18711 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->mulsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (((FLD (f_FRi
)) + (1))), GET_H_FR (((FLD (f_FRj
)) + (1))));
18712 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, ((FLD (f_FRk
)) + (1)), opval
);
18713 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18721 /* fddivs: fddivs$pack $FRi,$FRj,$FRk */
18724 SEM_FN_NAME (frvbf
,fddivs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
18726 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18727 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
18728 int UNUSED written
= 0;
18729 IADDR UNUSED pc
= abuf
->addr
;
18730 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
18734 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->divsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRi
)), GET_H_FR (FLD (f_FRj
)));
18735 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
18736 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18739 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->divsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (((FLD (f_FRi
)) + (1))), GET_H_FR (((FLD (f_FRj
)) + (1))));
18740 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, ((FLD (f_FRk
)) + (1)), opval
);
18741 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18749 /* fdsads: fdsads$pack $FRi,$FRj,$FRk */
18752 SEM_FN_NAME (frvbf
,fdsads
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
18754 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18755 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
18756 int UNUSED written
= 0;
18757 IADDR UNUSED pc
= abuf
->addr
;
18758 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
18762 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->addsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRi
)), GET_H_FR (FLD (f_FRj
)));
18763 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
18764 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18767 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->subsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (((FLD (f_FRi
)) + (1))), GET_H_FR (((FLD (f_FRj
)) + (1))));
18768 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, ((FLD (f_FRk
)) + (1)), opval
);
18769 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18777 /* fdmulcs: fdmulcs$pack $FRi,$FRj,$FRk */
18780 SEM_FN_NAME (frvbf
,fdmulcs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
18782 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18783 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
18784 int UNUSED written
= 0;
18785 IADDR UNUSED pc
= abuf
->addr
;
18786 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
18790 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->mulsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRi
)), GET_H_FR (((FLD (f_FRj
)) + (1))));
18791 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
18792 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18795 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->mulsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (((FLD (f_FRi
)) + (1))), GET_H_FR (FLD (f_FRj
)));
18796 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, ((FLD (f_FRk
)) + (1)), opval
);
18797 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18805 /* nfdmulcs: nfdmulcs$pack $FRi,$FRj,$FRk */
18808 SEM_FN_NAME (frvbf
,nfdmulcs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
18810 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18811 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
18812 int UNUSED written
= 0;
18813 IADDR UNUSED pc
= abuf
->addr
;
18814 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
18817 frvbf_set_ne_index (current_cpu
, FLD (f_FRk
));
18819 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->mulsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRi
)), GET_H_FR (((FLD (f_FRj
)) + (1))));
18820 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
18821 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18823 frvbf_set_ne_index (current_cpu
, ADDSI (FLD (f_FRk
), 1));
18825 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->mulsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (((FLD (f_FRi
)) + (1))), GET_H_FR (FLD (f_FRj
)));
18826 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, ((FLD (f_FRk
)) + (1)), opval
);
18827 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18835 /* nfdadds: nfdadds$pack $FRi,$FRj,$FRk */
18838 SEM_FN_NAME (frvbf
,nfdadds
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
18840 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18841 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
18842 int UNUSED written
= 0;
18843 IADDR UNUSED pc
= abuf
->addr
;
18844 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
18847 frvbf_set_ne_index (current_cpu
, FLD (f_FRk
));
18849 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->addsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRi
)), GET_H_FR (FLD (f_FRj
)));
18850 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
18851 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18853 frvbf_set_ne_index (current_cpu
, ADDSI (FLD (f_FRk
), 1));
18855 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->addsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (((FLD (f_FRi
)) + (1))), GET_H_FR (((FLD (f_FRj
)) + (1))));
18856 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, ((FLD (f_FRk
)) + (1)), opval
);
18857 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18865 /* nfdsubs: nfdsubs$pack $FRi,$FRj,$FRk */
18868 SEM_FN_NAME (frvbf
,nfdsubs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
18870 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18871 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
18872 int UNUSED written
= 0;
18873 IADDR UNUSED pc
= abuf
->addr
;
18874 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
18877 frvbf_set_ne_index (current_cpu
, FLD (f_FRk
));
18879 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->subsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRi
)), GET_H_FR (FLD (f_FRj
)));
18880 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
18881 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18883 frvbf_set_ne_index (current_cpu
, ADDSI (FLD (f_FRk
), 1));
18885 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->subsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (((FLD (f_FRi
)) + (1))), GET_H_FR (((FLD (f_FRj
)) + (1))));
18886 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, ((FLD (f_FRk
)) + (1)), opval
);
18887 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18895 /* nfdmuls: nfdmuls$pack $FRi,$FRj,$FRk */
18898 SEM_FN_NAME (frvbf
,nfdmuls
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
18900 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18901 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
18902 int UNUSED written
= 0;
18903 IADDR UNUSED pc
= abuf
->addr
;
18904 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
18907 frvbf_set_ne_index (current_cpu
, FLD (f_FRk
));
18909 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->mulsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRi
)), GET_H_FR (FLD (f_FRj
)));
18910 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
18911 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18913 frvbf_set_ne_index (current_cpu
, ADDSI (FLD (f_FRk
), 1));
18915 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->mulsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (((FLD (f_FRi
)) + (1))), GET_H_FR (((FLD (f_FRj
)) + (1))));
18916 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, ((FLD (f_FRk
)) + (1)), opval
);
18917 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18925 /* nfddivs: nfddivs$pack $FRi,$FRj,$FRk */
18928 SEM_FN_NAME (frvbf
,nfddivs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
18930 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18931 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
18932 int UNUSED written
= 0;
18933 IADDR UNUSED pc
= abuf
->addr
;
18934 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
18937 frvbf_set_ne_index (current_cpu
, FLD (f_FRk
));
18939 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->divsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRi
)), GET_H_FR (FLD (f_FRj
)));
18940 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
18941 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18943 frvbf_set_ne_index (current_cpu
, ADDSI (FLD (f_FRk
), 1));
18945 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->divsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (((FLD (f_FRi
)) + (1))), GET_H_FR (((FLD (f_FRj
)) + (1))));
18946 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, ((FLD (f_FRk
)) + (1)), opval
);
18947 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18955 /* nfdsads: nfdsads$pack $FRi,$FRj,$FRk */
18958 SEM_FN_NAME (frvbf
,nfdsads
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
18960 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18961 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
18962 int UNUSED written
= 0;
18963 IADDR UNUSED pc
= abuf
->addr
;
18964 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
18967 frvbf_set_ne_index (current_cpu
, FLD (f_FRk
));
18969 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->addsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRi
)), GET_H_FR (FLD (f_FRj
)));
18970 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
18971 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18973 frvbf_set_ne_index (current_cpu
, ADDSI (FLD (f_FRk
), 1));
18975 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->subsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (((FLD (f_FRi
)) + (1))), GET_H_FR (((FLD (f_FRj
)) + (1))));
18976 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, ((FLD (f_FRk
)) + (1)), opval
);
18977 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18985 /* nfdcmps: nfdcmps$pack $FRi,$FRj,$FCCi_2 */
18988 SEM_FN_NAME (frvbf
,nfdcmps
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
18990 #define FLD(f) abuf->fields.sfmt_nfdcmps.f
18991 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
18992 int UNUSED written
= 0;
18993 IADDR UNUSED pc
= abuf
->addr
;
18994 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
18997 frvbf_set_ne_index (current_cpu
, FLD (f_FRk
));
18998 if ((* CGEN_CPU_FPU (current_cpu
)->ops
->gtsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRi
)), GET_H_FR (FLD (f_FRj
)))) {
19001 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[FLD (f_FCCi_2
)]), opval
);
19002 written
|= (1 << 8);
19003 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
19006 if ((* CGEN_CPU_FPU (current_cpu
)->ops
->eqsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRi
)), GET_H_FR (FLD (f_FRj
)))) {
19009 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[FLD (f_FCCi_2
)]), opval
);
19010 written
|= (1 << 8);
19011 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
19014 if ((* CGEN_CPU_FPU (current_cpu
)->ops
->ltsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRi
)), GET_H_FR (FLD (f_FRj
)))) {
19017 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[FLD (f_FCCi_2
)]), opval
);
19018 written
|= (1 << 8);
19019 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
19024 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[FLD (f_FCCi_2
)]), opval
);
19025 written
|= (1 << 8);
19026 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
19031 frvbf_set_ne_index (current_cpu
, ADDSI (FLD (f_FRk
), 1));
19032 if ((* CGEN_CPU_FPU (current_cpu
)->ops
->gtsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (((FLD (f_FRi
)) + (1))), GET_H_FR (((FLD (f_FRj
)) + (1))))) {
19035 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[((FLD (f_FCCi_2
)) + (1))]), opval
);
19036 written
|= (1 << 9);
19037 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
19040 if ((* CGEN_CPU_FPU (current_cpu
)->ops
->eqsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (((FLD (f_FRi
)) + (1))), GET_H_FR (((FLD (f_FRj
)) + (1))))) {
19043 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[((FLD (f_FCCi_2
)) + (1))]), opval
);
19044 written
|= (1 << 9);
19045 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
19048 if ((* CGEN_CPU_FPU (current_cpu
)->ops
->ltsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (((FLD (f_FRi
)) + (1))), GET_H_FR (((FLD (f_FRj
)) + (1))))) {
19051 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[((FLD (f_FCCi_2
)) + (1))]), opval
);
19052 written
|= (1 << 9);
19053 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
19058 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[((FLD (f_FCCi_2
)) + (1))]), opval
);
19059 written
|= (1 << 9);
19060 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
19067 abuf
->written
= written
;
19072 /* mhsetlos: mhsetlos$pack $u12,$FRklo */
19075 SEM_FN_NAME (frvbf
,mhsetlos
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
19077 #define FLD(f) abuf->fields.sfmt_mhsetlos.f
19078 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
19079 int UNUSED written
= 0;
19080 IADDR UNUSED pc
= abuf
->addr
;
19081 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
19084 UHI opval
= FLD (f_u12
);
19085 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, FLD (f_FRk
), opval
);
19086 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
19093 /* mhsethis: mhsethis$pack $u12,$FRkhi */
19096 SEM_FN_NAME (frvbf
,mhsethis
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
19098 #define FLD(f) abuf->fields.sfmt_mhsethis.f
19099 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
19100 int UNUSED written
= 0;
19101 IADDR UNUSED pc
= abuf
->addr
;
19102 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
19105 UHI opval
= FLD (f_u12
);
19106 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, FLD (f_FRk
), opval
);
19107 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
19114 /* mhdsets: mhdsets$pack $u12,$FRintk */
19117 SEM_FN_NAME (frvbf
,mhdsets
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
19119 #define FLD(f) abuf->fields.sfmt_mhdsets.f
19120 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
19121 int UNUSED written
= 0;
19122 IADDR UNUSED pc
= abuf
->addr
;
19123 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
19127 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRk
)));
19128 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
19129 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
19132 UHI opval
= FLD (f_u12
);
19133 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
19134 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
19137 UHI opval
= FLD (f_u12
);
19138 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
19139 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
19147 /* mhsetloh: mhsetloh$pack $s5,$FRklo */
19150 SEM_FN_NAME (frvbf
,mhsetloh
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
19152 #define FLD(f) abuf->fields.sfmt_mhsetloh.f
19153 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
19154 int UNUSED written
= 0;
19155 IADDR UNUSED pc
= abuf
->addr
;
19156 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
19160 tmp_tmp
= GET_H_FR_LO (FLD (f_FRk
));
19161 tmp_tmp
= ANDHI (tmp_tmp
, 2047);
19162 tmp_tmp
= ORHI (tmp_tmp
, SLLSI (ANDSI (FLD (f_s5
), 31), 11));
19164 UHI opval
= tmp_tmp
;
19165 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, FLD (f_FRk
), opval
);
19166 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
19174 /* mhsethih: mhsethih$pack $s5,$FRkhi */
19177 SEM_FN_NAME (frvbf
,mhsethih
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
19179 #define FLD(f) abuf->fields.sfmt_mhsethih.f
19180 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
19181 int UNUSED written
= 0;
19182 IADDR UNUSED pc
= abuf
->addr
;
19183 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
19187 tmp_tmp
= GET_H_FR_HI (FLD (f_FRk
));
19188 tmp_tmp
= ANDHI (tmp_tmp
, 2047);
19189 tmp_tmp
= ORHI (tmp_tmp
, SLLSI (ANDSI (FLD (f_s5
), 31), 11));
19191 UHI opval
= tmp_tmp
;
19192 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, FLD (f_FRk
), opval
);
19193 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
19201 /* mhdseth: mhdseth$pack $s5,$FRintk */
19204 SEM_FN_NAME (frvbf
,mhdseth
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
19206 #define FLD(f) abuf->fields.sfmt_mhdseth.f
19207 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
19208 int UNUSED written
= 0;
19209 IADDR UNUSED pc
= abuf
->addr
;
19210 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
19214 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRk
)));
19215 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
19216 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
19220 tmp_tmp
= GET_H_FR_HI (((FLD (f_FRk
)) + (0)));
19221 tmp_tmp
= ANDHI (tmp_tmp
, 2047);
19222 tmp_tmp
= ORHI (tmp_tmp
, SLLSI (ANDSI (FLD (f_s5
), 31), 11));
19224 UHI opval
= tmp_tmp
;
19225 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
19226 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
19231 tmp_tmp
= GET_H_FR_LO (((FLD (f_FRk
)) + (0)));
19232 tmp_tmp
= ANDHI (tmp_tmp
, 2047);
19233 tmp_tmp
= ORHI (tmp_tmp
, SLLSI (ANDSI (FLD (f_s5
), 31), 11));
19235 UHI opval
= tmp_tmp
;
19236 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
19237 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
19246 /* mand: mand$pack $FRinti,$FRintj,$FRintk */
19249 SEM_FN_NAME (frvbf
,mand
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
19251 #define FLD(f) abuf->fields.sfmt_mwcut.f
19252 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
19253 int UNUSED written
= 0;
19254 IADDR UNUSED pc
= abuf
->addr
;
19255 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
19258 SI opval
= ANDSI (GET_H_FR_INT (FLD (f_FRi
)), GET_H_FR_INT (FLD (f_FRj
)));
19259 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
19260 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
19267 /* mor: mor$pack $FRinti,$FRintj,$FRintk */
19270 SEM_FN_NAME (frvbf
,mor
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
19272 #define FLD(f) abuf->fields.sfmt_mwcut.f
19273 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
19274 int UNUSED written
= 0;
19275 IADDR UNUSED pc
= abuf
->addr
;
19276 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
19279 SI opval
= ORSI (GET_H_FR_INT (FLD (f_FRi
)), GET_H_FR_INT (FLD (f_FRj
)));
19280 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
19281 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
19288 /* mxor: mxor$pack $FRinti,$FRintj,$FRintk */
19291 SEM_FN_NAME (frvbf
,mxor
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
19293 #define FLD(f) abuf->fields.sfmt_mwcut.f
19294 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
19295 int UNUSED written
= 0;
19296 IADDR UNUSED pc
= abuf
->addr
;
19297 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
19300 SI opval
= XORSI (GET_H_FR_INT (FLD (f_FRi
)), GET_H_FR_INT (FLD (f_FRj
)));
19301 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
19302 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
19309 /* cmand: cmand$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
19312 SEM_FN_NAME (frvbf
,cmand
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
19314 #define FLD(f) abuf->fields.sfmt_cmand.f
19315 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
19316 int UNUSED written
= 0;
19317 IADDR UNUSED pc
= abuf
->addr
;
19318 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
19320 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
19322 SI opval
= ANDSI (GET_H_FR_INT (FLD (f_FRi
)), GET_H_FR_INT (FLD (f_FRj
)));
19323 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
19324 written
|= (1 << 4);
19325 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
19329 abuf
->written
= written
;
19334 /* cmor: cmor$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
19337 SEM_FN_NAME (frvbf
,cmor
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
19339 #define FLD(f) abuf->fields.sfmt_cmand.f
19340 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
19341 int UNUSED written
= 0;
19342 IADDR UNUSED pc
= abuf
->addr
;
19343 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
19345 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
19347 SI opval
= ORSI (GET_H_FR_INT (FLD (f_FRi
)), GET_H_FR_INT (FLD (f_FRj
)));
19348 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
19349 written
|= (1 << 4);
19350 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
19354 abuf
->written
= written
;
19359 /* cmxor: cmxor$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
19362 SEM_FN_NAME (frvbf
,cmxor
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
19364 #define FLD(f) abuf->fields.sfmt_cmand.f
19365 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
19366 int UNUSED written
= 0;
19367 IADDR UNUSED pc
= abuf
->addr
;
19368 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
19370 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
19372 SI opval
= XORSI (GET_H_FR_INT (FLD (f_FRi
)), GET_H_FR_INT (FLD (f_FRj
)));
19373 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
19374 written
|= (1 << 4);
19375 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
19379 abuf
->written
= written
;
19384 /* mnot: mnot$pack $FRintj,$FRintk */
19387 SEM_FN_NAME (frvbf
,mnot
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
19389 #define FLD(f) abuf->fields.sfmt_mcut.f
19390 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
19391 int UNUSED written
= 0;
19392 IADDR UNUSED pc
= abuf
->addr
;
19393 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
19396 SI opval
= INVSI (GET_H_FR_INT (FLD (f_FRj
)));
19397 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
19398 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
19405 /* cmnot: cmnot$pack $FRintj,$FRintk,$CCi,$cond */
19408 SEM_FN_NAME (frvbf
,cmnot
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
19410 #define FLD(f) abuf->fields.sfmt_cmand.f
19411 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
19412 int UNUSED written
= 0;
19413 IADDR UNUSED pc
= abuf
->addr
;
19414 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
19416 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
19418 SI opval
= INVSI (GET_H_FR_INT (FLD (f_FRj
)));
19419 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
19420 written
|= (1 << 3);
19421 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
19425 abuf
->written
= written
;
19430 /* mrotli: mrotli$pack $FRinti,$u6,$FRintk */
19433 SEM_FN_NAME (frvbf
,mrotli
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
19435 #define FLD(f) abuf->fields.sfmt_mwcuti.f
19436 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
19437 int UNUSED written
= 0;
19438 IADDR UNUSED pc
= abuf
->addr
;
19439 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
19442 SI opval
= ROLSI (GET_H_FR_INT (FLD (f_FRi
)), ANDSI (FLD (f_u6
), 31));
19443 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
19444 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
19451 /* mrotri: mrotri$pack $FRinti,$u6,$FRintk */
19454 SEM_FN_NAME (frvbf
,mrotri
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
19456 #define FLD(f) abuf->fields.sfmt_mwcuti.f
19457 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
19458 int UNUSED written
= 0;
19459 IADDR UNUSED pc
= abuf
->addr
;
19460 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
19463 SI opval
= RORSI (GET_H_FR_INT (FLD (f_FRi
)), ANDSI (FLD (f_u6
), 31));
19464 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
19465 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
19472 /* mwcut: mwcut$pack $FRinti,$FRintj,$FRintk */
19475 SEM_FN_NAME (frvbf
,mwcut
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
19477 #define FLD(f) abuf->fields.sfmt_mwcut.f
19478 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
19479 int UNUSED written
= 0;
19480 IADDR UNUSED pc
= abuf
->addr
;
19481 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
19484 SI opval
= frvbf_cut (current_cpu
, GET_H_FR_INT (FLD (f_FRi
)), GET_H_FR_INT (((FLD (f_FRi
)) + (1))), GET_H_FR_INT (FLD (f_FRj
)));
19485 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
19486 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
19493 /* mwcuti: mwcuti$pack $FRinti,$u6,$FRintk */
19496 SEM_FN_NAME (frvbf
,mwcuti
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
19498 #define FLD(f) abuf->fields.sfmt_mwcuti.f
19499 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
19500 int UNUSED written
= 0;
19501 IADDR UNUSED pc
= abuf
->addr
;
19502 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
19505 SI opval
= frvbf_cut (current_cpu
, GET_H_FR_INT (FLD (f_FRi
)), GET_H_FR_INT (((FLD (f_FRi
)) + (1))), FLD (f_u6
));
19506 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
19507 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
19514 /* mcut: mcut$pack $ACC40Si,$FRintj,$FRintk */
19517 SEM_FN_NAME (frvbf
,mcut
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
19519 #define FLD(f) abuf->fields.sfmt_mcut.f
19520 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
19521 int UNUSED written
= 0;
19522 IADDR UNUSED pc
= abuf
->addr
;
19523 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
19526 SI opval
= frvbf_media_cut (current_cpu
, GET_H_ACC40S (FLD (f_ACC40Si
)), GET_H_FR_INT (FLD (f_FRj
)));
19527 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
19528 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
19535 /* mcuti: mcuti$pack $ACC40Si,$s6,$FRintk */
19538 SEM_FN_NAME (frvbf
,mcuti
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
19540 #define FLD(f) abuf->fields.sfmt_mcuti.f
19541 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
19542 int UNUSED written
= 0;
19543 IADDR UNUSED pc
= abuf
->addr
;
19544 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
19547 SI opval
= frvbf_media_cut (current_cpu
, GET_H_ACC40S (FLD (f_ACC40Si
)), FLD (f_s6
));
19548 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
19549 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
19556 /* mcutss: mcutss$pack $ACC40Si,$FRintj,$FRintk */
19559 SEM_FN_NAME (frvbf
,mcutss
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
19561 #define FLD(f) abuf->fields.sfmt_mcut.f
19562 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
19563 int UNUSED written
= 0;
19564 IADDR UNUSED pc
= abuf
->addr
;
19565 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
19568 SI opval
= frvbf_media_cut_ss (current_cpu
, GET_H_ACC40S (FLD (f_ACC40Si
)), GET_H_FR_INT (FLD (f_FRj
)));
19569 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
19570 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
19577 /* mcutssi: mcutssi$pack $ACC40Si,$s6,$FRintk */
19580 SEM_FN_NAME (frvbf
,mcutssi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
19582 #define FLD(f) abuf->fields.sfmt_mcuti.f
19583 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
19584 int UNUSED written
= 0;
19585 IADDR UNUSED pc
= abuf
->addr
;
19586 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
19589 SI opval
= frvbf_media_cut_ss (current_cpu
, GET_H_ACC40S (FLD (f_ACC40Si
)), FLD (f_s6
));
19590 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
19591 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
19598 /* mdcutssi: mdcutssi$pack $ACC40Si,$s6,$FRintkeven */
19601 SEM_FN_NAME (frvbf
,mdcutssi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
19603 #define FLD(f) abuf->fields.sfmt_mdcutssi.f
19604 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
19605 int UNUSED written
= 0;
19606 IADDR UNUSED pc
= abuf
->addr
;
19607 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
19609 if (ANDSI (FLD (f_ACC40Si
), SUBSI (2, 1))) {
19610 frvbf_media_acc_not_aligned (current_cpu
);
19612 if (ANDSI (FLD (f_FRk
), SUBSI (2, 1))) {
19613 frvbf_media_register_not_aligned (current_cpu
);
19617 SI opval
= frvbf_media_cut_ss (current_cpu
, GET_H_ACC40S (FLD (f_ACC40Si
)), FLD (f_s6
));
19618 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
19619 written
|= (1 << 5);
19620 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
19623 USI opval
= frvbf_media_cut_ss (current_cpu
, GET_H_ACC40S (((FLD (f_ACC40Si
)) + (1))), FLD (f_s6
));
19624 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, ((FLD (f_FRk
)) + (1)), opval
);
19625 written
|= (1 << 6);
19626 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
19632 abuf
->written
= written
;
19637 /* maveh: maveh$pack $FRinti,$FRintj,$FRintk */
19640 SEM_FN_NAME (frvbf
,maveh
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
19642 #define FLD(f) abuf->fields.sfmt_mwcut.f
19643 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
19644 int UNUSED written
= 0;
19645 IADDR UNUSED pc
= abuf
->addr
;
19646 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
19649 SI opval
= frvbf_media_average (current_cpu
, GET_H_FR_INT (FLD (f_FRi
)), GET_H_FR_INT (FLD (f_FRj
)));
19650 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
19651 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
19658 /* msllhi: msllhi$pack $FRinti,$u6,$FRintk */
19661 SEM_FN_NAME (frvbf
,msllhi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
19663 #define FLD(f) abuf->fields.sfmt_msllhi.f
19664 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
19665 int UNUSED written
= 0;
19666 IADDR UNUSED pc
= abuf
->addr
;
19667 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
19671 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRi
)));
19672 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRi
), opval
);
19673 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
19676 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRk
)));
19677 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
19678 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
19681 UHI opval
= SLLHI (GET_H_FR_HI (((FLD (f_FRi
)) + (0))), ANDSI (FLD (f_u6
), 15));
19682 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
19683 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
19686 UHI opval
= SLLHI (GET_H_FR_LO (((FLD (f_FRi
)) + (0))), ANDSI (FLD (f_u6
), 15));
19687 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
19688 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
19696 /* msrlhi: msrlhi$pack $FRinti,$u6,$FRintk */
19699 SEM_FN_NAME (frvbf
,msrlhi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
19701 #define FLD(f) abuf->fields.sfmt_msllhi.f
19702 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
19703 int UNUSED written
= 0;
19704 IADDR UNUSED pc
= abuf
->addr
;
19705 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
19709 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRi
)));
19710 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRi
), opval
);
19711 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
19714 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRk
)));
19715 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
19716 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
19719 UHI opval
= SRLHI (GET_H_FR_HI (((FLD (f_FRi
)) + (0))), ANDSI (FLD (f_u6
), 15));
19720 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
19721 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
19724 UHI opval
= SRLHI (GET_H_FR_LO (((FLD (f_FRi
)) + (0))), ANDSI (FLD (f_u6
), 15));
19725 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
19726 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
19734 /* msrahi: msrahi$pack $FRinti,$u6,$FRintk */
19737 SEM_FN_NAME (frvbf
,msrahi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
19739 #define FLD(f) abuf->fields.sfmt_msllhi.f
19740 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
19741 int UNUSED written
= 0;
19742 IADDR UNUSED pc
= abuf
->addr
;
19743 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
19747 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRi
)));
19748 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRi
), opval
);
19749 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
19752 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRk
)));
19753 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
19754 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
19757 UHI opval
= SRAHI (GET_H_FR_HI (((FLD (f_FRi
)) + (0))), ANDSI (FLD (f_u6
), 15));
19758 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
19759 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
19762 UHI opval
= SRAHI (GET_H_FR_LO (((FLD (f_FRi
)) + (0))), ANDSI (FLD (f_u6
), 15));
19763 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
19764 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
19772 /* mdrotli: mdrotli$pack $FRintieven,$s6,$FRintkeven */
19775 SEM_FN_NAME (frvbf
,mdrotli
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
19777 #define FLD(f) abuf->fields.sfmt_mdrotli.f
19778 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
19779 int UNUSED written
= 0;
19780 IADDR UNUSED pc
= abuf
->addr
;
19781 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
19783 if (ORIF (ANDSI (FLD (f_FRi
), SUBSI (2, 1)), ANDSI (FLD (f_FRk
), SUBSI (2, 1)))) {
19784 frvbf_media_register_not_aligned (current_cpu
);
19788 SI opval
= ROLSI (GET_H_FR_INT (FLD (f_FRi
)), ANDSI (FLD (f_s6
), 31));
19789 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
19790 written
|= (1 << 5);
19791 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
19794 USI opval
= ROLSI (GET_H_FR_INT (((FLD (f_FRi
)) + (1))), ANDSI (FLD (f_s6
), 31));
19795 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, ((FLD (f_FRk
)) + (1)), opval
);
19796 written
|= (1 << 6);
19797 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
19802 abuf
->written
= written
;
19807 /* mcplhi: mcplhi$pack $FRinti,$u6,$FRintk */
19810 SEM_FN_NAME (frvbf
,mcplhi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
19812 #define FLD(f) abuf->fields.sfmt_mcplhi.f
19813 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
19814 int UNUSED written
= 0;
19815 IADDR UNUSED pc
= abuf
->addr
;
19816 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
19823 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRi
)));
19824 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRi
), opval
);
19825 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
19828 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRk
)));
19829 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
19830 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
19832 tmp_shift
= ANDSI (FLD (f_u6
), 15);
19833 tmp_arg1
= SLLHI (GET_H_FR_HI (((FLD (f_FRi
)) + (0))), tmp_shift
);
19834 if (NEHI (tmp_shift
, 0)) {
19836 tmp_arg2
= GET_H_FR_HI (((FLD (f_FRi
)) + (1)));
19837 tmp_arg2
= SRLHI (SLLHI (tmp_arg2
, SUBSI (15, tmp_shift
)), SUBSI (15, tmp_shift
));
19838 tmp_arg1
= ORHI (tmp_arg1
, tmp_arg2
);
19842 UHI opval
= tmp_arg1
;
19843 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
19844 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
19852 /* mcpli: mcpli$pack $FRinti,$u6,$FRintk */
19855 SEM_FN_NAME (frvbf
,mcpli
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
19857 #define FLD(f) abuf->fields.sfmt_mwcuti.f
19858 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
19859 int UNUSED written
= 0;
19860 IADDR UNUSED pc
= abuf
->addr
;
19861 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
19866 tmp_shift
= ANDSI (FLD (f_u6
), 31);
19867 tmp_tmp
= SLLSI (GET_H_FR_INT (FLD (f_FRi
)), tmp_shift
);
19868 if (NESI (tmp_shift
, 0)) {
19871 tmp_tmp1
= SRLSI (SLLSI (GET_H_FR_INT (((FLD (f_FRi
)) + (1))), SUBSI (31, tmp_shift
)), SUBSI (31, tmp_shift
));
19872 tmp_tmp
= ORSI (tmp_tmp
, tmp_tmp1
);
19876 SI opval
= tmp_tmp
;
19877 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
19878 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
19886 /* msaths: msaths$pack $FRinti,$FRintj,$FRintk */
19889 SEM_FN_NAME (frvbf
,msaths
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
19891 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
19892 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
19893 int UNUSED written
= 0;
19894 IADDR UNUSED pc
= abuf
->addr
;
19895 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
19903 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
19904 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
19905 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
19906 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
19908 if (GTHI (tmp_argihi
, tmp_argjhi
)) {
19910 UHI opval
= tmp_argjhi
;
19911 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
19912 written
|= (1 << 9);
19913 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
19916 if (LTHI (tmp_argihi
, INVHI (tmp_argjhi
))) {
19918 UHI opval
= INVHI (tmp_argjhi
);
19919 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
19920 written
|= (1 << 9);
19921 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
19925 UHI opval
= tmp_argihi
;
19926 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
19927 written
|= (1 << 9);
19928 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
19932 if (GTHI (tmp_argilo
, tmp_argjlo
)) {
19934 UHI opval
= tmp_argjlo
;
19935 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
19936 written
|= (1 << 10);
19937 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
19940 if (LTHI (tmp_argilo
, INVHI (tmp_argjlo
))) {
19942 UHI opval
= INVHI (tmp_argjlo
);
19943 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
19944 written
|= (1 << 10);
19945 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
19949 UHI opval
= tmp_argilo
;
19950 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
19951 written
|= (1 << 10);
19952 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
19958 abuf
->written
= written
;
19963 /* mqsaths: mqsaths$pack $FRintieven,$FRintjeven,$FRintkeven */
19966 SEM_FN_NAME (frvbf
,mqsaths
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
19968 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
19969 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
19970 int UNUSED written
= 0;
19971 IADDR UNUSED pc
= abuf
->addr
;
19972 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
19974 if (ORIF (ANDSI (FLD (f_FRi
), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj
), SUBSI (2, 1)), ANDSI (FLD (f_FRk
), SUBSI (2, 1))))) {
19975 frvbf_media_register_not_aligned (current_cpu
);
19983 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRk
)));
19984 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
19985 written
|= (1 << 14);
19986 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
19989 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
19990 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
19991 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
19992 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
19994 if (GTHI (tmp_argihi
, tmp_argjhi
)) {
19996 UHI opval
= tmp_argjhi
;
19997 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
19998 written
|= (1 << 15);
19999 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
20002 if (LTHI (tmp_argihi
, INVHI (tmp_argjhi
))) {
20004 UHI opval
= INVHI (tmp_argjhi
);
20005 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
20006 written
|= (1 << 15);
20007 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
20011 UHI opval
= tmp_argihi
;
20012 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
20013 written
|= (1 << 15);
20014 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
20018 if (GTHI (tmp_argilo
, tmp_argjlo
)) {
20020 UHI opval
= tmp_argjlo
;
20021 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
20022 written
|= (1 << 17);
20023 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
20026 if (LTHI (tmp_argilo
, INVHI (tmp_argjlo
))) {
20028 UHI opval
= INVHI (tmp_argjlo
);
20029 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
20030 written
|= (1 << 17);
20031 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
20035 UHI opval
= tmp_argilo
;
20036 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
20037 written
|= (1 << 17);
20038 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
20043 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
20044 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
20045 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
20046 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
20048 if (GTHI (tmp_argihi
, tmp_argjhi
)) {
20050 UHI opval
= tmp_argjhi
;
20051 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (1)), opval
);
20052 written
|= (1 << 16);
20053 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
20056 if (LTHI (tmp_argihi
, INVHI (tmp_argjhi
))) {
20058 UHI opval
= INVHI (tmp_argjhi
);
20059 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (1)), opval
);
20060 written
|= (1 << 16);
20061 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
20065 UHI opval
= tmp_argihi
;
20066 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (1)), opval
);
20067 written
|= (1 << 16);
20068 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
20072 if (GTHI (tmp_argilo
, tmp_argjlo
)) {
20074 UHI opval
= tmp_argjlo
;
20075 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (1)), opval
);
20076 written
|= (1 << 18);
20077 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
20080 if (LTHI (tmp_argilo
, INVHI (tmp_argjlo
))) {
20082 UHI opval
= INVHI (tmp_argjlo
);
20083 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (1)), opval
);
20084 written
|= (1 << 18);
20085 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
20089 UHI opval
= tmp_argilo
;
20090 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (1)), opval
);
20091 written
|= (1 << 18);
20092 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
20099 abuf
->written
= written
;
20104 /* msathu: msathu$pack $FRinti,$FRintj,$FRintk */
20107 SEM_FN_NAME (frvbf
,msathu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
20109 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20110 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
20111 int UNUSED written
= 0;
20112 IADDR UNUSED pc
= abuf
->addr
;
20113 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
20121 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
20122 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
20123 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
20124 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
20126 if (GTUHI (tmp_argihi
, tmp_argjhi
)) {
20128 UHI opval
= tmp_argjhi
;
20129 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
20130 written
|= (1 << 9);
20131 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
20135 UHI opval
= tmp_argihi
;
20136 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
20137 written
|= (1 << 9);
20138 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
20141 if (GTUHI (tmp_argilo
, tmp_argjlo
)) {
20143 UHI opval
= tmp_argjlo
;
20144 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
20145 written
|= (1 << 10);
20146 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
20150 UHI opval
= tmp_argilo
;
20151 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
20152 written
|= (1 << 10);
20153 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
20158 abuf
->written
= written
;
20163 /* mcmpsh: mcmpsh$pack $FRinti,$FRintj,$FCCk */
20166 SEM_FN_NAME (frvbf
,mcmpsh
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
20168 #define FLD(f) abuf->fields.sfmt_mcmpsh.f
20169 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
20170 int UNUSED written
= 0;
20171 IADDR UNUSED pc
= abuf
->addr
;
20172 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
20174 if (ANDSI (FLD (f_FCCk
), SUBSI (2, 1))) {
20175 frvbf_media_cr_not_aligned (current_cpu
);
20183 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
20184 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
20185 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
20186 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
20188 if (GTHI (tmp_argihi
, tmp_argjhi
)) {
20191 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[FLD (f_FCCk
)]), opval
);
20192 written
|= (1 << 9);
20193 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
20196 if (EQHI (tmp_argihi
, tmp_argjhi
)) {
20199 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[FLD (f_FCCk
)]), opval
);
20200 written
|= (1 << 9);
20201 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
20204 if (LTHI (tmp_argihi
, tmp_argjhi
)) {
20207 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[FLD (f_FCCk
)]), opval
);
20208 written
|= (1 << 9);
20209 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
20214 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[FLD (f_FCCk
)]), opval
);
20215 written
|= (1 << 9);
20216 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
20221 if (GTHI (tmp_argilo
, tmp_argjlo
)) {
20224 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[((FLD (f_FCCk
)) + (1))]), opval
);
20225 written
|= (1 << 10);
20226 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
20229 if (EQHI (tmp_argilo
, tmp_argjlo
)) {
20232 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[((FLD (f_FCCk
)) + (1))]), opval
);
20233 written
|= (1 << 10);
20234 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
20237 if (LTHI (tmp_argilo
, tmp_argjlo
)) {
20240 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[((FLD (f_FCCk
)) + (1))]), opval
);
20241 written
|= (1 << 10);
20242 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
20247 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[((FLD (f_FCCk
)) + (1))]), opval
);
20248 written
|= (1 << 10);
20249 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
20257 abuf
->written
= written
;
20262 /* mcmpuh: mcmpuh$pack $FRinti,$FRintj,$FCCk */
20265 SEM_FN_NAME (frvbf
,mcmpuh
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
20267 #define FLD(f) abuf->fields.sfmt_mcmpsh.f
20268 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
20269 int UNUSED written
= 0;
20270 IADDR UNUSED pc
= abuf
->addr
;
20271 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
20273 if (ANDSI (FLD (f_FCCk
), SUBSI (2, 1))) {
20274 frvbf_media_cr_not_aligned (current_cpu
);
20282 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
20283 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
20284 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
20285 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
20287 if (GTUHI (tmp_argihi
, tmp_argjhi
)) {
20290 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[FLD (f_FCCk
)]), opval
);
20291 written
|= (1 << 9);
20292 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
20295 if (EQHI (tmp_argihi
, tmp_argjhi
)) {
20298 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[FLD (f_FCCk
)]), opval
);
20299 written
|= (1 << 9);
20300 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
20303 if (LTUHI (tmp_argihi
, tmp_argjhi
)) {
20306 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[FLD (f_FCCk
)]), opval
);
20307 written
|= (1 << 9);
20308 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
20313 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[FLD (f_FCCk
)]), opval
);
20314 written
|= (1 << 9);
20315 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
20320 if (GTUHI (tmp_argilo
, tmp_argjlo
)) {
20323 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[((FLD (f_FCCk
)) + (1))]), opval
);
20324 written
|= (1 << 10);
20325 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
20328 if (EQHI (tmp_argilo
, tmp_argjlo
)) {
20331 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[((FLD (f_FCCk
)) + (1))]), opval
);
20332 written
|= (1 << 10);
20333 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
20336 if (LTUHI (tmp_argilo
, tmp_argjlo
)) {
20339 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[((FLD (f_FCCk
)) + (1))]), opval
);
20340 written
|= (1 << 10);
20341 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
20346 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[((FLD (f_FCCk
)) + (1))]), opval
);
20347 written
|= (1 << 10);
20348 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
20356 abuf
->written
= written
;
20361 /* mabshs: mabshs$pack $FRintj,$FRintk */
20364 SEM_FN_NAME (frvbf
,mabshs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
20366 #define FLD(f) abuf->fields.sfmt_mabshs.f
20367 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
20368 int UNUSED written
= 0;
20369 IADDR UNUSED pc
= abuf
->addr
;
20370 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
20376 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRj
)));
20377 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRj
), opval
);
20378 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
20381 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRk
)));
20382 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
20383 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
20385 tmp_arghi
= GET_H_FR_HI (((FLD (f_FRj
)) + (0)));
20386 tmp_arglo
= GET_H_FR_LO (((FLD (f_FRj
)) + (0)));
20387 if (GTDI (ABSHI (tmp_arghi
), 32767)) {
20391 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
20392 written
|= (1 << 8);
20393 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
20395 frvbf_media_overflow (current_cpu
, 8);
20398 if (LTDI (ABSHI (tmp_arghi
), -32768)) {
20401 UHI opval
= -32768;
20402 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
20403 written
|= (1 << 8);
20404 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
20406 frvbf_media_overflow (current_cpu
, 8);
20410 UHI opval
= ABSHI (tmp_arghi
);
20411 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
20412 written
|= (1 << 8);
20413 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
20417 if (GTDI (ABSHI (tmp_arglo
), 32767)) {
20421 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
20422 written
|= (1 << 9);
20423 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
20425 frvbf_media_overflow (current_cpu
, 4);
20428 if (LTDI (ABSHI (tmp_arglo
), -32768)) {
20431 UHI opval
= -32768;
20432 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
20433 written
|= (1 << 9);
20434 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
20436 frvbf_media_overflow (current_cpu
, 4);
20440 UHI opval
= ABSHI (tmp_arglo
);
20441 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
20442 written
|= (1 << 9);
20443 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
20449 abuf
->written
= written
;
20454 /* maddhss: maddhss$pack $FRinti,$FRintj,$FRintk */
20457 SEM_FN_NAME (frvbf
,maddhss
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
20459 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20460 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
20461 int UNUSED written
= 0;
20462 IADDR UNUSED pc
= abuf
->addr
;
20463 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
20471 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
20472 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
20473 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
20474 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
20478 tmp_tmp
= ADDHI (tmp_argihi
, tmp_argjhi
);
20479 if (GTDI (tmp_tmp
, 32767)) {
20483 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
20484 written
|= (1 << 9);
20485 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
20487 frvbf_media_overflow (current_cpu
, 8);
20490 if (LTDI (tmp_tmp
, -32768)) {
20493 UHI opval
= -32768;
20494 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
20495 written
|= (1 << 9);
20496 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
20498 frvbf_media_overflow (current_cpu
, 8);
20502 UHI opval
= tmp_tmp
;
20503 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
20504 written
|= (1 << 9);
20505 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
20512 tmp_tmp
= ADDHI (tmp_argilo
, tmp_argjlo
);
20513 if (GTDI (tmp_tmp
, 32767)) {
20517 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
20518 written
|= (1 << 10);
20519 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
20521 frvbf_media_overflow (current_cpu
, 4);
20524 if (LTDI (tmp_tmp
, -32768)) {
20527 UHI opval
= -32768;
20528 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
20529 written
|= (1 << 10);
20530 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
20532 frvbf_media_overflow (current_cpu
, 4);
20536 UHI opval
= tmp_tmp
;
20537 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
20538 written
|= (1 << 10);
20539 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
20546 abuf
->written
= written
;
20551 /* maddhus: maddhus$pack $FRinti,$FRintj,$FRintk */
20554 SEM_FN_NAME (frvbf
,maddhus
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
20556 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20557 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
20558 int UNUSED written
= 0;
20559 IADDR UNUSED pc
= abuf
->addr
;
20560 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
20568 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
20569 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
20570 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
20571 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
20575 tmp_tmp
= ADDHI (tmp_argihi
, tmp_argjhi
);
20576 if (GTDI (tmp_tmp
, 65535)) {
20580 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
20581 written
|= (1 << 9);
20582 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
20584 frvbf_media_overflow (current_cpu
, 8);
20587 if (LTDI (tmp_tmp
, 0)) {
20591 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
20592 written
|= (1 << 9);
20593 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
20595 frvbf_media_overflow (current_cpu
, 8);
20599 UHI opval
= tmp_tmp
;
20600 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
20601 written
|= (1 << 9);
20602 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
20609 tmp_tmp
= ADDHI (tmp_argilo
, tmp_argjlo
);
20610 if (GTDI (tmp_tmp
, 65535)) {
20614 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
20615 written
|= (1 << 10);
20616 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
20618 frvbf_media_overflow (current_cpu
, 4);
20621 if (LTDI (tmp_tmp
, 0)) {
20625 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
20626 written
|= (1 << 10);
20627 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
20629 frvbf_media_overflow (current_cpu
, 4);
20633 UHI opval
= tmp_tmp
;
20634 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
20635 written
|= (1 << 10);
20636 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
20643 abuf
->written
= written
;
20648 /* msubhss: msubhss$pack $FRinti,$FRintj,$FRintk */
20651 SEM_FN_NAME (frvbf
,msubhss
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
20653 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20654 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
20655 int UNUSED written
= 0;
20656 IADDR UNUSED pc
= abuf
->addr
;
20657 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
20665 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
20666 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
20667 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
20668 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
20672 tmp_tmp
= SUBHI (tmp_argihi
, tmp_argjhi
);
20673 if (GTDI (tmp_tmp
, 32767)) {
20677 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
20678 written
|= (1 << 9);
20679 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
20681 frvbf_media_overflow (current_cpu
, 8);
20684 if (LTDI (tmp_tmp
, -32768)) {
20687 UHI opval
= -32768;
20688 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
20689 written
|= (1 << 9);
20690 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
20692 frvbf_media_overflow (current_cpu
, 8);
20696 UHI opval
= tmp_tmp
;
20697 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
20698 written
|= (1 << 9);
20699 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
20706 tmp_tmp
= SUBHI (tmp_argilo
, tmp_argjlo
);
20707 if (GTDI (tmp_tmp
, 32767)) {
20711 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
20712 written
|= (1 << 10);
20713 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
20715 frvbf_media_overflow (current_cpu
, 4);
20718 if (LTDI (tmp_tmp
, -32768)) {
20721 UHI opval
= -32768;
20722 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
20723 written
|= (1 << 10);
20724 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
20726 frvbf_media_overflow (current_cpu
, 4);
20730 UHI opval
= tmp_tmp
;
20731 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
20732 written
|= (1 << 10);
20733 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
20740 abuf
->written
= written
;
20745 /* msubhus: msubhus$pack $FRinti,$FRintj,$FRintk */
20748 SEM_FN_NAME (frvbf
,msubhus
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
20750 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20751 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
20752 int UNUSED written
= 0;
20753 IADDR UNUSED pc
= abuf
->addr
;
20754 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
20762 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
20763 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
20764 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
20765 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
20769 tmp_tmp
= SUBHI (tmp_argihi
, tmp_argjhi
);
20770 if (GTDI (tmp_tmp
, 65535)) {
20774 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
20775 written
|= (1 << 9);
20776 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
20778 frvbf_media_overflow (current_cpu
, 8);
20781 if (LTDI (tmp_tmp
, 0)) {
20785 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
20786 written
|= (1 << 9);
20787 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
20789 frvbf_media_overflow (current_cpu
, 8);
20793 UHI opval
= tmp_tmp
;
20794 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
20795 written
|= (1 << 9);
20796 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
20803 tmp_tmp
= SUBHI (tmp_argilo
, tmp_argjlo
);
20804 if (GTDI (tmp_tmp
, 65535)) {
20808 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
20809 written
|= (1 << 10);
20810 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
20812 frvbf_media_overflow (current_cpu
, 4);
20815 if (LTDI (tmp_tmp
, 0)) {
20819 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
20820 written
|= (1 << 10);
20821 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
20823 frvbf_media_overflow (current_cpu
, 4);
20827 UHI opval
= tmp_tmp
;
20828 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
20829 written
|= (1 << 10);
20830 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
20837 abuf
->written
= written
;
20842 /* cmaddhss: cmaddhss$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
20845 SEM_FN_NAME (frvbf
,cmaddhss
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
20847 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20848 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
20849 int UNUSED written
= 0;
20850 IADDR UNUSED pc
= abuf
->addr
;
20851 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
20853 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
20860 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
20861 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
20862 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
20863 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
20867 tmp_tmp
= ADDHI (tmp_argihi
, tmp_argjhi
);
20868 if (GTDI (tmp_tmp
, 32767)) {
20872 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
20873 written
|= (1 << 11);
20874 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
20876 frvbf_media_overflow (current_cpu
, 8);
20879 if (LTDI (tmp_tmp
, -32768)) {
20882 UHI opval
= -32768;
20883 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
20884 written
|= (1 << 11);
20885 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
20887 frvbf_media_overflow (current_cpu
, 8);
20891 UHI opval
= tmp_tmp
;
20892 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
20893 written
|= (1 << 11);
20894 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
20901 tmp_tmp
= ADDHI (tmp_argilo
, tmp_argjlo
);
20902 if (GTDI (tmp_tmp
, 32767)) {
20906 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
20907 written
|= (1 << 12);
20908 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
20910 frvbf_media_overflow (current_cpu
, 4);
20913 if (LTDI (tmp_tmp
, -32768)) {
20916 UHI opval
= -32768;
20917 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
20918 written
|= (1 << 12);
20919 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
20921 frvbf_media_overflow (current_cpu
, 4);
20925 UHI opval
= tmp_tmp
;
20926 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
20927 written
|= (1 << 12);
20928 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
20936 abuf
->written
= written
;
20941 /* cmaddhus: cmaddhus$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
20944 SEM_FN_NAME (frvbf
,cmaddhus
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
20946 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20947 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
20948 int UNUSED written
= 0;
20949 IADDR UNUSED pc
= abuf
->addr
;
20950 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
20952 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
20959 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
20960 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
20961 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
20962 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
20966 tmp_tmp
= ADDHI (tmp_argihi
, tmp_argjhi
);
20967 if (GTDI (tmp_tmp
, 65535)) {
20971 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
20972 written
|= (1 << 11);
20973 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
20975 frvbf_media_overflow (current_cpu
, 8);
20978 if (LTDI (tmp_tmp
, 0)) {
20982 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
20983 written
|= (1 << 11);
20984 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
20986 frvbf_media_overflow (current_cpu
, 8);
20990 UHI opval
= tmp_tmp
;
20991 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
20992 written
|= (1 << 11);
20993 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
21000 tmp_tmp
= ADDHI (tmp_argilo
, tmp_argjlo
);
21001 if (GTDI (tmp_tmp
, 65535)) {
21005 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
21006 written
|= (1 << 12);
21007 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
21009 frvbf_media_overflow (current_cpu
, 4);
21012 if (LTDI (tmp_tmp
, 0)) {
21016 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
21017 written
|= (1 << 12);
21018 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
21020 frvbf_media_overflow (current_cpu
, 4);
21024 UHI opval
= tmp_tmp
;
21025 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
21026 written
|= (1 << 12);
21027 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
21035 abuf
->written
= written
;
21040 /* cmsubhss: cmsubhss$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
21043 SEM_FN_NAME (frvbf
,cmsubhss
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
21045 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
21046 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
21047 int UNUSED written
= 0;
21048 IADDR UNUSED pc
= abuf
->addr
;
21049 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
21051 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
21058 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
21059 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
21060 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
21061 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
21065 tmp_tmp
= SUBHI (tmp_argihi
, tmp_argjhi
);
21066 if (GTDI (tmp_tmp
, 32767)) {
21070 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
21071 written
|= (1 << 11);
21072 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
21074 frvbf_media_overflow (current_cpu
, 8);
21077 if (LTDI (tmp_tmp
, -32768)) {
21080 UHI opval
= -32768;
21081 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
21082 written
|= (1 << 11);
21083 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
21085 frvbf_media_overflow (current_cpu
, 8);
21089 UHI opval
= tmp_tmp
;
21090 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
21091 written
|= (1 << 11);
21092 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
21099 tmp_tmp
= SUBHI (tmp_argilo
, tmp_argjlo
);
21100 if (GTDI (tmp_tmp
, 32767)) {
21104 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
21105 written
|= (1 << 12);
21106 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
21108 frvbf_media_overflow (current_cpu
, 4);
21111 if (LTDI (tmp_tmp
, -32768)) {
21114 UHI opval
= -32768;
21115 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
21116 written
|= (1 << 12);
21117 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
21119 frvbf_media_overflow (current_cpu
, 4);
21123 UHI opval
= tmp_tmp
;
21124 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
21125 written
|= (1 << 12);
21126 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
21134 abuf
->written
= written
;
21139 /* cmsubhus: cmsubhus$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
21142 SEM_FN_NAME (frvbf
,cmsubhus
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
21144 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
21145 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
21146 int UNUSED written
= 0;
21147 IADDR UNUSED pc
= abuf
->addr
;
21148 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
21150 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
21157 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
21158 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
21159 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
21160 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
21164 tmp_tmp
= SUBHI (tmp_argihi
, tmp_argjhi
);
21165 if (GTDI (tmp_tmp
, 65535)) {
21169 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
21170 written
|= (1 << 11);
21171 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
21173 frvbf_media_overflow (current_cpu
, 8);
21176 if (LTDI (tmp_tmp
, 0)) {
21180 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
21181 written
|= (1 << 11);
21182 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
21184 frvbf_media_overflow (current_cpu
, 8);
21188 UHI opval
= tmp_tmp
;
21189 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
21190 written
|= (1 << 11);
21191 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
21198 tmp_tmp
= SUBHI (tmp_argilo
, tmp_argjlo
);
21199 if (GTDI (tmp_tmp
, 65535)) {
21203 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
21204 written
|= (1 << 12);
21205 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
21207 frvbf_media_overflow (current_cpu
, 4);
21210 if (LTDI (tmp_tmp
, 0)) {
21214 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
21215 written
|= (1 << 12);
21216 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
21218 frvbf_media_overflow (current_cpu
, 4);
21222 UHI opval
= tmp_tmp
;
21223 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
21224 written
|= (1 << 12);
21225 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
21233 abuf
->written
= written
;
21238 /* mqaddhss: mqaddhss$pack $FRintieven,$FRintjeven,$FRintkeven */
21241 SEM_FN_NAME (frvbf
,mqaddhss
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
21243 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
21244 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
21245 int UNUSED written
= 0;
21246 IADDR UNUSED pc
= abuf
->addr
;
21247 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
21249 if (ORIF (ANDSI (FLD (f_FRi
), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj
), SUBSI (2, 1)), ANDSI (FLD (f_FRk
), SUBSI (2, 1))))) {
21250 frvbf_media_register_not_aligned (current_cpu
);
21258 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRk
)));
21259 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
21260 written
|= (1 << 14);
21261 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
21264 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
21265 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
21266 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
21267 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
21271 tmp_tmp
= ADDHI (tmp_argihi
, tmp_argjhi
);
21272 if (GTDI (tmp_tmp
, 32767)) {
21276 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
21277 written
|= (1 << 15);
21278 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
21280 frvbf_media_overflow (current_cpu
, 8);
21283 if (LTDI (tmp_tmp
, -32768)) {
21286 UHI opval
= -32768;
21287 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
21288 written
|= (1 << 15);
21289 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
21291 frvbf_media_overflow (current_cpu
, 8);
21295 UHI opval
= tmp_tmp
;
21296 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
21297 written
|= (1 << 15);
21298 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
21305 tmp_tmp
= ADDHI (tmp_argilo
, tmp_argjlo
);
21306 if (GTDI (tmp_tmp
, 32767)) {
21310 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
21311 written
|= (1 << 17);
21312 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
21314 frvbf_media_overflow (current_cpu
, 4);
21317 if (LTDI (tmp_tmp
, -32768)) {
21320 UHI opval
= -32768;
21321 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
21322 written
|= (1 << 17);
21323 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
21325 frvbf_media_overflow (current_cpu
, 4);
21329 UHI opval
= tmp_tmp
;
21330 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
21331 written
|= (1 << 17);
21332 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
21338 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
21339 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
21340 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
21341 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
21345 tmp_tmp
= ADDHI (tmp_argihi
, tmp_argjhi
);
21346 if (GTDI (tmp_tmp
, 32767)) {
21350 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (1)), opval
);
21351 written
|= (1 << 16);
21352 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
21354 frvbf_media_overflow (current_cpu
, 2);
21357 if (LTDI (tmp_tmp
, -32768)) {
21360 UHI opval
= -32768;
21361 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (1)), opval
);
21362 written
|= (1 << 16);
21363 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
21365 frvbf_media_overflow (current_cpu
, 2);
21369 UHI opval
= tmp_tmp
;
21370 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (1)), opval
);
21371 written
|= (1 << 16);
21372 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
21379 tmp_tmp
= ADDHI (tmp_argilo
, tmp_argjlo
);
21380 if (GTDI (tmp_tmp
, 32767)) {
21384 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (1)), opval
);
21385 written
|= (1 << 18);
21386 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
21388 frvbf_media_overflow (current_cpu
, 1);
21391 if (LTDI (tmp_tmp
, -32768)) {
21394 UHI opval
= -32768;
21395 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (1)), opval
);
21396 written
|= (1 << 18);
21397 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
21399 frvbf_media_overflow (current_cpu
, 1);
21403 UHI opval
= tmp_tmp
;
21404 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (1)), opval
);
21405 written
|= (1 << 18);
21406 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
21414 abuf
->written
= written
;
21419 /* mqaddhus: mqaddhus$pack $FRintieven,$FRintjeven,$FRintkeven */
21422 SEM_FN_NAME (frvbf
,mqaddhus
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
21424 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
21425 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
21426 int UNUSED written
= 0;
21427 IADDR UNUSED pc
= abuf
->addr
;
21428 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
21430 if (ORIF (ANDSI (FLD (f_FRi
), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj
), SUBSI (2, 1)), ANDSI (FLD (f_FRk
), SUBSI (2, 1))))) {
21431 frvbf_media_register_not_aligned (current_cpu
);
21439 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRk
)));
21440 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
21441 written
|= (1 << 14);
21442 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
21445 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
21446 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
21447 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
21448 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
21452 tmp_tmp
= ADDHI (tmp_argihi
, tmp_argjhi
);
21453 if (GTDI (tmp_tmp
, 65535)) {
21457 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
21458 written
|= (1 << 15);
21459 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
21461 frvbf_media_overflow (current_cpu
, 8);
21464 if (LTDI (tmp_tmp
, 0)) {
21468 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
21469 written
|= (1 << 15);
21470 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
21472 frvbf_media_overflow (current_cpu
, 8);
21476 UHI opval
= tmp_tmp
;
21477 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
21478 written
|= (1 << 15);
21479 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
21486 tmp_tmp
= ADDHI (tmp_argilo
, tmp_argjlo
);
21487 if (GTDI (tmp_tmp
, 65535)) {
21491 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
21492 written
|= (1 << 17);
21493 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
21495 frvbf_media_overflow (current_cpu
, 4);
21498 if (LTDI (tmp_tmp
, 0)) {
21502 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
21503 written
|= (1 << 17);
21504 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
21506 frvbf_media_overflow (current_cpu
, 4);
21510 UHI opval
= tmp_tmp
;
21511 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
21512 written
|= (1 << 17);
21513 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
21519 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
21520 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
21521 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
21522 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
21526 tmp_tmp
= ADDHI (tmp_argihi
, tmp_argjhi
);
21527 if (GTDI (tmp_tmp
, 65535)) {
21531 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (1)), opval
);
21532 written
|= (1 << 16);
21533 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
21535 frvbf_media_overflow (current_cpu
, 2);
21538 if (LTDI (tmp_tmp
, 0)) {
21542 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (1)), opval
);
21543 written
|= (1 << 16);
21544 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
21546 frvbf_media_overflow (current_cpu
, 2);
21550 UHI opval
= tmp_tmp
;
21551 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (1)), opval
);
21552 written
|= (1 << 16);
21553 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
21560 tmp_tmp
= ADDHI (tmp_argilo
, tmp_argjlo
);
21561 if (GTDI (tmp_tmp
, 65535)) {
21565 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (1)), opval
);
21566 written
|= (1 << 18);
21567 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
21569 frvbf_media_overflow (current_cpu
, 1);
21572 if (LTDI (tmp_tmp
, 0)) {
21576 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (1)), opval
);
21577 written
|= (1 << 18);
21578 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
21580 frvbf_media_overflow (current_cpu
, 1);
21584 UHI opval
= tmp_tmp
;
21585 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (1)), opval
);
21586 written
|= (1 << 18);
21587 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
21595 abuf
->written
= written
;
21600 /* mqsubhss: mqsubhss$pack $FRintieven,$FRintjeven,$FRintkeven */
21603 SEM_FN_NAME (frvbf
,mqsubhss
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
21605 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
21606 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
21607 int UNUSED written
= 0;
21608 IADDR UNUSED pc
= abuf
->addr
;
21609 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
21611 if (ORIF (ANDSI (FLD (f_FRi
), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj
), SUBSI (2, 1)), ANDSI (FLD (f_FRk
), SUBSI (2, 1))))) {
21612 frvbf_media_register_not_aligned (current_cpu
);
21620 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRk
)));
21621 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
21622 written
|= (1 << 14);
21623 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
21626 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
21627 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
21628 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
21629 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
21633 tmp_tmp
= SUBHI (tmp_argihi
, tmp_argjhi
);
21634 if (GTDI (tmp_tmp
, 32767)) {
21638 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
21639 written
|= (1 << 15);
21640 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
21642 frvbf_media_overflow (current_cpu
, 8);
21645 if (LTDI (tmp_tmp
, -32768)) {
21648 UHI opval
= -32768;
21649 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
21650 written
|= (1 << 15);
21651 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
21653 frvbf_media_overflow (current_cpu
, 8);
21657 UHI opval
= tmp_tmp
;
21658 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
21659 written
|= (1 << 15);
21660 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
21667 tmp_tmp
= SUBHI (tmp_argilo
, tmp_argjlo
);
21668 if (GTDI (tmp_tmp
, 32767)) {
21672 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
21673 written
|= (1 << 17);
21674 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
21676 frvbf_media_overflow (current_cpu
, 4);
21679 if (LTDI (tmp_tmp
, -32768)) {
21682 UHI opval
= -32768;
21683 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
21684 written
|= (1 << 17);
21685 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
21687 frvbf_media_overflow (current_cpu
, 4);
21691 UHI opval
= tmp_tmp
;
21692 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
21693 written
|= (1 << 17);
21694 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
21700 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
21701 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
21702 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
21703 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
21707 tmp_tmp
= SUBHI (tmp_argihi
, tmp_argjhi
);
21708 if (GTDI (tmp_tmp
, 32767)) {
21712 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (1)), opval
);
21713 written
|= (1 << 16);
21714 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
21716 frvbf_media_overflow (current_cpu
, 2);
21719 if (LTDI (tmp_tmp
, -32768)) {
21722 UHI opval
= -32768;
21723 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (1)), opval
);
21724 written
|= (1 << 16);
21725 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
21727 frvbf_media_overflow (current_cpu
, 2);
21731 UHI opval
= tmp_tmp
;
21732 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (1)), opval
);
21733 written
|= (1 << 16);
21734 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
21741 tmp_tmp
= SUBHI (tmp_argilo
, tmp_argjlo
);
21742 if (GTDI (tmp_tmp
, 32767)) {
21746 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (1)), opval
);
21747 written
|= (1 << 18);
21748 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
21750 frvbf_media_overflow (current_cpu
, 1);
21753 if (LTDI (tmp_tmp
, -32768)) {
21756 UHI opval
= -32768;
21757 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (1)), opval
);
21758 written
|= (1 << 18);
21759 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
21761 frvbf_media_overflow (current_cpu
, 1);
21765 UHI opval
= tmp_tmp
;
21766 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (1)), opval
);
21767 written
|= (1 << 18);
21768 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
21776 abuf
->written
= written
;
21781 /* mqsubhus: mqsubhus$pack $FRintieven,$FRintjeven,$FRintkeven */
21784 SEM_FN_NAME (frvbf
,mqsubhus
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
21786 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
21787 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
21788 int UNUSED written
= 0;
21789 IADDR UNUSED pc
= abuf
->addr
;
21790 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
21792 if (ORIF (ANDSI (FLD (f_FRi
), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj
), SUBSI (2, 1)), ANDSI (FLD (f_FRk
), SUBSI (2, 1))))) {
21793 frvbf_media_register_not_aligned (current_cpu
);
21801 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRk
)));
21802 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
21803 written
|= (1 << 14);
21804 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
21807 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
21808 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
21809 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
21810 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
21814 tmp_tmp
= SUBHI (tmp_argihi
, tmp_argjhi
);
21815 if (GTDI (tmp_tmp
, 65535)) {
21819 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
21820 written
|= (1 << 15);
21821 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
21823 frvbf_media_overflow (current_cpu
, 8);
21826 if (LTDI (tmp_tmp
, 0)) {
21830 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
21831 written
|= (1 << 15);
21832 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
21834 frvbf_media_overflow (current_cpu
, 8);
21838 UHI opval
= tmp_tmp
;
21839 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
21840 written
|= (1 << 15);
21841 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
21848 tmp_tmp
= SUBHI (tmp_argilo
, tmp_argjlo
);
21849 if (GTDI (tmp_tmp
, 65535)) {
21853 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
21854 written
|= (1 << 17);
21855 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
21857 frvbf_media_overflow (current_cpu
, 4);
21860 if (LTDI (tmp_tmp
, 0)) {
21864 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
21865 written
|= (1 << 17);
21866 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
21868 frvbf_media_overflow (current_cpu
, 4);
21872 UHI opval
= tmp_tmp
;
21873 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
21874 written
|= (1 << 17);
21875 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
21881 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
21882 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
21883 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
21884 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
21888 tmp_tmp
= SUBHI (tmp_argihi
, tmp_argjhi
);
21889 if (GTDI (tmp_tmp
, 65535)) {
21893 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (1)), opval
);
21894 written
|= (1 << 16);
21895 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
21897 frvbf_media_overflow (current_cpu
, 2);
21900 if (LTDI (tmp_tmp
, 0)) {
21904 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (1)), opval
);
21905 written
|= (1 << 16);
21906 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
21908 frvbf_media_overflow (current_cpu
, 2);
21912 UHI opval
= tmp_tmp
;
21913 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (1)), opval
);
21914 written
|= (1 << 16);
21915 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
21922 tmp_tmp
= SUBHI (tmp_argilo
, tmp_argjlo
);
21923 if (GTDI (tmp_tmp
, 65535)) {
21927 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (1)), opval
);
21928 written
|= (1 << 18);
21929 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
21931 frvbf_media_overflow (current_cpu
, 1);
21934 if (LTDI (tmp_tmp
, 0)) {
21938 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (1)), opval
);
21939 written
|= (1 << 18);
21940 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
21942 frvbf_media_overflow (current_cpu
, 1);
21946 UHI opval
= tmp_tmp
;
21947 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (1)), opval
);
21948 written
|= (1 << 18);
21949 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
21957 abuf
->written
= written
;
21962 /* cmqaddhss: cmqaddhss$pack $FRintieven,$FRintjeven,$FRintkeven,$CCi,$cond */
21965 SEM_FN_NAME (frvbf
,cmqaddhss
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
21967 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
21968 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
21969 int UNUSED written
= 0;
21970 IADDR UNUSED pc
= abuf
->addr
;
21971 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
21973 if (ORIF (ANDSI (FLD (f_FRi
), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj
), SUBSI (2, 1)), ANDSI (FLD (f_FRk
), SUBSI (2, 1))))) {
21974 frvbf_media_register_not_aligned (current_cpu
);
21976 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
21983 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRk
)));
21984 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
21985 written
|= (1 << 16);
21986 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
21989 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
21990 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
21991 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
21992 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
21996 tmp_tmp
= ADDHI (tmp_argihi
, tmp_argjhi
);
21997 if (GTDI (tmp_tmp
, 32767)) {
22001 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
22002 written
|= (1 << 17);
22003 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
22005 frvbf_media_overflow (current_cpu
, 8);
22008 if (LTDI (tmp_tmp
, -32768)) {
22011 UHI opval
= -32768;
22012 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
22013 written
|= (1 << 17);
22014 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
22016 frvbf_media_overflow (current_cpu
, 8);
22020 UHI opval
= tmp_tmp
;
22021 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
22022 written
|= (1 << 17);
22023 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
22030 tmp_tmp
= ADDHI (tmp_argilo
, tmp_argjlo
);
22031 if (GTDI (tmp_tmp
, 32767)) {
22035 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
22036 written
|= (1 << 19);
22037 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
22039 frvbf_media_overflow (current_cpu
, 4);
22042 if (LTDI (tmp_tmp
, -32768)) {
22045 UHI opval
= -32768;
22046 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
22047 written
|= (1 << 19);
22048 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
22050 frvbf_media_overflow (current_cpu
, 4);
22054 UHI opval
= tmp_tmp
;
22055 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
22056 written
|= (1 << 19);
22057 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
22063 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
22064 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
22065 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
22066 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
22070 tmp_tmp
= ADDHI (tmp_argihi
, tmp_argjhi
);
22071 if (GTDI (tmp_tmp
, 32767)) {
22075 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (1)), opval
);
22076 written
|= (1 << 18);
22077 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
22079 frvbf_media_overflow (current_cpu
, 2);
22082 if (LTDI (tmp_tmp
, -32768)) {
22085 UHI opval
= -32768;
22086 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (1)), opval
);
22087 written
|= (1 << 18);
22088 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
22090 frvbf_media_overflow (current_cpu
, 2);
22094 UHI opval
= tmp_tmp
;
22095 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (1)), opval
);
22096 written
|= (1 << 18);
22097 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
22104 tmp_tmp
= ADDHI (tmp_argilo
, tmp_argjlo
);
22105 if (GTDI (tmp_tmp
, 32767)) {
22109 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (1)), opval
);
22110 written
|= (1 << 20);
22111 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
22113 frvbf_media_overflow (current_cpu
, 1);
22116 if (LTDI (tmp_tmp
, -32768)) {
22119 UHI opval
= -32768;
22120 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (1)), opval
);
22121 written
|= (1 << 20);
22122 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
22124 frvbf_media_overflow (current_cpu
, 1);
22128 UHI opval
= tmp_tmp
;
22129 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (1)), opval
);
22130 written
|= (1 << 20);
22131 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
22140 abuf
->written
= written
;
22145 /* cmqaddhus: cmqaddhus$pack $FRintieven,$FRintjeven,$FRintkeven,$CCi,$cond */
22148 SEM_FN_NAME (frvbf
,cmqaddhus
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
22150 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
22151 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
22152 int UNUSED written
= 0;
22153 IADDR UNUSED pc
= abuf
->addr
;
22154 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
22156 if (ORIF (ANDSI (FLD (f_FRi
), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj
), SUBSI (2, 1)), ANDSI (FLD (f_FRk
), SUBSI (2, 1))))) {
22157 frvbf_media_register_not_aligned (current_cpu
);
22159 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
22166 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRk
)));
22167 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
22168 written
|= (1 << 16);
22169 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
22172 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
22173 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
22174 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
22175 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
22179 tmp_tmp
= ADDHI (tmp_argihi
, tmp_argjhi
);
22180 if (GTDI (tmp_tmp
, 65535)) {
22184 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
22185 written
|= (1 << 17);
22186 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
22188 frvbf_media_overflow (current_cpu
, 8);
22191 if (LTDI (tmp_tmp
, 0)) {
22195 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
22196 written
|= (1 << 17);
22197 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
22199 frvbf_media_overflow (current_cpu
, 8);
22203 UHI opval
= tmp_tmp
;
22204 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
22205 written
|= (1 << 17);
22206 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
22213 tmp_tmp
= ADDHI (tmp_argilo
, tmp_argjlo
);
22214 if (GTDI (tmp_tmp
, 65535)) {
22218 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
22219 written
|= (1 << 19);
22220 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
22222 frvbf_media_overflow (current_cpu
, 4);
22225 if (LTDI (tmp_tmp
, 0)) {
22229 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
22230 written
|= (1 << 19);
22231 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
22233 frvbf_media_overflow (current_cpu
, 4);
22237 UHI opval
= tmp_tmp
;
22238 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
22239 written
|= (1 << 19);
22240 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
22246 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
22247 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
22248 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
22249 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
22253 tmp_tmp
= ADDHI (tmp_argihi
, tmp_argjhi
);
22254 if (GTDI (tmp_tmp
, 65535)) {
22258 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (1)), opval
);
22259 written
|= (1 << 18);
22260 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
22262 frvbf_media_overflow (current_cpu
, 2);
22265 if (LTDI (tmp_tmp
, 0)) {
22269 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (1)), opval
);
22270 written
|= (1 << 18);
22271 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
22273 frvbf_media_overflow (current_cpu
, 2);
22277 UHI opval
= tmp_tmp
;
22278 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (1)), opval
);
22279 written
|= (1 << 18);
22280 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
22287 tmp_tmp
= ADDHI (tmp_argilo
, tmp_argjlo
);
22288 if (GTDI (tmp_tmp
, 65535)) {
22292 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (1)), opval
);
22293 written
|= (1 << 20);
22294 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
22296 frvbf_media_overflow (current_cpu
, 1);
22299 if (LTDI (tmp_tmp
, 0)) {
22303 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (1)), opval
);
22304 written
|= (1 << 20);
22305 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
22307 frvbf_media_overflow (current_cpu
, 1);
22311 UHI opval
= tmp_tmp
;
22312 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (1)), opval
);
22313 written
|= (1 << 20);
22314 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
22323 abuf
->written
= written
;
22328 /* cmqsubhss: cmqsubhss$pack $FRintieven,$FRintjeven,$FRintkeven,$CCi,$cond */
22331 SEM_FN_NAME (frvbf
,cmqsubhss
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
22333 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
22334 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
22335 int UNUSED written
= 0;
22336 IADDR UNUSED pc
= abuf
->addr
;
22337 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
22339 if (ORIF (ANDSI (FLD (f_FRi
), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj
), SUBSI (2, 1)), ANDSI (FLD (f_FRk
), SUBSI (2, 1))))) {
22340 frvbf_media_register_not_aligned (current_cpu
);
22342 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
22349 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRk
)));
22350 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
22351 written
|= (1 << 16);
22352 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
22355 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
22356 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
22357 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
22358 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
22362 tmp_tmp
= SUBHI (tmp_argihi
, tmp_argjhi
);
22363 if (GTDI (tmp_tmp
, 32767)) {
22367 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
22368 written
|= (1 << 17);
22369 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
22371 frvbf_media_overflow (current_cpu
, 8);
22374 if (LTDI (tmp_tmp
, -32768)) {
22377 UHI opval
= -32768;
22378 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
22379 written
|= (1 << 17);
22380 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
22382 frvbf_media_overflow (current_cpu
, 8);
22386 UHI opval
= tmp_tmp
;
22387 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
22388 written
|= (1 << 17);
22389 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
22396 tmp_tmp
= SUBHI (tmp_argilo
, tmp_argjlo
);
22397 if (GTDI (tmp_tmp
, 32767)) {
22401 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
22402 written
|= (1 << 19);
22403 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
22405 frvbf_media_overflow (current_cpu
, 4);
22408 if (LTDI (tmp_tmp
, -32768)) {
22411 UHI opval
= -32768;
22412 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
22413 written
|= (1 << 19);
22414 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
22416 frvbf_media_overflow (current_cpu
, 4);
22420 UHI opval
= tmp_tmp
;
22421 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
22422 written
|= (1 << 19);
22423 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
22429 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
22430 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
22431 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
22432 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
22436 tmp_tmp
= SUBHI (tmp_argihi
, tmp_argjhi
);
22437 if (GTDI (tmp_tmp
, 32767)) {
22441 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (1)), opval
);
22442 written
|= (1 << 18);
22443 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
22445 frvbf_media_overflow (current_cpu
, 2);
22448 if (LTDI (tmp_tmp
, -32768)) {
22451 UHI opval
= -32768;
22452 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (1)), opval
);
22453 written
|= (1 << 18);
22454 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
22456 frvbf_media_overflow (current_cpu
, 2);
22460 UHI opval
= tmp_tmp
;
22461 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (1)), opval
);
22462 written
|= (1 << 18);
22463 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
22470 tmp_tmp
= SUBHI (tmp_argilo
, tmp_argjlo
);
22471 if (GTDI (tmp_tmp
, 32767)) {
22475 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (1)), opval
);
22476 written
|= (1 << 20);
22477 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
22479 frvbf_media_overflow (current_cpu
, 1);
22482 if (LTDI (tmp_tmp
, -32768)) {
22485 UHI opval
= -32768;
22486 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (1)), opval
);
22487 written
|= (1 << 20);
22488 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
22490 frvbf_media_overflow (current_cpu
, 1);
22494 UHI opval
= tmp_tmp
;
22495 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (1)), opval
);
22496 written
|= (1 << 20);
22497 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
22506 abuf
->written
= written
;
22511 /* cmqsubhus: cmqsubhus$pack $FRintieven,$FRintjeven,$FRintkeven,$CCi,$cond */
22514 SEM_FN_NAME (frvbf
,cmqsubhus
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
22516 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
22517 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
22518 int UNUSED written
= 0;
22519 IADDR UNUSED pc
= abuf
->addr
;
22520 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
22522 if (ORIF (ANDSI (FLD (f_FRi
), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj
), SUBSI (2, 1)), ANDSI (FLD (f_FRk
), SUBSI (2, 1))))) {
22523 frvbf_media_register_not_aligned (current_cpu
);
22525 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
22532 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRk
)));
22533 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
22534 written
|= (1 << 16);
22535 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
22538 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
22539 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
22540 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
22541 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
22545 tmp_tmp
= SUBHI (tmp_argihi
, tmp_argjhi
);
22546 if (GTDI (tmp_tmp
, 65535)) {
22550 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
22551 written
|= (1 << 17);
22552 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
22554 frvbf_media_overflow (current_cpu
, 8);
22557 if (LTDI (tmp_tmp
, 0)) {
22561 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
22562 written
|= (1 << 17);
22563 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
22565 frvbf_media_overflow (current_cpu
, 8);
22569 UHI opval
= tmp_tmp
;
22570 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
22571 written
|= (1 << 17);
22572 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
22579 tmp_tmp
= SUBHI (tmp_argilo
, tmp_argjlo
);
22580 if (GTDI (tmp_tmp
, 65535)) {
22584 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
22585 written
|= (1 << 19);
22586 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
22588 frvbf_media_overflow (current_cpu
, 4);
22591 if (LTDI (tmp_tmp
, 0)) {
22595 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
22596 written
|= (1 << 19);
22597 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
22599 frvbf_media_overflow (current_cpu
, 4);
22603 UHI opval
= tmp_tmp
;
22604 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
22605 written
|= (1 << 19);
22606 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
22612 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
22613 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
22614 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
22615 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
22619 tmp_tmp
= SUBHI (tmp_argihi
, tmp_argjhi
);
22620 if (GTDI (tmp_tmp
, 65535)) {
22624 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (1)), opval
);
22625 written
|= (1 << 18);
22626 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
22628 frvbf_media_overflow (current_cpu
, 2);
22631 if (LTDI (tmp_tmp
, 0)) {
22635 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (1)), opval
);
22636 written
|= (1 << 18);
22637 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
22639 frvbf_media_overflow (current_cpu
, 2);
22643 UHI opval
= tmp_tmp
;
22644 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (1)), opval
);
22645 written
|= (1 << 18);
22646 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
22653 tmp_tmp
= SUBHI (tmp_argilo
, tmp_argjlo
);
22654 if (GTDI (tmp_tmp
, 65535)) {
22658 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (1)), opval
);
22659 written
|= (1 << 20);
22660 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
22662 frvbf_media_overflow (current_cpu
, 1);
22665 if (LTDI (tmp_tmp
, 0)) {
22669 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (1)), opval
);
22670 written
|= (1 << 20);
22671 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
22673 frvbf_media_overflow (current_cpu
, 1);
22677 UHI opval
= tmp_tmp
;
22678 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (1)), opval
);
22679 written
|= (1 << 20);
22680 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
22689 abuf
->written
= written
;
22694 /* maddaccs: maddaccs$pack $ACC40Si,$ACC40Sk */
22697 SEM_FN_NAME (frvbf
,maddaccs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
22699 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
22700 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
22701 int UNUSED written
= 0;
22702 IADDR UNUSED pc
= abuf
->addr
;
22703 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
22705 if (ANDSI (FLD (f_ACC40Si
), SUBSI (2, 1))) {
22706 frvbf_media_acc_not_aligned (current_cpu
);
22710 tmp_tmp
= ADDDI (GET_H_ACC40S (FLD (f_ACC40Si
)), GET_H_ACC40S (((FLD (f_ACC40Si
)) + (1))));
22711 if (GTDI (tmp_tmp
, 549755813887)) {
22714 DI opval
= 549755813887;
22715 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
22716 written
|= (1 << 3);
22717 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
22719 frvbf_media_overflow (current_cpu
, 8);
22722 if (LTDI (tmp_tmp
, INVDI (549755813887))) {
22725 DI opval
= INVDI (549755813887);
22726 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
22727 written
|= (1 << 3);
22728 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
22730 frvbf_media_overflow (current_cpu
, 8);
22734 DI opval
= tmp_tmp
;
22735 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
22736 written
|= (1 << 3);
22737 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
22744 abuf
->written
= written
;
22749 /* msubaccs: msubaccs$pack $ACC40Si,$ACC40Sk */
22752 SEM_FN_NAME (frvbf
,msubaccs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
22754 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
22755 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
22756 int UNUSED written
= 0;
22757 IADDR UNUSED pc
= abuf
->addr
;
22758 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
22760 if (ANDSI (FLD (f_ACC40Si
), SUBSI (2, 1))) {
22761 frvbf_media_acc_not_aligned (current_cpu
);
22765 tmp_tmp
= SUBDI (GET_H_ACC40S (FLD (f_ACC40Si
)), GET_H_ACC40S (((FLD (f_ACC40Si
)) + (1))));
22766 if (GTDI (tmp_tmp
, 549755813887)) {
22769 DI opval
= 549755813887;
22770 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
22771 written
|= (1 << 3);
22772 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
22774 frvbf_media_overflow (current_cpu
, 8);
22777 if (LTDI (tmp_tmp
, INVDI (549755813887))) {
22780 DI opval
= INVDI (549755813887);
22781 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
22782 written
|= (1 << 3);
22783 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
22785 frvbf_media_overflow (current_cpu
, 8);
22789 DI opval
= tmp_tmp
;
22790 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
22791 written
|= (1 << 3);
22792 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
22799 abuf
->written
= written
;
22804 /* mdaddaccs: mdaddaccs$pack $ACC40Si,$ACC40Sk */
22807 SEM_FN_NAME (frvbf
,mdaddaccs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
22809 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
22810 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
22811 int UNUSED written
= 0;
22812 IADDR UNUSED pc
= abuf
->addr
;
22813 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
22815 if (ANDSI (FLD (f_ACC40Si
), SUBSI (4, 1))) {
22816 frvbf_media_acc_not_aligned (current_cpu
);
22818 if (ANDSI (FLD (f_ACC40Sk
), SUBSI (2, 1))) {
22819 frvbf_media_acc_not_aligned (current_cpu
);
22824 tmp_tmp
= ADDDI (GET_H_ACC40S (FLD (f_ACC40Si
)), GET_H_ACC40S (((FLD (f_ACC40Si
)) + (1))));
22825 if (GTDI (tmp_tmp
, 549755813887)) {
22828 DI opval
= 549755813887;
22829 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
22830 written
|= (1 << 6);
22831 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
22833 frvbf_media_overflow (current_cpu
, 8);
22836 if (LTDI (tmp_tmp
, INVDI (549755813887))) {
22839 DI opval
= INVDI (549755813887);
22840 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
22841 written
|= (1 << 6);
22842 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
22844 frvbf_media_overflow (current_cpu
, 8);
22848 DI opval
= tmp_tmp
;
22849 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
22850 written
|= (1 << 6);
22851 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
22858 tmp_tmp
= ADDDI (GET_H_ACC40S (((FLD (f_ACC40Si
)) + (2))), GET_H_ACC40S (((FLD (f_ACC40Si
)) + (3))));
22859 if (GTDI (tmp_tmp
, 549755813887)) {
22862 DI opval
= 549755813887;
22863 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (1)), opval
);
22864 written
|= (1 << 7);
22865 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
22867 frvbf_media_overflow (current_cpu
, 4);
22870 if (LTDI (tmp_tmp
, INVDI (549755813887))) {
22873 DI opval
= INVDI (549755813887);
22874 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (1)), opval
);
22875 written
|= (1 << 7);
22876 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
22878 frvbf_media_overflow (current_cpu
, 4);
22882 DI opval
= tmp_tmp
;
22883 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (1)), opval
);
22884 written
|= (1 << 7);
22885 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
22894 abuf
->written
= written
;
22899 /* mdsubaccs: mdsubaccs$pack $ACC40Si,$ACC40Sk */
22902 SEM_FN_NAME (frvbf
,mdsubaccs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
22904 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
22905 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
22906 int UNUSED written
= 0;
22907 IADDR UNUSED pc
= abuf
->addr
;
22908 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
22910 if (ANDSI (FLD (f_ACC40Si
), SUBSI (4, 1))) {
22911 frvbf_media_acc_not_aligned (current_cpu
);
22913 if (ANDSI (FLD (f_ACC40Sk
), SUBSI (2, 1))) {
22914 frvbf_media_acc_not_aligned (current_cpu
);
22919 tmp_tmp
= SUBDI (GET_H_ACC40S (FLD (f_ACC40Si
)), GET_H_ACC40S (((FLD (f_ACC40Si
)) + (1))));
22920 if (GTDI (tmp_tmp
, 549755813887)) {
22923 DI opval
= 549755813887;
22924 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
22925 written
|= (1 << 6);
22926 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
22928 frvbf_media_overflow (current_cpu
, 8);
22931 if (LTDI (tmp_tmp
, INVDI (549755813887))) {
22934 DI opval
= INVDI (549755813887);
22935 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
22936 written
|= (1 << 6);
22937 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
22939 frvbf_media_overflow (current_cpu
, 8);
22943 DI opval
= tmp_tmp
;
22944 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
22945 written
|= (1 << 6);
22946 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
22953 tmp_tmp
= SUBDI (GET_H_ACC40S (((FLD (f_ACC40Si
)) + (2))), GET_H_ACC40S (((FLD (f_ACC40Si
)) + (3))));
22954 if (GTDI (tmp_tmp
, 549755813887)) {
22957 DI opval
= 549755813887;
22958 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (1)), opval
);
22959 written
|= (1 << 7);
22960 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
22962 frvbf_media_overflow (current_cpu
, 4);
22965 if (LTDI (tmp_tmp
, INVDI (549755813887))) {
22968 DI opval
= INVDI (549755813887);
22969 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (1)), opval
);
22970 written
|= (1 << 7);
22971 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
22973 frvbf_media_overflow (current_cpu
, 4);
22977 DI opval
= tmp_tmp
;
22978 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (1)), opval
);
22979 written
|= (1 << 7);
22980 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
22989 abuf
->written
= written
;
22994 /* masaccs: masaccs$pack $ACC40Si,$ACC40Sk */
22997 SEM_FN_NAME (frvbf
,masaccs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
22999 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
23000 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
23001 int UNUSED written
= 0;
23002 IADDR UNUSED pc
= abuf
->addr
;
23003 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
23005 if (ANDSI (FLD (f_ACC40Si
), SUBSI (2, 1))) {
23006 frvbf_media_acc_not_aligned (current_cpu
);
23008 if (ANDSI (FLD (f_ACC40Sk
), SUBSI (2, 1))) {
23009 frvbf_media_acc_not_aligned (current_cpu
);
23014 tmp_tmp
= ADDDI (GET_H_ACC40S (FLD (f_ACC40Si
)), GET_H_ACC40S (((FLD (f_ACC40Si
)) + (1))));
23015 if (GTDI (tmp_tmp
, 549755813887)) {
23018 DI opval
= 549755813887;
23019 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
23020 written
|= (1 << 4);
23021 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23023 frvbf_media_overflow (current_cpu
, 8);
23026 if (LTDI (tmp_tmp
, INVDI (549755813887))) {
23029 DI opval
= INVDI (549755813887);
23030 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
23031 written
|= (1 << 4);
23032 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23034 frvbf_media_overflow (current_cpu
, 8);
23038 DI opval
= tmp_tmp
;
23039 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
23040 written
|= (1 << 4);
23041 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23048 tmp_tmp
= SUBDI (GET_H_ACC40S (FLD (f_ACC40Si
)), GET_H_ACC40S (((FLD (f_ACC40Si
)) + (1))));
23049 if (GTDI (tmp_tmp
, 549755813887)) {
23052 DI opval
= 549755813887;
23053 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (1)), opval
);
23054 written
|= (1 << 5);
23055 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23057 frvbf_media_overflow (current_cpu
, 4);
23060 if (LTDI (tmp_tmp
, INVDI (549755813887))) {
23063 DI opval
= INVDI (549755813887);
23064 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (1)), opval
);
23065 written
|= (1 << 5);
23066 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23068 frvbf_media_overflow (current_cpu
, 4);
23072 DI opval
= tmp_tmp
;
23073 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (1)), opval
);
23074 written
|= (1 << 5);
23075 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23084 abuf
->written
= written
;
23089 /* mdasaccs: mdasaccs$pack $ACC40Si,$ACC40Sk */
23092 SEM_FN_NAME (frvbf
,mdasaccs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
23094 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
23095 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
23096 int UNUSED written
= 0;
23097 IADDR UNUSED pc
= abuf
->addr
;
23098 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
23100 if (ANDSI (FLD (f_ACC40Si
), SUBSI (4, 1))) {
23101 frvbf_media_acc_not_aligned (current_cpu
);
23103 if (ANDSI (FLD (f_ACC40Sk
), SUBSI (4, 1))) {
23104 frvbf_media_acc_not_aligned (current_cpu
);
23109 tmp_tmp
= ADDDI (GET_H_ACC40S (FLD (f_ACC40Si
)), GET_H_ACC40S (((FLD (f_ACC40Si
)) + (1))));
23110 if (GTDI (tmp_tmp
, 549755813887)) {
23113 DI opval
= 549755813887;
23114 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
23115 written
|= (1 << 6);
23116 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23118 frvbf_media_overflow (current_cpu
, 8);
23121 if (LTDI (tmp_tmp
, INVDI (549755813887))) {
23124 DI opval
= INVDI (549755813887);
23125 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
23126 written
|= (1 << 6);
23127 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23129 frvbf_media_overflow (current_cpu
, 8);
23133 DI opval
= tmp_tmp
;
23134 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
23135 written
|= (1 << 6);
23136 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23143 tmp_tmp
= SUBDI (GET_H_ACC40S (FLD (f_ACC40Si
)), GET_H_ACC40S (((FLD (f_ACC40Si
)) + (1))));
23144 if (GTDI (tmp_tmp
, 549755813887)) {
23147 DI opval
= 549755813887;
23148 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (1)), opval
);
23149 written
|= (1 << 7);
23150 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23152 frvbf_media_overflow (current_cpu
, 4);
23155 if (LTDI (tmp_tmp
, INVDI (549755813887))) {
23158 DI opval
= INVDI (549755813887);
23159 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (1)), opval
);
23160 written
|= (1 << 7);
23161 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23163 frvbf_media_overflow (current_cpu
, 4);
23167 DI opval
= tmp_tmp
;
23168 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (1)), opval
);
23169 written
|= (1 << 7);
23170 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23177 tmp_tmp
= ADDDI (GET_H_ACC40S (((FLD (f_ACC40Si
)) + (2))), GET_H_ACC40S (((FLD (f_ACC40Si
)) + (3))));
23178 if (GTDI (tmp_tmp
, 549755813887)) {
23181 DI opval
= 549755813887;
23182 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (2)), opval
);
23183 written
|= (1 << 8);
23184 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23186 frvbf_media_overflow (current_cpu
, 2);
23189 if (LTDI (tmp_tmp
, INVDI (549755813887))) {
23192 DI opval
= INVDI (549755813887);
23193 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (2)), opval
);
23194 written
|= (1 << 8);
23195 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23197 frvbf_media_overflow (current_cpu
, 2);
23201 DI opval
= tmp_tmp
;
23202 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (2)), opval
);
23203 written
|= (1 << 8);
23204 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23211 tmp_tmp
= SUBDI (GET_H_ACC40S (((FLD (f_ACC40Si
)) + (2))), GET_H_ACC40S (((FLD (f_ACC40Si
)) + (3))));
23212 if (GTDI (tmp_tmp
, 549755813887)) {
23215 DI opval
= 549755813887;
23216 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (3)), opval
);
23217 written
|= (1 << 9);
23218 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23220 frvbf_media_overflow (current_cpu
, 1);
23223 if (LTDI (tmp_tmp
, INVDI (549755813887))) {
23226 DI opval
= INVDI (549755813887);
23227 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (3)), opval
);
23228 written
|= (1 << 9);
23229 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23231 frvbf_media_overflow (current_cpu
, 1);
23235 DI opval
= tmp_tmp
;
23236 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (3)), opval
);
23237 written
|= (1 << 9);
23238 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23247 abuf
->written
= written
;
23252 /* mmulhs: mmulhs$pack $FRinti,$FRintj,$ACC40Sk */
23255 SEM_FN_NAME (frvbf
,mmulhs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
23257 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23258 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
23259 int UNUSED written
= 0;
23260 IADDR UNUSED pc
= abuf
->addr
;
23261 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
23263 if (ANDSI (FLD (f_ACC40Sk
), SUBSI (2, 1))) {
23264 frvbf_media_acc_not_aligned (current_cpu
);
23272 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
23273 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
23274 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
23275 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
23278 DI opval
= MULDI (EXTHIDI (tmp_argihi
), EXTHIDI (tmp_argjhi
));
23279 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
23280 written
|= (1 << 9);
23281 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23284 DI opval
= MULDI (EXTHIDI (tmp_argilo
), EXTHIDI (tmp_argjlo
));
23285 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (1)), opval
);
23286 written
|= (1 << 10);
23287 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23292 abuf
->written
= written
;
23297 /* mmulhu: mmulhu$pack $FRinti,$FRintj,$ACC40Sk */
23300 SEM_FN_NAME (frvbf
,mmulhu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
23302 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23303 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
23304 int UNUSED written
= 0;
23305 IADDR UNUSED pc
= abuf
->addr
;
23306 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
23308 if (ANDSI (FLD (f_ACC40Sk
), SUBSI (2, 1))) {
23309 frvbf_media_acc_not_aligned (current_cpu
);
23317 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
23318 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
23319 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
23320 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
23323 DI opval
= MULDI (ZEXTHIDI (tmp_argihi
), ZEXTHIDI (tmp_argjhi
));
23324 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
23325 written
|= (1 << 9);
23326 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23329 DI opval
= MULDI (ZEXTHIDI (tmp_argilo
), ZEXTHIDI (tmp_argjlo
));
23330 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (1)), opval
);
23331 written
|= (1 << 10);
23332 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23337 abuf
->written
= written
;
23342 /* mmulxhs: mmulxhs$pack $FRinti,$FRintj,$ACC40Sk */
23345 SEM_FN_NAME (frvbf
,mmulxhs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
23347 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23348 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
23349 int UNUSED written
= 0;
23350 IADDR UNUSED pc
= abuf
->addr
;
23351 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
23353 if (ANDSI (FLD (f_ACC40Sk
), SUBSI (2, 1))) {
23354 frvbf_media_acc_not_aligned (current_cpu
);
23362 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
23363 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
23364 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
23365 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
23368 DI opval
= MULDI (EXTHIDI (tmp_argihi
), EXTHIDI (tmp_argjlo
));
23369 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
23370 written
|= (1 << 9);
23371 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23374 DI opval
= MULDI (EXTHIDI (tmp_argilo
), EXTHIDI (tmp_argjhi
));
23375 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (1)), opval
);
23376 written
|= (1 << 10);
23377 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23382 abuf
->written
= written
;
23387 /* mmulxhu: mmulxhu$pack $FRinti,$FRintj,$ACC40Sk */
23390 SEM_FN_NAME (frvbf
,mmulxhu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
23392 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23393 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
23394 int UNUSED written
= 0;
23395 IADDR UNUSED pc
= abuf
->addr
;
23396 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
23398 if (ANDSI (FLD (f_ACC40Sk
), SUBSI (2, 1))) {
23399 frvbf_media_acc_not_aligned (current_cpu
);
23407 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
23408 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
23409 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
23410 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
23413 DI opval
= MULDI (ZEXTHIDI (tmp_argihi
), ZEXTHIDI (tmp_argjlo
));
23414 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
23415 written
|= (1 << 9);
23416 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23419 DI opval
= MULDI (ZEXTHIDI (tmp_argilo
), ZEXTHIDI (tmp_argjhi
));
23420 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (1)), opval
);
23421 written
|= (1 << 10);
23422 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23427 abuf
->written
= written
;
23432 /* cmmulhs: cmmulhs$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
23435 SEM_FN_NAME (frvbf
,cmmulhs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
23437 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23438 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
23439 int UNUSED written
= 0;
23440 IADDR UNUSED pc
= abuf
->addr
;
23441 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
23443 if (ANDSI (FLD (f_ACC40Sk
), SUBSI (2, 1))) {
23444 frvbf_media_acc_not_aligned (current_cpu
);
23446 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
23453 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
23454 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
23455 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
23456 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
23459 DI opval
= MULDI (EXTHIDI (tmp_argihi
), EXTHIDI (tmp_argjhi
));
23460 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
23461 written
|= (1 << 11);
23462 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23465 DI opval
= MULDI (EXTHIDI (tmp_argilo
), EXTHIDI (tmp_argjlo
));
23466 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (1)), opval
);
23467 written
|= (1 << 12);
23468 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23474 abuf
->written
= written
;
23479 /* cmmulhu: cmmulhu$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
23482 SEM_FN_NAME (frvbf
,cmmulhu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
23484 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23485 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
23486 int UNUSED written
= 0;
23487 IADDR UNUSED pc
= abuf
->addr
;
23488 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
23490 if (ANDSI (FLD (f_ACC40Sk
), SUBSI (2, 1))) {
23491 frvbf_media_acc_not_aligned (current_cpu
);
23493 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
23500 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
23501 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
23502 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
23503 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
23506 DI opval
= MULDI (ZEXTHIDI (tmp_argihi
), ZEXTHIDI (tmp_argjhi
));
23507 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
23508 written
|= (1 << 11);
23509 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23512 DI opval
= MULDI (ZEXTHIDI (tmp_argilo
), ZEXTHIDI (tmp_argjlo
));
23513 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (1)), opval
);
23514 written
|= (1 << 12);
23515 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23521 abuf
->written
= written
;
23526 /* mqmulhs: mqmulhs$pack $FRintieven,$FRintjeven,$ACC40Sk */
23529 SEM_FN_NAME (frvbf
,mqmulhs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
23531 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
23532 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
23533 int UNUSED written
= 0;
23534 IADDR UNUSED pc
= abuf
->addr
;
23535 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
23537 if (ANDSI (FLD (f_ACC40Sk
), SUBSI (4, 1))) {
23538 frvbf_media_acc_not_aligned (current_cpu
);
23540 if (ORIF (ANDSI (FLD (f_FRi
), SUBSI (2, 1)), ANDSI (FLD (f_FRj
), SUBSI (2, 1)))) {
23541 frvbf_media_register_not_aligned (current_cpu
);
23549 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
23550 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
23551 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
23552 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
23555 DI opval
= MULDI (EXTHIDI (tmp_argihi
), EXTHIDI (tmp_argjhi
));
23556 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
23557 written
|= (1 << 13);
23558 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23561 DI opval
= MULDI (EXTHIDI (tmp_argilo
), EXTHIDI (tmp_argjlo
));
23562 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (1)), opval
);
23563 written
|= (1 << 14);
23564 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23567 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
23568 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
23569 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
23570 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
23573 DI opval
= MULDI (EXTHIDI (tmp_argihi
), EXTHIDI (tmp_argjhi
));
23574 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (2)), opval
);
23575 written
|= (1 << 15);
23576 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23579 DI opval
= MULDI (EXTHIDI (tmp_argilo
), EXTHIDI (tmp_argjlo
));
23580 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (3)), opval
);
23581 written
|= (1 << 16);
23582 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23588 abuf
->written
= written
;
23593 /* mqmulhu: mqmulhu$pack $FRintieven,$FRintjeven,$ACC40Sk */
23596 SEM_FN_NAME (frvbf
,mqmulhu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
23598 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
23599 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
23600 int UNUSED written
= 0;
23601 IADDR UNUSED pc
= abuf
->addr
;
23602 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
23604 if (ANDSI (FLD (f_ACC40Sk
), SUBSI (4, 1))) {
23605 frvbf_media_acc_not_aligned (current_cpu
);
23607 if (ORIF (ANDSI (FLD (f_FRi
), SUBSI (2, 1)), ANDSI (FLD (f_FRj
), SUBSI (2, 1)))) {
23608 frvbf_media_register_not_aligned (current_cpu
);
23616 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
23617 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
23618 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
23619 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
23622 DI opval
= MULDI (ZEXTHIDI (tmp_argihi
), ZEXTHIDI (tmp_argjhi
));
23623 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
23624 written
|= (1 << 13);
23625 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23628 DI opval
= MULDI (ZEXTHIDI (tmp_argilo
), ZEXTHIDI (tmp_argjlo
));
23629 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (1)), opval
);
23630 written
|= (1 << 14);
23631 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23634 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
23635 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
23636 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
23637 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
23640 DI opval
= MULDI (ZEXTHIDI (tmp_argihi
), ZEXTHIDI (tmp_argjhi
));
23641 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (2)), opval
);
23642 written
|= (1 << 15);
23643 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23646 DI opval
= MULDI (ZEXTHIDI (tmp_argilo
), ZEXTHIDI (tmp_argjlo
));
23647 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (3)), opval
);
23648 written
|= (1 << 16);
23649 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23655 abuf
->written
= written
;
23660 /* mqmulxhs: mqmulxhs$pack $FRintieven,$FRintjeven,$ACC40Sk */
23663 SEM_FN_NAME (frvbf
,mqmulxhs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
23665 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
23666 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
23667 int UNUSED written
= 0;
23668 IADDR UNUSED pc
= abuf
->addr
;
23669 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
23671 if (ANDSI (FLD (f_ACC40Sk
), SUBSI (4, 1))) {
23672 frvbf_media_acc_not_aligned (current_cpu
);
23674 if (ORIF (ANDSI (FLD (f_FRi
), SUBSI (2, 1)), ANDSI (FLD (f_FRj
), SUBSI (2, 1)))) {
23675 frvbf_media_register_not_aligned (current_cpu
);
23683 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
23684 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
23685 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
23686 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
23689 DI opval
= MULDI (EXTHIDI (tmp_argihi
), EXTHIDI (tmp_argjlo
));
23690 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
23691 written
|= (1 << 13);
23692 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23695 DI opval
= MULDI (EXTHIDI (tmp_argilo
), EXTHIDI (tmp_argjhi
));
23696 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (1)), opval
);
23697 written
|= (1 << 14);
23698 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23701 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
23702 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
23703 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
23704 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
23707 DI opval
= MULDI (EXTHIDI (tmp_argihi
), EXTHIDI (tmp_argjlo
));
23708 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (2)), opval
);
23709 written
|= (1 << 15);
23710 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23713 DI opval
= MULDI (EXTHIDI (tmp_argilo
), EXTHIDI (tmp_argjhi
));
23714 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (3)), opval
);
23715 written
|= (1 << 16);
23716 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23722 abuf
->written
= written
;
23727 /* mqmulxhu: mqmulxhu$pack $FRintieven,$FRintjeven,$ACC40Sk */
23730 SEM_FN_NAME (frvbf
,mqmulxhu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
23732 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
23733 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
23734 int UNUSED written
= 0;
23735 IADDR UNUSED pc
= abuf
->addr
;
23736 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
23738 if (ANDSI (FLD (f_ACC40Sk
), SUBSI (4, 1))) {
23739 frvbf_media_acc_not_aligned (current_cpu
);
23741 if (ORIF (ANDSI (FLD (f_FRi
), SUBSI (2, 1)), ANDSI (FLD (f_FRj
), SUBSI (2, 1)))) {
23742 frvbf_media_register_not_aligned (current_cpu
);
23750 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
23751 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
23752 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
23753 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
23756 DI opval
= MULDI (ZEXTHIDI (tmp_argihi
), ZEXTHIDI (tmp_argjlo
));
23757 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
23758 written
|= (1 << 13);
23759 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23762 DI opval
= MULDI (ZEXTHIDI (tmp_argilo
), ZEXTHIDI (tmp_argjhi
));
23763 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (1)), opval
);
23764 written
|= (1 << 14);
23765 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23768 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
23769 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
23770 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
23771 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
23774 DI opval
= MULDI (ZEXTHIDI (tmp_argihi
), ZEXTHIDI (tmp_argjlo
));
23775 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (2)), opval
);
23776 written
|= (1 << 15);
23777 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23780 DI opval
= MULDI (ZEXTHIDI (tmp_argilo
), ZEXTHIDI (tmp_argjhi
));
23781 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (3)), opval
);
23782 written
|= (1 << 16);
23783 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23789 abuf
->written
= written
;
23794 /* cmqmulhs: cmqmulhs$pack $FRintieven,$FRintjeven,$ACC40Sk,$CCi,$cond */
23797 SEM_FN_NAME (frvbf
,cmqmulhs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
23799 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
23800 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
23801 int UNUSED written
= 0;
23802 IADDR UNUSED pc
= abuf
->addr
;
23803 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
23805 if (ANDSI (FLD (f_ACC40Sk
), SUBSI (4, 1))) {
23806 frvbf_media_acc_not_aligned (current_cpu
);
23808 if (ORIF (ANDSI (FLD (f_FRi
), SUBSI (2, 1)), ANDSI (FLD (f_FRj
), SUBSI (2, 1)))) {
23809 frvbf_media_register_not_aligned (current_cpu
);
23811 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
23818 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
23819 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
23820 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
23821 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
23824 DI opval
= MULDI (EXTHIDI (tmp_argihi
), EXTHIDI (tmp_argjhi
));
23825 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
23826 written
|= (1 << 15);
23827 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23830 DI opval
= MULDI (EXTHIDI (tmp_argilo
), EXTHIDI (tmp_argjlo
));
23831 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (1)), opval
);
23832 written
|= (1 << 16);
23833 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23836 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
23837 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
23838 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
23839 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
23842 DI opval
= MULDI (EXTHIDI (tmp_argihi
), EXTHIDI (tmp_argjhi
));
23843 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (2)), opval
);
23844 written
|= (1 << 17);
23845 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23848 DI opval
= MULDI (EXTHIDI (tmp_argilo
), EXTHIDI (tmp_argjlo
));
23849 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (3)), opval
);
23850 written
|= (1 << 18);
23851 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23858 abuf
->written
= written
;
23863 /* cmqmulhu: cmqmulhu$pack $FRintieven,$FRintjeven,$ACC40Sk,$CCi,$cond */
23866 SEM_FN_NAME (frvbf
,cmqmulhu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
23868 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
23869 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
23870 int UNUSED written
= 0;
23871 IADDR UNUSED pc
= abuf
->addr
;
23872 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
23874 if (ANDSI (FLD (f_ACC40Sk
), SUBSI (4, 1))) {
23875 frvbf_media_acc_not_aligned (current_cpu
);
23877 if (ORIF (ANDSI (FLD (f_FRi
), SUBSI (2, 1)), ANDSI (FLD (f_FRj
), SUBSI (2, 1)))) {
23878 frvbf_media_register_not_aligned (current_cpu
);
23880 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
23887 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
23888 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
23889 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
23890 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
23893 DI opval
= MULDI (ZEXTHIDI (tmp_argihi
), ZEXTHIDI (tmp_argjhi
));
23894 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
23895 written
|= (1 << 15);
23896 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23899 DI opval
= MULDI (ZEXTHIDI (tmp_argilo
), ZEXTHIDI (tmp_argjlo
));
23900 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (1)), opval
);
23901 written
|= (1 << 16);
23902 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23905 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
23906 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
23907 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
23908 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
23911 DI opval
= MULDI (ZEXTHIDI (tmp_argihi
), ZEXTHIDI (tmp_argjhi
));
23912 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (2)), opval
);
23913 written
|= (1 << 17);
23914 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23917 DI opval
= MULDI (ZEXTHIDI (tmp_argilo
), ZEXTHIDI (tmp_argjlo
));
23918 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (3)), opval
);
23919 written
|= (1 << 18);
23920 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23927 abuf
->written
= written
;
23932 /* mmachs: mmachs$pack $FRinti,$FRintj,$ACC40Sk */
23935 SEM_FN_NAME (frvbf
,mmachs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
23937 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23938 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
23939 int UNUSED written
= 0;
23940 IADDR UNUSED pc
= abuf
->addr
;
23941 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
23943 if (ANDSI (FLD (f_ACC40Sk
), SUBSI (2, 1))) {
23944 frvbf_media_acc_not_aligned (current_cpu
);
23952 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
23953 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
23954 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
23955 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
23959 tmp_tmp
= ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk
)), MULDI (EXTHIDI (tmp_argihi
), EXTHIDI (tmp_argjhi
)));
23960 if (GTDI (tmp_tmp
, MAKEDI (127, 0xffffffff))) {
23963 DI opval
= MAKEDI (127, 0xffffffff);
23964 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
23965 written
|= (1 << 11);
23966 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23968 frvbf_media_overflow (current_cpu
, 8);
23971 if (LTDI (tmp_tmp
, MAKEDI (0xffffff80, 0))) {
23974 DI opval
= MAKEDI (0xffffff80, 0);
23975 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
23976 written
|= (1 << 11);
23977 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23979 frvbf_media_overflow (current_cpu
, 8);
23983 DI opval
= tmp_tmp
;
23984 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
23985 written
|= (1 << 11);
23986 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23993 tmp_tmp
= ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk
)) + (1))), MULDI (EXTHIDI (tmp_argilo
), EXTHIDI (tmp_argjlo
)));
23994 if (GTDI (tmp_tmp
, MAKEDI (127, 0xffffffff))) {
23997 DI opval
= MAKEDI (127, 0xffffffff);
23998 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (1)), opval
);
23999 written
|= (1 << 12);
24000 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
24002 frvbf_media_overflow (current_cpu
, 4);
24005 if (LTDI (tmp_tmp
, MAKEDI (0xffffff80, 0))) {
24008 DI opval
= MAKEDI (0xffffff80, 0);
24009 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (1)), opval
);
24010 written
|= (1 << 12);
24011 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
24013 frvbf_media_overflow (current_cpu
, 4);
24017 DI opval
= tmp_tmp
;
24018 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (1)), opval
);
24019 written
|= (1 << 12);
24020 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
24028 abuf
->written
= written
;
24033 /* mmachu: mmachu$pack $FRinti,$FRintj,$ACC40Uk */
24036 SEM_FN_NAME (frvbf
,mmachu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
24038 #define FLD(f) abuf->fields.sfmt_cmmachu.f
24039 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
24040 int UNUSED written
= 0;
24041 IADDR UNUSED pc
= abuf
->addr
;
24042 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
24044 if (ANDSI (FLD (f_ACC40Uk
), SUBSI (2, 1))) {
24045 frvbf_media_acc_not_aligned (current_cpu
);
24053 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
24054 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
24055 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
24056 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
24060 tmp_tmp
= ADDDI (GET_H_ACC40U (FLD (f_ACC40Uk
)), MULDI (ZEXTHIDI (tmp_argihi
), ZEXTHIDI (tmp_argjhi
)));
24061 if (GTDI (tmp_tmp
, MAKEDI (255, 0xffffffff))) {
24064 UDI opval
= MAKEDI (255, 0xffffffff);
24065 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, FLD (f_ACC40Uk
), opval
);
24066 written
|= (1 << 11);
24067 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
24069 frvbf_media_overflow (current_cpu
, 8);
24072 if (LTDI (tmp_tmp
, MAKEDI (0, 0))) {
24075 UDI opval
= MAKEDI (0, 0);
24076 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, FLD (f_ACC40Uk
), opval
);
24077 written
|= (1 << 11);
24078 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
24080 frvbf_media_overflow (current_cpu
, 8);
24084 UDI opval
= tmp_tmp
;
24085 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, FLD (f_ACC40Uk
), opval
);
24086 written
|= (1 << 11);
24087 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
24094 tmp_tmp
= ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk
)) + (1))), MULDI (ZEXTHIDI (tmp_argilo
), ZEXTHIDI (tmp_argjlo
)));
24095 if (GTDI (tmp_tmp
, MAKEDI (255, 0xffffffff))) {
24098 UDI opval
= MAKEDI (255, 0xffffffff);
24099 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, ((FLD (f_ACC40Uk
)) + (1)), opval
);
24100 written
|= (1 << 12);
24101 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
24103 frvbf_media_overflow (current_cpu
, 4);
24106 if (LTDI (tmp_tmp
, MAKEDI (0, 0))) {
24109 UDI opval
= MAKEDI (0, 0);
24110 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, ((FLD (f_ACC40Uk
)) + (1)), opval
);
24111 written
|= (1 << 12);
24112 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
24114 frvbf_media_overflow (current_cpu
, 4);
24118 UDI opval
= tmp_tmp
;
24119 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, ((FLD (f_ACC40Uk
)) + (1)), opval
);
24120 written
|= (1 << 12);
24121 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
24129 abuf
->written
= written
;
24134 /* mmrdhs: mmrdhs$pack $FRinti,$FRintj,$ACC40Sk */
24137 SEM_FN_NAME (frvbf
,mmrdhs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
24139 #define FLD(f) abuf->fields.sfmt_cmmachs.f
24140 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
24141 int UNUSED written
= 0;
24142 IADDR UNUSED pc
= abuf
->addr
;
24143 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
24145 if (ANDSI (FLD (f_ACC40Sk
), SUBSI (2, 1))) {
24146 frvbf_media_acc_not_aligned (current_cpu
);
24154 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
24155 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
24156 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
24157 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
24161 tmp_tmp
= SUBDI (GET_H_ACC40S (FLD (f_ACC40Sk
)), MULDI (EXTHIDI (tmp_argihi
), EXTHIDI (tmp_argjhi
)));
24162 if (GTDI (tmp_tmp
, MAKEDI (127, 0xffffffff))) {
24165 DI opval
= MAKEDI (127, 0xffffffff);
24166 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
24167 written
|= (1 << 11);
24168 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
24170 frvbf_media_overflow (current_cpu
, 8);
24173 if (LTDI (tmp_tmp
, MAKEDI (0xffffff80, 0))) {
24176 DI opval
= MAKEDI (0xffffff80, 0);
24177 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
24178 written
|= (1 << 11);
24179 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
24181 frvbf_media_overflow (current_cpu
, 8);
24185 DI opval
= tmp_tmp
;
24186 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
24187 written
|= (1 << 11);
24188 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
24195 tmp_tmp
= SUBDI (GET_H_ACC40S (((FLD (f_ACC40Sk
)) + (1))), MULDI (EXTHIDI (tmp_argilo
), EXTHIDI (tmp_argjlo
)));
24196 if (GTDI (tmp_tmp
, MAKEDI (127, 0xffffffff))) {
24199 DI opval
= MAKEDI (127, 0xffffffff);
24200 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (1)), opval
);
24201 written
|= (1 << 12);
24202 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
24204 frvbf_media_overflow (current_cpu
, 4);
24207 if (LTDI (tmp_tmp
, MAKEDI (0xffffff80, 0))) {
24210 DI opval
= MAKEDI (0xffffff80, 0);
24211 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (1)), opval
);
24212 written
|= (1 << 12);
24213 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
24215 frvbf_media_overflow (current_cpu
, 4);
24219 DI opval
= tmp_tmp
;
24220 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (1)), opval
);
24221 written
|= (1 << 12);
24222 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
24230 abuf
->written
= written
;
24235 /* mmrdhu: mmrdhu$pack $FRinti,$FRintj,$ACC40Uk */
24238 SEM_FN_NAME (frvbf
,mmrdhu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
24240 #define FLD(f) abuf->fields.sfmt_cmmachu.f
24241 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
24242 int UNUSED written
= 0;
24243 IADDR UNUSED pc
= abuf
->addr
;
24244 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
24246 if (ANDSI (FLD (f_ACC40Uk
), SUBSI (2, 1))) {
24247 frvbf_media_acc_not_aligned (current_cpu
);
24255 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
24256 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
24257 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
24258 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
24262 tmp_tmp
= SUBDI (GET_H_ACC40U (FLD (f_ACC40Uk
)), MULDI (ZEXTHIDI (tmp_argihi
), ZEXTHIDI (tmp_argjhi
)));
24263 if (GTDI (tmp_tmp
, MAKEDI (255, 0xffffffff))) {
24266 UDI opval
= MAKEDI (255, 0xffffffff);
24267 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, FLD (f_ACC40Uk
), opval
);
24268 written
|= (1 << 11);
24269 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
24271 frvbf_media_overflow (current_cpu
, 8);
24274 if (LTDI (tmp_tmp
, MAKEDI (0, 0))) {
24277 UDI opval
= MAKEDI (0, 0);
24278 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, FLD (f_ACC40Uk
), opval
);
24279 written
|= (1 << 11);
24280 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
24282 frvbf_media_overflow (current_cpu
, 8);
24286 UDI opval
= tmp_tmp
;
24287 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, FLD (f_ACC40Uk
), opval
);
24288 written
|= (1 << 11);
24289 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
24296 tmp_tmp
= SUBDI (GET_H_ACC40U (((FLD (f_ACC40Uk
)) + (1))), MULDI (ZEXTHIDI (tmp_argilo
), ZEXTHIDI (tmp_argjlo
)));
24297 if (GTDI (tmp_tmp
, MAKEDI (255, 0xffffffff))) {
24300 UDI opval
= MAKEDI (255, 0xffffffff);
24301 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, ((FLD (f_ACC40Uk
)) + (1)), opval
);
24302 written
|= (1 << 12);
24303 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
24305 frvbf_media_overflow (current_cpu
, 4);
24308 if (LTDI (tmp_tmp
, MAKEDI (0, 0))) {
24311 UDI opval
= MAKEDI (0, 0);
24312 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, ((FLD (f_ACC40Uk
)) + (1)), opval
);
24313 written
|= (1 << 12);
24314 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
24316 frvbf_media_overflow (current_cpu
, 4);
24320 UDI opval
= tmp_tmp
;
24321 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, ((FLD (f_ACC40Uk
)) + (1)), opval
);
24322 written
|= (1 << 12);
24323 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
24331 abuf
->written
= written
;
24336 /* cmmachs: cmmachs$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
24339 SEM_FN_NAME (frvbf
,cmmachs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
24341 #define FLD(f) abuf->fields.sfmt_cmmachs.f
24342 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
24343 int UNUSED written
= 0;
24344 IADDR UNUSED pc
= abuf
->addr
;
24345 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
24347 if (ANDSI (FLD (f_ACC40Sk
), SUBSI (2, 1))) {
24348 frvbf_media_acc_not_aligned (current_cpu
);
24350 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
24357 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
24358 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
24359 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
24360 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
24364 tmp_tmp
= ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk
)), MULDI (EXTHIDI (tmp_argihi
), EXTHIDI (tmp_argjhi
)));
24365 if (GTDI (tmp_tmp
, MAKEDI (127, 0xffffffff))) {
24368 DI opval
= MAKEDI (127, 0xffffffff);
24369 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
24370 written
|= (1 << 13);
24371 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
24373 frvbf_media_overflow (current_cpu
, 8);
24376 if (LTDI (tmp_tmp
, MAKEDI (0xffffff80, 0))) {
24379 DI opval
= MAKEDI (0xffffff80, 0);
24380 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
24381 written
|= (1 << 13);
24382 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
24384 frvbf_media_overflow (current_cpu
, 8);
24388 DI opval
= tmp_tmp
;
24389 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
24390 written
|= (1 << 13);
24391 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
24398 tmp_tmp
= ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk
)) + (1))), MULDI (EXTHIDI (tmp_argilo
), EXTHIDI (tmp_argjlo
)));
24399 if (GTDI (tmp_tmp
, MAKEDI (127, 0xffffffff))) {
24402 DI opval
= MAKEDI (127, 0xffffffff);
24403 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (1)), opval
);
24404 written
|= (1 << 14);
24405 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
24407 frvbf_media_overflow (current_cpu
, 4);
24410 if (LTDI (tmp_tmp
, MAKEDI (0xffffff80, 0))) {
24413 DI opval
= MAKEDI (0xffffff80, 0);
24414 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (1)), opval
);
24415 written
|= (1 << 14);
24416 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
24418 frvbf_media_overflow (current_cpu
, 4);
24422 DI opval
= tmp_tmp
;
24423 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (1)), opval
);
24424 written
|= (1 << 14);
24425 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
24434 abuf
->written
= written
;
24439 /* cmmachu: cmmachu$pack $FRinti,$FRintj,$ACC40Uk,$CCi,$cond */
24442 SEM_FN_NAME (frvbf
,cmmachu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
24444 #define FLD(f) abuf->fields.sfmt_cmmachu.f
24445 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
24446 int UNUSED written
= 0;
24447 IADDR UNUSED pc
= abuf
->addr
;
24448 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
24450 if (ANDSI (FLD (f_ACC40Uk
), SUBSI (2, 1))) {
24451 frvbf_media_acc_not_aligned (current_cpu
);
24453 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
24460 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
24461 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
24462 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
24463 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
24467 tmp_tmp
= ADDDI (GET_H_ACC40U (FLD (f_ACC40Uk
)), MULDI (ZEXTHIDI (tmp_argihi
), ZEXTHIDI (tmp_argjhi
)));
24468 if (GTDI (tmp_tmp
, MAKEDI (255, 0xffffffff))) {
24471 UDI opval
= MAKEDI (255, 0xffffffff);
24472 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, FLD (f_ACC40Uk
), opval
);
24473 written
|= (1 << 13);
24474 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
24476 frvbf_media_overflow (current_cpu
, 8);
24479 if (LTDI (tmp_tmp
, MAKEDI (0, 0))) {
24482 UDI opval
= MAKEDI (0, 0);
24483 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, FLD (f_ACC40Uk
), opval
);
24484 written
|= (1 << 13);
24485 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
24487 frvbf_media_overflow (current_cpu
, 8);
24491 UDI opval
= tmp_tmp
;
24492 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, FLD (f_ACC40Uk
), opval
);
24493 written
|= (1 << 13);
24494 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
24501 tmp_tmp
= ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk
)) + (1))), MULDI (ZEXTHIDI (tmp_argilo
), ZEXTHIDI (tmp_argjlo
)));
24502 if (GTDI (tmp_tmp
, MAKEDI (255, 0xffffffff))) {
24505 UDI opval
= MAKEDI (255, 0xffffffff);
24506 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, ((FLD (f_ACC40Uk
)) + (1)), opval
);
24507 written
|= (1 << 14);
24508 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
24510 frvbf_media_overflow (current_cpu
, 4);
24513 if (LTDI (tmp_tmp
, MAKEDI (0, 0))) {
24516 UDI opval
= MAKEDI (0, 0);
24517 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, ((FLD (f_ACC40Uk
)) + (1)), opval
);
24518 written
|= (1 << 14);
24519 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
24521 frvbf_media_overflow (current_cpu
, 4);
24525 UDI opval
= tmp_tmp
;
24526 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, ((FLD (f_ACC40Uk
)) + (1)), opval
);
24527 written
|= (1 << 14);
24528 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
24537 abuf
->written
= written
;
24542 /* mqmachs: mqmachs$pack $FRintieven,$FRintjeven,$ACC40Sk */
24545 SEM_FN_NAME (frvbf
,mqmachs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
24547 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
24548 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
24549 int UNUSED written
= 0;
24550 IADDR UNUSED pc
= abuf
->addr
;
24551 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
24553 if (ANDSI (FLD (f_ACC40Sk
), SUBSI (4, 1))) {
24554 frvbf_media_acc_not_aligned (current_cpu
);
24556 if (ORIF (ANDSI (FLD (f_FRi
), SUBSI (2, 1)), ANDSI (FLD (f_FRj
), SUBSI (2, 1)))) {
24557 frvbf_media_register_not_aligned (current_cpu
);
24565 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
24566 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
24567 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
24568 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
24572 tmp_tmp
= ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk
)), MULDI (EXTHIDI (tmp_argihi
), EXTHIDI (tmp_argjhi
)));
24573 if (GTDI (tmp_tmp
, MAKEDI (127, 0xffffffff))) {
24576 DI opval
= MAKEDI (127, 0xffffffff);
24577 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
24578 written
|= (1 << 17);
24579 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
24581 frvbf_media_overflow (current_cpu
, 8);
24584 if (LTDI (tmp_tmp
, MAKEDI (0xffffff80, 0))) {
24587 DI opval
= MAKEDI (0xffffff80, 0);
24588 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
24589 written
|= (1 << 17);
24590 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
24592 frvbf_media_overflow (current_cpu
, 8);
24596 DI opval
= tmp_tmp
;
24597 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
24598 written
|= (1 << 17);
24599 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
24606 tmp_tmp
= ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk
)) + (1))), MULDI (EXTHIDI (tmp_argilo
), EXTHIDI (tmp_argjlo
)));
24607 if (GTDI (tmp_tmp
, MAKEDI (127, 0xffffffff))) {
24610 DI opval
= MAKEDI (127, 0xffffffff);
24611 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (1)), opval
);
24612 written
|= (1 << 18);
24613 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
24615 frvbf_media_overflow (current_cpu
, 4);
24618 if (LTDI (tmp_tmp
, MAKEDI (0xffffff80, 0))) {
24621 DI opval
= MAKEDI (0xffffff80, 0);
24622 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (1)), opval
);
24623 written
|= (1 << 18);
24624 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
24626 frvbf_media_overflow (current_cpu
, 4);
24630 DI opval
= tmp_tmp
;
24631 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (1)), opval
);
24632 written
|= (1 << 18);
24633 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
24639 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
24640 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
24641 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
24642 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
24646 tmp_tmp
= ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk
)) + (2))), MULDI (EXTHIDI (tmp_argihi
), EXTHIDI (tmp_argjhi
)));
24647 if (GTDI (tmp_tmp
, MAKEDI (127, 0xffffffff))) {
24650 DI opval
= MAKEDI (127, 0xffffffff);
24651 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (2)), opval
);
24652 written
|= (1 << 19);
24653 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
24655 frvbf_media_overflow (current_cpu
, 2);
24658 if (LTDI (tmp_tmp
, MAKEDI (0xffffff80, 0))) {
24661 DI opval
= MAKEDI (0xffffff80, 0);
24662 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (2)), opval
);
24663 written
|= (1 << 19);
24664 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
24666 frvbf_media_overflow (current_cpu
, 2);
24670 DI opval
= tmp_tmp
;
24671 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (2)), opval
);
24672 written
|= (1 << 19);
24673 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
24680 tmp_tmp
= ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk
)) + (3))), MULDI (EXTHIDI (tmp_argilo
), EXTHIDI (tmp_argjlo
)));
24681 if (GTDI (tmp_tmp
, MAKEDI (127, 0xffffffff))) {
24684 DI opval
= MAKEDI (127, 0xffffffff);
24685 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (3)), opval
);
24686 written
|= (1 << 20);
24687 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
24689 frvbf_media_overflow (current_cpu
, 1);
24692 if (LTDI (tmp_tmp
, MAKEDI (0xffffff80, 0))) {
24695 DI opval
= MAKEDI (0xffffff80, 0);
24696 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (3)), opval
);
24697 written
|= (1 << 20);
24698 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
24700 frvbf_media_overflow (current_cpu
, 1);
24704 DI opval
= tmp_tmp
;
24705 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (3)), opval
);
24706 written
|= (1 << 20);
24707 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
24716 abuf
->written
= written
;
24721 /* mqmachu: mqmachu$pack $FRintieven,$FRintjeven,$ACC40Uk */
24724 SEM_FN_NAME (frvbf
,mqmachu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
24726 #define FLD(f) abuf->fields.sfmt_cmqmachu.f
24727 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
24728 int UNUSED written
= 0;
24729 IADDR UNUSED pc
= abuf
->addr
;
24730 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
24732 if (ANDSI (FLD (f_ACC40Uk
), SUBSI (4, 1))) {
24733 frvbf_media_acc_not_aligned (current_cpu
);
24735 if (ORIF (ANDSI (FLD (f_FRi
), SUBSI (2, 1)), ANDSI (FLD (f_FRj
), SUBSI (2, 1)))) {
24736 frvbf_media_register_not_aligned (current_cpu
);
24744 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
24745 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
24746 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
24747 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
24751 tmp_tmp
= ADDDI (GET_H_ACC40U (FLD (f_ACC40Uk
)), MULDI (ZEXTHIDI (tmp_argihi
), ZEXTHIDI (tmp_argjhi
)));
24752 if (GTDI (tmp_tmp
, MAKEDI (255, 0xffffffff))) {
24755 UDI opval
= MAKEDI (255, 0xffffffff);
24756 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, FLD (f_ACC40Uk
), opval
);
24757 written
|= (1 << 17);
24758 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
24760 frvbf_media_overflow (current_cpu
, 8);
24763 if (LTDI (tmp_tmp
, MAKEDI (0, 0))) {
24766 UDI opval
= MAKEDI (0, 0);
24767 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, FLD (f_ACC40Uk
), opval
);
24768 written
|= (1 << 17);
24769 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
24771 frvbf_media_overflow (current_cpu
, 8);
24775 UDI opval
= tmp_tmp
;
24776 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, FLD (f_ACC40Uk
), opval
);
24777 written
|= (1 << 17);
24778 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
24785 tmp_tmp
= ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk
)) + (1))), MULDI (ZEXTHIDI (tmp_argilo
), ZEXTHIDI (tmp_argjlo
)));
24786 if (GTDI (tmp_tmp
, MAKEDI (255, 0xffffffff))) {
24789 UDI opval
= MAKEDI (255, 0xffffffff);
24790 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, ((FLD (f_ACC40Uk
)) + (1)), opval
);
24791 written
|= (1 << 18);
24792 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
24794 frvbf_media_overflow (current_cpu
, 4);
24797 if (LTDI (tmp_tmp
, MAKEDI (0, 0))) {
24800 UDI opval
= MAKEDI (0, 0);
24801 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, ((FLD (f_ACC40Uk
)) + (1)), opval
);
24802 written
|= (1 << 18);
24803 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
24805 frvbf_media_overflow (current_cpu
, 4);
24809 UDI opval
= tmp_tmp
;
24810 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, ((FLD (f_ACC40Uk
)) + (1)), opval
);
24811 written
|= (1 << 18);
24812 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
24818 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
24819 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
24820 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
24821 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
24825 tmp_tmp
= ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk
)) + (2))), MULDI (ZEXTHIDI (tmp_argihi
), ZEXTHIDI (tmp_argjhi
)));
24826 if (GTDI (tmp_tmp
, MAKEDI (255, 0xffffffff))) {
24829 UDI opval
= MAKEDI (255, 0xffffffff);
24830 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, ((FLD (f_ACC40Uk
)) + (2)), opval
);
24831 written
|= (1 << 19);
24832 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
24834 frvbf_media_overflow (current_cpu
, 2);
24837 if (LTDI (tmp_tmp
, MAKEDI (0, 0))) {
24840 UDI opval
= MAKEDI (0, 0);
24841 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, ((FLD (f_ACC40Uk
)) + (2)), opval
);
24842 written
|= (1 << 19);
24843 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
24845 frvbf_media_overflow (current_cpu
, 2);
24849 UDI opval
= tmp_tmp
;
24850 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, ((FLD (f_ACC40Uk
)) + (2)), opval
);
24851 written
|= (1 << 19);
24852 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
24859 tmp_tmp
= ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk
)) + (3))), MULDI (ZEXTHIDI (tmp_argilo
), ZEXTHIDI (tmp_argjlo
)));
24860 if (GTDI (tmp_tmp
, MAKEDI (255, 0xffffffff))) {
24863 UDI opval
= MAKEDI (255, 0xffffffff);
24864 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, ((FLD (f_ACC40Uk
)) + (3)), opval
);
24865 written
|= (1 << 20);
24866 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
24868 frvbf_media_overflow (current_cpu
, 1);
24871 if (LTDI (tmp_tmp
, MAKEDI (0, 0))) {
24874 UDI opval
= MAKEDI (0, 0);
24875 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, ((FLD (f_ACC40Uk
)) + (3)), opval
);
24876 written
|= (1 << 20);
24877 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
24879 frvbf_media_overflow (current_cpu
, 1);
24883 UDI opval
= tmp_tmp
;
24884 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, ((FLD (f_ACC40Uk
)) + (3)), opval
);
24885 written
|= (1 << 20);
24886 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
24895 abuf
->written
= written
;
24900 /* cmqmachs: cmqmachs$pack $FRintieven,$FRintjeven,$ACC40Sk,$CCi,$cond */
24903 SEM_FN_NAME (frvbf
,cmqmachs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
24905 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
24906 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
24907 int UNUSED written
= 0;
24908 IADDR UNUSED pc
= abuf
->addr
;
24909 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
24911 if (ANDSI (FLD (f_ACC40Sk
), SUBSI (4, 1))) {
24912 frvbf_media_acc_not_aligned (current_cpu
);
24914 if (ORIF (ANDSI (FLD (f_FRi
), SUBSI (2, 1)), ANDSI (FLD (f_FRj
), SUBSI (2, 1)))) {
24915 frvbf_media_register_not_aligned (current_cpu
);
24917 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
24924 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
24925 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
24926 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
24927 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
24931 tmp_tmp
= ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk
)), MULDI (EXTHIDI (tmp_argihi
), EXTHIDI (tmp_argjhi
)));
24932 if (GTDI (tmp_tmp
, MAKEDI (127, 0xffffffff))) {
24935 DI opval
= MAKEDI (127, 0xffffffff);
24936 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
24937 written
|= (1 << 19);
24938 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
24940 frvbf_media_overflow (current_cpu
, 8);
24943 if (LTDI (tmp_tmp
, MAKEDI (0xffffff80, 0))) {
24946 DI opval
= MAKEDI (0xffffff80, 0);
24947 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
24948 written
|= (1 << 19);
24949 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
24951 frvbf_media_overflow (current_cpu
, 8);
24955 DI opval
= tmp_tmp
;
24956 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
24957 written
|= (1 << 19);
24958 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
24965 tmp_tmp
= ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk
)) + (1))), MULDI (EXTHIDI (tmp_argilo
), EXTHIDI (tmp_argjlo
)));
24966 if (GTDI (tmp_tmp
, MAKEDI (127, 0xffffffff))) {
24969 DI opval
= MAKEDI (127, 0xffffffff);
24970 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (1)), opval
);
24971 written
|= (1 << 20);
24972 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
24974 frvbf_media_overflow (current_cpu
, 4);
24977 if (LTDI (tmp_tmp
, MAKEDI (0xffffff80, 0))) {
24980 DI opval
= MAKEDI (0xffffff80, 0);
24981 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (1)), opval
);
24982 written
|= (1 << 20);
24983 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
24985 frvbf_media_overflow (current_cpu
, 4);
24989 DI opval
= tmp_tmp
;
24990 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (1)), opval
);
24991 written
|= (1 << 20);
24992 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
24998 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
24999 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
25000 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
25001 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
25005 tmp_tmp
= ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk
)) + (2))), MULDI (EXTHIDI (tmp_argihi
), EXTHIDI (tmp_argjhi
)));
25006 if (GTDI (tmp_tmp
, MAKEDI (127, 0xffffffff))) {
25009 DI opval
= MAKEDI (127, 0xffffffff);
25010 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (2)), opval
);
25011 written
|= (1 << 21);
25012 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25014 frvbf_media_overflow (current_cpu
, 2);
25017 if (LTDI (tmp_tmp
, MAKEDI (0xffffff80, 0))) {
25020 DI opval
= MAKEDI (0xffffff80, 0);
25021 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (2)), opval
);
25022 written
|= (1 << 21);
25023 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25025 frvbf_media_overflow (current_cpu
, 2);
25029 DI opval
= tmp_tmp
;
25030 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (2)), opval
);
25031 written
|= (1 << 21);
25032 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25039 tmp_tmp
= ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk
)) + (3))), MULDI (EXTHIDI (tmp_argilo
), EXTHIDI (tmp_argjlo
)));
25040 if (GTDI (tmp_tmp
, MAKEDI (127, 0xffffffff))) {
25043 DI opval
= MAKEDI (127, 0xffffffff);
25044 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (3)), opval
);
25045 written
|= (1 << 22);
25046 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25048 frvbf_media_overflow (current_cpu
, 1);
25051 if (LTDI (tmp_tmp
, MAKEDI (0xffffff80, 0))) {
25054 DI opval
= MAKEDI (0xffffff80, 0);
25055 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (3)), opval
);
25056 written
|= (1 << 22);
25057 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25059 frvbf_media_overflow (current_cpu
, 1);
25063 DI opval
= tmp_tmp
;
25064 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (3)), opval
);
25065 written
|= (1 << 22);
25066 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25076 abuf
->written
= written
;
25081 /* cmqmachu: cmqmachu$pack $FRintieven,$FRintjeven,$ACC40Uk,$CCi,$cond */
25084 SEM_FN_NAME (frvbf
,cmqmachu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
25086 #define FLD(f) abuf->fields.sfmt_cmqmachu.f
25087 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
25088 int UNUSED written
= 0;
25089 IADDR UNUSED pc
= abuf
->addr
;
25090 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
25092 if (ANDSI (FLD (f_ACC40Uk
), SUBSI (4, 1))) {
25093 frvbf_media_acc_not_aligned (current_cpu
);
25095 if (ORIF (ANDSI (FLD (f_FRi
), SUBSI (2, 1)), ANDSI (FLD (f_FRj
), SUBSI (2, 1)))) {
25096 frvbf_media_register_not_aligned (current_cpu
);
25098 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
25105 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
25106 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
25107 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
25108 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
25112 tmp_tmp
= ADDDI (GET_H_ACC40U (FLD (f_ACC40Uk
)), MULDI (ZEXTHIDI (tmp_argihi
), ZEXTHIDI (tmp_argjhi
)));
25113 if (GTDI (tmp_tmp
, MAKEDI (255, 0xffffffff))) {
25116 UDI opval
= MAKEDI (255, 0xffffffff);
25117 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, FLD (f_ACC40Uk
), opval
);
25118 written
|= (1 << 19);
25119 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
25121 frvbf_media_overflow (current_cpu
, 8);
25124 if (LTDI (tmp_tmp
, MAKEDI (0, 0))) {
25127 UDI opval
= MAKEDI (0, 0);
25128 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, FLD (f_ACC40Uk
), opval
);
25129 written
|= (1 << 19);
25130 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
25132 frvbf_media_overflow (current_cpu
, 8);
25136 UDI opval
= tmp_tmp
;
25137 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, FLD (f_ACC40Uk
), opval
);
25138 written
|= (1 << 19);
25139 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
25146 tmp_tmp
= ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk
)) + (1))), MULDI (ZEXTHIDI (tmp_argilo
), ZEXTHIDI (tmp_argjlo
)));
25147 if (GTDI (tmp_tmp
, MAKEDI (255, 0xffffffff))) {
25150 UDI opval
= MAKEDI (255, 0xffffffff);
25151 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, ((FLD (f_ACC40Uk
)) + (1)), opval
);
25152 written
|= (1 << 20);
25153 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
25155 frvbf_media_overflow (current_cpu
, 4);
25158 if (LTDI (tmp_tmp
, MAKEDI (0, 0))) {
25161 UDI opval
= MAKEDI (0, 0);
25162 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, ((FLD (f_ACC40Uk
)) + (1)), opval
);
25163 written
|= (1 << 20);
25164 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
25166 frvbf_media_overflow (current_cpu
, 4);
25170 UDI opval
= tmp_tmp
;
25171 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, ((FLD (f_ACC40Uk
)) + (1)), opval
);
25172 written
|= (1 << 20);
25173 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
25179 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
25180 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
25181 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
25182 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
25186 tmp_tmp
= ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk
)) + (2))), MULDI (ZEXTHIDI (tmp_argihi
), ZEXTHIDI (tmp_argjhi
)));
25187 if (GTDI (tmp_tmp
, MAKEDI (255, 0xffffffff))) {
25190 UDI opval
= MAKEDI (255, 0xffffffff);
25191 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, ((FLD (f_ACC40Uk
)) + (2)), opval
);
25192 written
|= (1 << 21);
25193 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
25195 frvbf_media_overflow (current_cpu
, 2);
25198 if (LTDI (tmp_tmp
, MAKEDI (0, 0))) {
25201 UDI opval
= MAKEDI (0, 0);
25202 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, ((FLD (f_ACC40Uk
)) + (2)), opval
);
25203 written
|= (1 << 21);
25204 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
25206 frvbf_media_overflow (current_cpu
, 2);
25210 UDI opval
= tmp_tmp
;
25211 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, ((FLD (f_ACC40Uk
)) + (2)), opval
);
25212 written
|= (1 << 21);
25213 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
25220 tmp_tmp
= ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk
)) + (3))), MULDI (ZEXTHIDI (tmp_argilo
), ZEXTHIDI (tmp_argjlo
)));
25221 if (GTDI (tmp_tmp
, MAKEDI (255, 0xffffffff))) {
25224 UDI opval
= MAKEDI (255, 0xffffffff);
25225 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, ((FLD (f_ACC40Uk
)) + (3)), opval
);
25226 written
|= (1 << 22);
25227 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
25229 frvbf_media_overflow (current_cpu
, 1);
25232 if (LTDI (tmp_tmp
, MAKEDI (0, 0))) {
25235 UDI opval
= MAKEDI (0, 0);
25236 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, ((FLD (f_ACC40Uk
)) + (3)), opval
);
25237 written
|= (1 << 22);
25238 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
25240 frvbf_media_overflow (current_cpu
, 1);
25244 UDI opval
= tmp_tmp
;
25245 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, ((FLD (f_ACC40Uk
)) + (3)), opval
);
25246 written
|= (1 << 22);
25247 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
25257 abuf
->written
= written
;
25262 /* mqxmachs: mqxmachs$pack $FRintieven,$FRintjeven,$ACC40Sk */
25265 SEM_FN_NAME (frvbf
,mqxmachs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
25267 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
25268 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
25269 int UNUSED written
= 0;
25270 IADDR UNUSED pc
= abuf
->addr
;
25271 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
25273 if (ANDSI (FLD (f_ACC40Sk
), SUBSI (4, 1))) {
25274 frvbf_media_acc_not_aligned (current_cpu
);
25276 if (ORIF (ANDSI (FLD (f_FRi
), SUBSI (2, 1)), ANDSI (FLD (f_FRj
), SUBSI (2, 1)))) {
25277 frvbf_media_register_not_aligned (current_cpu
);
25285 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
25286 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
25287 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
25288 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
25292 tmp_tmp
= ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk
)) + (2))), MULDI (EXTHIDI (tmp_argihi
), EXTHIDI (tmp_argjhi
)));
25293 if (GTDI (tmp_tmp
, MAKEDI (127, 0xffffffff))) {
25296 DI opval
= MAKEDI (127, 0xffffffff);
25297 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (2)), opval
);
25298 written
|= (1 << 19);
25299 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25301 frvbf_media_overflow (current_cpu
, 2);
25304 if (LTDI (tmp_tmp
, MAKEDI (0xffffff80, 0))) {
25307 DI opval
= MAKEDI (0xffffff80, 0);
25308 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (2)), opval
);
25309 written
|= (1 << 19);
25310 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25312 frvbf_media_overflow (current_cpu
, 2);
25316 DI opval
= tmp_tmp
;
25317 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (2)), opval
);
25318 written
|= (1 << 19);
25319 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25326 tmp_tmp
= ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk
)) + (3))), MULDI (EXTHIDI (tmp_argilo
), EXTHIDI (tmp_argjlo
)));
25327 if (GTDI (tmp_tmp
, MAKEDI (127, 0xffffffff))) {
25330 DI opval
= MAKEDI (127, 0xffffffff);
25331 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (3)), opval
);
25332 written
|= (1 << 20);
25333 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25335 frvbf_media_overflow (current_cpu
, 1);
25338 if (LTDI (tmp_tmp
, MAKEDI (0xffffff80, 0))) {
25341 DI opval
= MAKEDI (0xffffff80, 0);
25342 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (3)), opval
);
25343 written
|= (1 << 20);
25344 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25346 frvbf_media_overflow (current_cpu
, 1);
25350 DI opval
= tmp_tmp
;
25351 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (3)), opval
);
25352 written
|= (1 << 20);
25353 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25359 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
25360 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
25361 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
25362 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
25366 tmp_tmp
= ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk
)), MULDI (EXTHIDI (tmp_argihi
), EXTHIDI (tmp_argjhi
)));
25367 if (GTDI (tmp_tmp
, MAKEDI (127, 0xffffffff))) {
25370 DI opval
= MAKEDI (127, 0xffffffff);
25371 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
25372 written
|= (1 << 17);
25373 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25375 frvbf_media_overflow (current_cpu
, 8);
25378 if (LTDI (tmp_tmp
, MAKEDI (0xffffff80, 0))) {
25381 DI opval
= MAKEDI (0xffffff80, 0);
25382 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
25383 written
|= (1 << 17);
25384 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25386 frvbf_media_overflow (current_cpu
, 8);
25390 DI opval
= tmp_tmp
;
25391 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
25392 written
|= (1 << 17);
25393 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25400 tmp_tmp
= ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk
)) + (1))), MULDI (EXTHIDI (tmp_argilo
), EXTHIDI (tmp_argjlo
)));
25401 if (GTDI (tmp_tmp
, MAKEDI (127, 0xffffffff))) {
25404 DI opval
= MAKEDI (127, 0xffffffff);
25405 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (1)), opval
);
25406 written
|= (1 << 18);
25407 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25409 frvbf_media_overflow (current_cpu
, 4);
25412 if (LTDI (tmp_tmp
, MAKEDI (0xffffff80, 0))) {
25415 DI opval
= MAKEDI (0xffffff80, 0);
25416 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (1)), opval
);
25417 written
|= (1 << 18);
25418 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25420 frvbf_media_overflow (current_cpu
, 4);
25424 DI opval
= tmp_tmp
;
25425 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (1)), opval
);
25426 written
|= (1 << 18);
25427 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25436 abuf
->written
= written
;
25441 /* mqxmacxhs: mqxmacxhs$pack $FRintieven,$FRintjeven,$ACC40Sk */
25444 SEM_FN_NAME (frvbf
,mqxmacxhs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
25446 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
25447 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
25448 int UNUSED written
= 0;
25449 IADDR UNUSED pc
= abuf
->addr
;
25450 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
25452 if (ANDSI (FLD (f_ACC40Sk
), SUBSI (4, 1))) {
25453 frvbf_media_acc_not_aligned (current_cpu
);
25455 if (ORIF (ANDSI (FLD (f_FRi
), SUBSI (2, 1)), ANDSI (FLD (f_FRj
), SUBSI (2, 1)))) {
25456 frvbf_media_register_not_aligned (current_cpu
);
25464 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
25465 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
25466 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
25467 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
25471 tmp_tmp
= ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk
)) + (2))), MULDI (EXTHIDI (tmp_argihi
), EXTHIDI (tmp_argjlo
)));
25472 if (GTDI (tmp_tmp
, MAKEDI (127, 0xffffffff))) {
25475 DI opval
= MAKEDI (127, 0xffffffff);
25476 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (2)), opval
);
25477 written
|= (1 << 19);
25478 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25480 frvbf_media_overflow (current_cpu
, 2);
25483 if (LTDI (tmp_tmp
, MAKEDI (0xffffff80, 0))) {
25486 DI opval
= MAKEDI (0xffffff80, 0);
25487 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (2)), opval
);
25488 written
|= (1 << 19);
25489 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25491 frvbf_media_overflow (current_cpu
, 2);
25495 DI opval
= tmp_tmp
;
25496 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (2)), opval
);
25497 written
|= (1 << 19);
25498 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25505 tmp_tmp
= ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk
)) + (3))), MULDI (EXTHIDI (tmp_argilo
), EXTHIDI (tmp_argjhi
)));
25506 if (GTDI (tmp_tmp
, MAKEDI (127, 0xffffffff))) {
25509 DI opval
= MAKEDI (127, 0xffffffff);
25510 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (3)), opval
);
25511 written
|= (1 << 20);
25512 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25514 frvbf_media_overflow (current_cpu
, 1);
25517 if (LTDI (tmp_tmp
, MAKEDI (0xffffff80, 0))) {
25520 DI opval
= MAKEDI (0xffffff80, 0);
25521 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (3)), opval
);
25522 written
|= (1 << 20);
25523 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25525 frvbf_media_overflow (current_cpu
, 1);
25529 DI opval
= tmp_tmp
;
25530 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (3)), opval
);
25531 written
|= (1 << 20);
25532 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25538 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
25539 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
25540 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
25541 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
25545 tmp_tmp
= ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk
)), MULDI (EXTHIDI (tmp_argihi
), EXTHIDI (tmp_argjlo
)));
25546 if (GTDI (tmp_tmp
, MAKEDI (127, 0xffffffff))) {
25549 DI opval
= MAKEDI (127, 0xffffffff);
25550 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
25551 written
|= (1 << 17);
25552 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25554 frvbf_media_overflow (current_cpu
, 8);
25557 if (LTDI (tmp_tmp
, MAKEDI (0xffffff80, 0))) {
25560 DI opval
= MAKEDI (0xffffff80, 0);
25561 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
25562 written
|= (1 << 17);
25563 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25565 frvbf_media_overflow (current_cpu
, 8);
25569 DI opval
= tmp_tmp
;
25570 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
25571 written
|= (1 << 17);
25572 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25579 tmp_tmp
= ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk
)) + (1))), MULDI (EXTHIDI (tmp_argilo
), EXTHIDI (tmp_argjhi
)));
25580 if (GTDI (tmp_tmp
, MAKEDI (127, 0xffffffff))) {
25583 DI opval
= MAKEDI (127, 0xffffffff);
25584 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (1)), opval
);
25585 written
|= (1 << 18);
25586 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25588 frvbf_media_overflow (current_cpu
, 4);
25591 if (LTDI (tmp_tmp
, MAKEDI (0xffffff80, 0))) {
25594 DI opval
= MAKEDI (0xffffff80, 0);
25595 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (1)), opval
);
25596 written
|= (1 << 18);
25597 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25599 frvbf_media_overflow (current_cpu
, 4);
25603 DI opval
= tmp_tmp
;
25604 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (1)), opval
);
25605 written
|= (1 << 18);
25606 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25615 abuf
->written
= written
;
25620 /* mqmacxhs: mqmacxhs$pack $FRintieven,$FRintjeven,$ACC40Sk */
25623 SEM_FN_NAME (frvbf
,mqmacxhs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
25625 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
25626 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
25627 int UNUSED written
= 0;
25628 IADDR UNUSED pc
= abuf
->addr
;
25629 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
25631 if (ANDSI (FLD (f_ACC40Sk
), SUBSI (4, 1))) {
25632 frvbf_media_acc_not_aligned (current_cpu
);
25634 if (ORIF (ANDSI (FLD (f_FRi
), SUBSI (2, 1)), ANDSI (FLD (f_FRj
), SUBSI (2, 1)))) {
25635 frvbf_media_register_not_aligned (current_cpu
);
25643 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
25644 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
25645 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
25646 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
25650 tmp_tmp
= ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk
)), MULDI (EXTHIDI (tmp_argihi
), EXTHIDI (tmp_argjlo
)));
25651 if (GTDI (tmp_tmp
, MAKEDI (127, 0xffffffff))) {
25654 DI opval
= MAKEDI (127, 0xffffffff);
25655 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
25656 written
|= (1 << 17);
25657 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25659 frvbf_media_overflow (current_cpu
, 8);
25662 if (LTDI (tmp_tmp
, MAKEDI (0xffffff80, 0))) {
25665 DI opval
= MAKEDI (0xffffff80, 0);
25666 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
25667 written
|= (1 << 17);
25668 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25670 frvbf_media_overflow (current_cpu
, 8);
25674 DI opval
= tmp_tmp
;
25675 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
25676 written
|= (1 << 17);
25677 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25684 tmp_tmp
= ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk
)) + (1))), MULDI (EXTHIDI (tmp_argilo
), EXTHIDI (tmp_argjhi
)));
25685 if (GTDI (tmp_tmp
, MAKEDI (127, 0xffffffff))) {
25688 DI opval
= MAKEDI (127, 0xffffffff);
25689 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (1)), opval
);
25690 written
|= (1 << 18);
25691 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25693 frvbf_media_overflow (current_cpu
, 4);
25696 if (LTDI (tmp_tmp
, MAKEDI (0xffffff80, 0))) {
25699 DI opval
= MAKEDI (0xffffff80, 0);
25700 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (1)), opval
);
25701 written
|= (1 << 18);
25702 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25704 frvbf_media_overflow (current_cpu
, 4);
25708 DI opval
= tmp_tmp
;
25709 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (1)), opval
);
25710 written
|= (1 << 18);
25711 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25717 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
25718 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
25719 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
25720 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
25724 tmp_tmp
= ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk
)) + (2))), MULDI (EXTHIDI (tmp_argihi
), EXTHIDI (tmp_argjlo
)));
25725 if (GTDI (tmp_tmp
, MAKEDI (127, 0xffffffff))) {
25728 DI opval
= MAKEDI (127, 0xffffffff);
25729 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (2)), opval
);
25730 written
|= (1 << 19);
25731 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25733 frvbf_media_overflow (current_cpu
, 2);
25736 if (LTDI (tmp_tmp
, MAKEDI (0xffffff80, 0))) {
25739 DI opval
= MAKEDI (0xffffff80, 0);
25740 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (2)), opval
);
25741 written
|= (1 << 19);
25742 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25744 frvbf_media_overflow (current_cpu
, 2);
25748 DI opval
= tmp_tmp
;
25749 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (2)), opval
);
25750 written
|= (1 << 19);
25751 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25758 tmp_tmp
= ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk
)) + (3))), MULDI (EXTHIDI (tmp_argilo
), EXTHIDI (tmp_argjhi
)));
25759 if (GTDI (tmp_tmp
, MAKEDI (127, 0xffffffff))) {
25762 DI opval
= MAKEDI (127, 0xffffffff);
25763 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (3)), opval
);
25764 written
|= (1 << 20);
25765 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25767 frvbf_media_overflow (current_cpu
, 1);
25770 if (LTDI (tmp_tmp
, MAKEDI (0xffffff80, 0))) {
25773 DI opval
= MAKEDI (0xffffff80, 0);
25774 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (3)), opval
);
25775 written
|= (1 << 20);
25776 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25778 frvbf_media_overflow (current_cpu
, 1);
25782 DI opval
= tmp_tmp
;
25783 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (3)), opval
);
25784 written
|= (1 << 20);
25785 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25794 abuf
->written
= written
;
25799 /* mcpxrs: mcpxrs$pack $FRinti,$FRintj,$ACC40Sk */
25802 SEM_FN_NAME (frvbf
,mcpxrs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
25804 #define FLD(f) abuf->fields.sfmt_cmmachs.f
25805 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
25806 int UNUSED written
= 0;
25807 IADDR UNUSED pc
= abuf
->addr
;
25808 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
25816 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
25817 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
25818 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
25819 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
25824 tmp_tmp1
= MULDI (EXTHIDI (tmp_argihi
), EXTHIDI (tmp_argjhi
));
25825 tmp_tmp2
= MULDI (EXTHIDI (tmp_argilo
), EXTHIDI (tmp_argjlo
));
25826 tmp_tmp1
= SUBDI (tmp_tmp1
, tmp_tmp2
);
25827 if (GTDI (tmp_tmp1
, MAKEDI (127, 0xffffffff))) {
25830 DI opval
= MAKEDI (127, 0xffffffff);
25831 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
25832 written
|= (1 << 8);
25833 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25835 frvbf_media_overflow (current_cpu
, 8);
25838 if (LTDI (tmp_tmp1
, MAKEDI (0xffffff80, 0))) {
25841 DI opval
= MAKEDI (0xffffff80, 0);
25842 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
25843 written
|= (1 << 8);
25844 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25846 frvbf_media_overflow (current_cpu
, 8);
25850 DI opval
= tmp_tmp1
;
25851 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
25852 written
|= (1 << 8);
25853 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25860 abuf
->written
= written
;
25865 /* mcpxru: mcpxru$pack $FRinti,$FRintj,$ACC40Sk */
25868 SEM_FN_NAME (frvbf
,mcpxru
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
25870 #define FLD(f) abuf->fields.sfmt_cmmachs.f
25871 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
25872 int UNUSED written
= 0;
25873 IADDR UNUSED pc
= abuf
->addr
;
25874 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
25882 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
25883 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
25884 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
25885 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
25890 tmp_tmp1
= MULDI (ZEXTHIDI (tmp_argihi
), ZEXTHIDI (tmp_argjhi
));
25891 tmp_tmp2
= MULDI (ZEXTHIDI (tmp_argilo
), ZEXTHIDI (tmp_argjlo
));
25892 tmp_tmp1
= SUBDI (tmp_tmp1
, tmp_tmp2
);
25893 if (GTDI (tmp_tmp1
, MAKEDI (255, 0xffffffff))) {
25896 DI opval
= MAKEDI (255, 0xffffffff);
25897 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
25898 written
|= (1 << 8);
25899 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25901 frvbf_media_overflow (current_cpu
, 8);
25904 if (LTDI (tmp_tmp1
, MAKEDI (0, 0))) {
25907 DI opval
= MAKEDI (0, 0);
25908 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
25909 written
|= (1 << 8);
25910 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25912 frvbf_media_overflow (current_cpu
, 8);
25916 DI opval
= tmp_tmp1
;
25917 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
25918 written
|= (1 << 8);
25919 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25926 abuf
->written
= written
;
25931 /* mcpxis: mcpxis$pack $FRinti,$FRintj,$ACC40Sk */
25934 SEM_FN_NAME (frvbf
,mcpxis
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
25936 #define FLD(f) abuf->fields.sfmt_cmmachs.f
25937 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
25938 int UNUSED written
= 0;
25939 IADDR UNUSED pc
= abuf
->addr
;
25940 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
25948 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
25949 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
25950 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
25951 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
25956 tmp_tmp1
= MULDI (EXTHIDI (tmp_argihi
), EXTHIDI (tmp_argjlo
));
25957 tmp_tmp2
= MULDI (EXTHIDI (tmp_argilo
), EXTHIDI (tmp_argjhi
));
25958 tmp_tmp1
= ADDDI (tmp_tmp1
, tmp_tmp2
);
25959 if (GTDI (tmp_tmp1
, MAKEDI (127, 0xffffffff))) {
25962 DI opval
= MAKEDI (127, 0xffffffff);
25963 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
25964 written
|= (1 << 8);
25965 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25967 frvbf_media_overflow (current_cpu
, 8);
25970 if (LTDI (tmp_tmp1
, MAKEDI (0xffffff80, 0))) {
25973 DI opval
= MAKEDI (0xffffff80, 0);
25974 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
25975 written
|= (1 << 8);
25976 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25978 frvbf_media_overflow (current_cpu
, 8);
25982 DI opval
= tmp_tmp1
;
25983 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
25984 written
|= (1 << 8);
25985 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25992 abuf
->written
= written
;
25997 /* mcpxiu: mcpxiu$pack $FRinti,$FRintj,$ACC40Sk */
26000 SEM_FN_NAME (frvbf
,mcpxiu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
26002 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26003 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
26004 int UNUSED written
= 0;
26005 IADDR UNUSED pc
= abuf
->addr
;
26006 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
26014 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
26015 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
26016 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
26017 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
26022 tmp_tmp1
= MULDI (ZEXTHIDI (tmp_argihi
), ZEXTHIDI (tmp_argjlo
));
26023 tmp_tmp2
= MULDI (ZEXTHIDI (tmp_argilo
), ZEXTHIDI (tmp_argjhi
));
26024 tmp_tmp1
= ADDDI (tmp_tmp1
, tmp_tmp2
);
26025 if (GTDI (tmp_tmp1
, MAKEDI (255, 0xffffffff))) {
26028 DI opval
= MAKEDI (255, 0xffffffff);
26029 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
26030 written
|= (1 << 8);
26031 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26033 frvbf_media_overflow (current_cpu
, 8);
26036 if (LTDI (tmp_tmp1
, MAKEDI (0, 0))) {
26039 DI opval
= MAKEDI (0, 0);
26040 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
26041 written
|= (1 << 8);
26042 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26044 frvbf_media_overflow (current_cpu
, 8);
26048 DI opval
= tmp_tmp1
;
26049 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
26050 written
|= (1 << 8);
26051 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26058 abuf
->written
= written
;
26063 /* cmcpxrs: cmcpxrs$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
26066 SEM_FN_NAME (frvbf
,cmcpxrs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
26068 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26069 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
26070 int UNUSED written
= 0;
26071 IADDR UNUSED pc
= abuf
->addr
;
26072 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
26074 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
26081 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
26082 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
26083 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
26084 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
26089 tmp_tmp1
= MULDI (EXTHIDI (tmp_argihi
), EXTHIDI (tmp_argjhi
));
26090 tmp_tmp2
= MULDI (EXTHIDI (tmp_argilo
), EXTHIDI (tmp_argjlo
));
26091 tmp_tmp1
= SUBDI (tmp_tmp1
, tmp_tmp2
);
26092 if (GTDI (tmp_tmp1
, MAKEDI (127, 0xffffffff))) {
26095 DI opval
= MAKEDI (127, 0xffffffff);
26096 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
26097 written
|= (1 << 10);
26098 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26100 frvbf_media_overflow (current_cpu
, 8);
26103 if (LTDI (tmp_tmp1
, MAKEDI (0xffffff80, 0))) {
26106 DI opval
= MAKEDI (0xffffff80, 0);
26107 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
26108 written
|= (1 << 10);
26109 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26111 frvbf_media_overflow (current_cpu
, 8);
26115 DI opval
= tmp_tmp1
;
26116 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
26117 written
|= (1 << 10);
26118 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26126 abuf
->written
= written
;
26131 /* cmcpxru: cmcpxru$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
26134 SEM_FN_NAME (frvbf
,cmcpxru
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
26136 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26137 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
26138 int UNUSED written
= 0;
26139 IADDR UNUSED pc
= abuf
->addr
;
26140 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
26142 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
26149 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
26150 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
26151 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
26152 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
26157 tmp_tmp1
= MULDI (ZEXTHIDI (tmp_argihi
), ZEXTHIDI (tmp_argjhi
));
26158 tmp_tmp2
= MULDI (ZEXTHIDI (tmp_argilo
), ZEXTHIDI (tmp_argjlo
));
26159 tmp_tmp1
= SUBDI (tmp_tmp1
, tmp_tmp2
);
26160 if (GTDI (tmp_tmp1
, MAKEDI (255, 0xffffffff))) {
26163 DI opval
= MAKEDI (255, 0xffffffff);
26164 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
26165 written
|= (1 << 10);
26166 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26168 frvbf_media_overflow (current_cpu
, 8);
26171 if (LTDI (tmp_tmp1
, MAKEDI (0, 0))) {
26174 DI opval
= MAKEDI (0, 0);
26175 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
26176 written
|= (1 << 10);
26177 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26179 frvbf_media_overflow (current_cpu
, 8);
26183 DI opval
= tmp_tmp1
;
26184 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
26185 written
|= (1 << 10);
26186 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26194 abuf
->written
= written
;
26199 /* cmcpxis: cmcpxis$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
26202 SEM_FN_NAME (frvbf
,cmcpxis
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
26204 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26205 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
26206 int UNUSED written
= 0;
26207 IADDR UNUSED pc
= abuf
->addr
;
26208 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
26210 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
26217 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
26218 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
26219 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
26220 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
26225 tmp_tmp1
= MULDI (EXTHIDI (tmp_argihi
), EXTHIDI (tmp_argjlo
));
26226 tmp_tmp2
= MULDI (EXTHIDI (tmp_argilo
), EXTHIDI (tmp_argjhi
));
26227 tmp_tmp1
= ADDDI (tmp_tmp1
, tmp_tmp2
);
26228 if (GTDI (tmp_tmp1
, MAKEDI (127, 0xffffffff))) {
26231 DI opval
= MAKEDI (127, 0xffffffff);
26232 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
26233 written
|= (1 << 10);
26234 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26236 frvbf_media_overflow (current_cpu
, 8);
26239 if (LTDI (tmp_tmp1
, MAKEDI (0xffffff80, 0))) {
26242 DI opval
= MAKEDI (0xffffff80, 0);
26243 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
26244 written
|= (1 << 10);
26245 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26247 frvbf_media_overflow (current_cpu
, 8);
26251 DI opval
= tmp_tmp1
;
26252 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
26253 written
|= (1 << 10);
26254 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26262 abuf
->written
= written
;
26267 /* cmcpxiu: cmcpxiu$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
26270 SEM_FN_NAME (frvbf
,cmcpxiu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
26272 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26273 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
26274 int UNUSED written
= 0;
26275 IADDR UNUSED pc
= abuf
->addr
;
26276 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
26278 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
26285 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
26286 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
26287 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
26288 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
26293 tmp_tmp1
= MULDI (ZEXTHIDI (tmp_argihi
), ZEXTHIDI (tmp_argjlo
));
26294 tmp_tmp2
= MULDI (ZEXTHIDI (tmp_argilo
), ZEXTHIDI (tmp_argjhi
));
26295 tmp_tmp1
= ADDDI (tmp_tmp1
, tmp_tmp2
);
26296 if (GTDI (tmp_tmp1
, MAKEDI (255, 0xffffffff))) {
26299 DI opval
= MAKEDI (255, 0xffffffff);
26300 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
26301 written
|= (1 << 10);
26302 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26304 frvbf_media_overflow (current_cpu
, 8);
26307 if (LTDI (tmp_tmp1
, MAKEDI (0, 0))) {
26310 DI opval
= MAKEDI (0, 0);
26311 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
26312 written
|= (1 << 10);
26313 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26315 frvbf_media_overflow (current_cpu
, 8);
26319 DI opval
= tmp_tmp1
;
26320 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
26321 written
|= (1 << 10);
26322 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26330 abuf
->written
= written
;
26335 /* mqcpxrs: mqcpxrs$pack $FRintieven,$FRintjeven,$ACC40Sk */
26338 SEM_FN_NAME (frvbf
,mqcpxrs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
26340 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
26341 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
26342 int UNUSED written
= 0;
26343 IADDR UNUSED pc
= abuf
->addr
;
26344 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
26346 if (ANDSI (FLD (f_ACC40Sk
), SUBSI (2, 1))) {
26347 frvbf_media_acc_not_aligned (current_cpu
);
26349 if (ORIF (ANDSI (FLD (f_FRi
), SUBSI (2, 1)), ANDSI (FLD (f_FRj
), SUBSI (2, 1)))) {
26350 frvbf_media_register_not_aligned (current_cpu
);
26358 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
26359 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
26360 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
26361 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
26366 tmp_tmp1
= MULDI (EXTHIDI (tmp_argihi
), EXTHIDI (tmp_argjhi
));
26367 tmp_tmp2
= MULDI (EXTHIDI (tmp_argilo
), EXTHIDI (tmp_argjlo
));
26368 tmp_tmp1
= SUBDI (tmp_tmp1
, tmp_tmp2
);
26369 if (GTDI (tmp_tmp1
, MAKEDI (127, 0xffffffff))) {
26372 DI opval
= MAKEDI (127, 0xffffffff);
26373 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
26374 written
|= (1 << 13);
26375 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26377 frvbf_media_overflow (current_cpu
, 8);
26380 if (LTDI (tmp_tmp1
, MAKEDI (0xffffff80, 0))) {
26383 DI opval
= MAKEDI (0xffffff80, 0);
26384 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
26385 written
|= (1 << 13);
26386 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26388 frvbf_media_overflow (current_cpu
, 8);
26392 DI opval
= tmp_tmp1
;
26393 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
26394 written
|= (1 << 13);
26395 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26401 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
26402 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
26403 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
26404 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
26409 tmp_tmp1
= MULDI (EXTHIDI (tmp_argihi
), EXTHIDI (tmp_argjhi
));
26410 tmp_tmp2
= MULDI (EXTHIDI (tmp_argilo
), EXTHIDI (tmp_argjlo
));
26411 tmp_tmp1
= SUBDI (tmp_tmp1
, tmp_tmp2
);
26412 if (GTDI (tmp_tmp1
, MAKEDI (127, 0xffffffff))) {
26415 DI opval
= MAKEDI (127, 0xffffffff);
26416 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (1)), opval
);
26417 written
|= (1 << 14);
26418 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26420 frvbf_media_overflow (current_cpu
, 4);
26423 if (LTDI (tmp_tmp1
, MAKEDI (0xffffff80, 0))) {
26426 DI opval
= MAKEDI (0xffffff80, 0);
26427 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (1)), opval
);
26428 written
|= (1 << 14);
26429 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26431 frvbf_media_overflow (current_cpu
, 4);
26435 DI opval
= tmp_tmp1
;
26436 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (1)), opval
);
26437 written
|= (1 << 14);
26438 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26447 abuf
->written
= written
;
26452 /* mqcpxru: mqcpxru$pack $FRintieven,$FRintjeven,$ACC40Sk */
26455 SEM_FN_NAME (frvbf
,mqcpxru
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
26457 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
26458 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
26459 int UNUSED written
= 0;
26460 IADDR UNUSED pc
= abuf
->addr
;
26461 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
26463 if (ANDSI (FLD (f_ACC40Sk
), SUBSI (2, 1))) {
26464 frvbf_media_acc_not_aligned (current_cpu
);
26466 if (ORIF (ANDSI (FLD (f_FRi
), SUBSI (2, 1)), ANDSI (FLD (f_FRj
), SUBSI (2, 1)))) {
26467 frvbf_media_register_not_aligned (current_cpu
);
26475 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
26476 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
26477 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
26478 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
26483 tmp_tmp1
= MULDI (ZEXTHIDI (tmp_argihi
), ZEXTHIDI (tmp_argjhi
));
26484 tmp_tmp2
= MULDI (ZEXTHIDI (tmp_argilo
), ZEXTHIDI (tmp_argjlo
));
26485 tmp_tmp1
= SUBDI (tmp_tmp1
, tmp_tmp2
);
26486 if (GTDI (tmp_tmp1
, MAKEDI (255, 0xffffffff))) {
26489 DI opval
= MAKEDI (255, 0xffffffff);
26490 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
26491 written
|= (1 << 13);
26492 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26494 frvbf_media_overflow (current_cpu
, 8);
26497 if (LTDI (tmp_tmp1
, MAKEDI (0, 0))) {
26500 DI opval
= MAKEDI (0, 0);
26501 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
26502 written
|= (1 << 13);
26503 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26505 frvbf_media_overflow (current_cpu
, 8);
26509 DI opval
= tmp_tmp1
;
26510 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
26511 written
|= (1 << 13);
26512 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26518 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
26519 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
26520 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
26521 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
26526 tmp_tmp1
= MULDI (ZEXTHIDI (tmp_argihi
), ZEXTHIDI (tmp_argjhi
));
26527 tmp_tmp2
= MULDI (ZEXTHIDI (tmp_argilo
), ZEXTHIDI (tmp_argjlo
));
26528 tmp_tmp1
= SUBDI (tmp_tmp1
, tmp_tmp2
);
26529 if (GTDI (tmp_tmp1
, MAKEDI (255, 0xffffffff))) {
26532 DI opval
= MAKEDI (255, 0xffffffff);
26533 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (1)), opval
);
26534 written
|= (1 << 14);
26535 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26537 frvbf_media_overflow (current_cpu
, 4);
26540 if (LTDI (tmp_tmp1
, MAKEDI (0, 0))) {
26543 DI opval
= MAKEDI (0, 0);
26544 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (1)), opval
);
26545 written
|= (1 << 14);
26546 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26548 frvbf_media_overflow (current_cpu
, 4);
26552 DI opval
= tmp_tmp1
;
26553 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (1)), opval
);
26554 written
|= (1 << 14);
26555 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26564 abuf
->written
= written
;
26569 /* mqcpxis: mqcpxis$pack $FRintieven,$FRintjeven,$ACC40Sk */
26572 SEM_FN_NAME (frvbf
,mqcpxis
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
26574 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
26575 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
26576 int UNUSED written
= 0;
26577 IADDR UNUSED pc
= abuf
->addr
;
26578 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
26580 if (ANDSI (FLD (f_ACC40Sk
), SUBSI (2, 1))) {
26581 frvbf_media_acc_not_aligned (current_cpu
);
26583 if (ORIF (ANDSI (FLD (f_FRi
), SUBSI (2, 1)), ANDSI (FLD (f_FRj
), SUBSI (2, 1)))) {
26584 frvbf_media_register_not_aligned (current_cpu
);
26592 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
26593 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
26594 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
26595 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
26600 tmp_tmp1
= MULDI (EXTHIDI (tmp_argihi
), EXTHIDI (tmp_argjlo
));
26601 tmp_tmp2
= MULDI (EXTHIDI (tmp_argilo
), EXTHIDI (tmp_argjhi
));
26602 tmp_tmp1
= ADDDI (tmp_tmp1
, tmp_tmp2
);
26603 if (GTDI (tmp_tmp1
, MAKEDI (127, 0xffffffff))) {
26606 DI opval
= MAKEDI (127, 0xffffffff);
26607 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
26608 written
|= (1 << 13);
26609 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26611 frvbf_media_overflow (current_cpu
, 8);
26614 if (LTDI (tmp_tmp1
, MAKEDI (0xffffff80, 0))) {
26617 DI opval
= MAKEDI (0xffffff80, 0);
26618 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
26619 written
|= (1 << 13);
26620 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26622 frvbf_media_overflow (current_cpu
, 8);
26626 DI opval
= tmp_tmp1
;
26627 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
26628 written
|= (1 << 13);
26629 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26635 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
26636 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
26637 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
26638 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
26643 tmp_tmp1
= MULDI (EXTHIDI (tmp_argihi
), EXTHIDI (tmp_argjlo
));
26644 tmp_tmp2
= MULDI (EXTHIDI (tmp_argilo
), EXTHIDI (tmp_argjhi
));
26645 tmp_tmp1
= ADDDI (tmp_tmp1
, tmp_tmp2
);
26646 if (GTDI (tmp_tmp1
, MAKEDI (127, 0xffffffff))) {
26649 DI opval
= MAKEDI (127, 0xffffffff);
26650 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (1)), opval
);
26651 written
|= (1 << 14);
26652 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26654 frvbf_media_overflow (current_cpu
, 4);
26657 if (LTDI (tmp_tmp1
, MAKEDI (0xffffff80, 0))) {
26660 DI opval
= MAKEDI (0xffffff80, 0);
26661 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (1)), opval
);
26662 written
|= (1 << 14);
26663 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26665 frvbf_media_overflow (current_cpu
, 4);
26669 DI opval
= tmp_tmp1
;
26670 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (1)), opval
);
26671 written
|= (1 << 14);
26672 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26681 abuf
->written
= written
;
26686 /* mqcpxiu: mqcpxiu$pack $FRintieven,$FRintjeven,$ACC40Sk */
26689 SEM_FN_NAME (frvbf
,mqcpxiu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
26691 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
26692 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
26693 int UNUSED written
= 0;
26694 IADDR UNUSED pc
= abuf
->addr
;
26695 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
26697 if (ANDSI (FLD (f_ACC40Sk
), SUBSI (2, 1))) {
26698 frvbf_media_acc_not_aligned (current_cpu
);
26700 if (ORIF (ANDSI (FLD (f_FRi
), SUBSI (2, 1)), ANDSI (FLD (f_FRj
), SUBSI (2, 1)))) {
26701 frvbf_media_register_not_aligned (current_cpu
);
26709 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
26710 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
26711 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
26712 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
26717 tmp_tmp1
= MULDI (ZEXTHIDI (tmp_argihi
), ZEXTHIDI (tmp_argjlo
));
26718 tmp_tmp2
= MULDI (ZEXTHIDI (tmp_argilo
), ZEXTHIDI (tmp_argjhi
));
26719 tmp_tmp1
= ADDDI (tmp_tmp1
, tmp_tmp2
);
26720 if (GTDI (tmp_tmp1
, MAKEDI (255, 0xffffffff))) {
26723 DI opval
= MAKEDI (255, 0xffffffff);
26724 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
26725 written
|= (1 << 13);
26726 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26728 frvbf_media_overflow (current_cpu
, 8);
26731 if (LTDI (tmp_tmp1
, MAKEDI (0, 0))) {
26734 DI opval
= MAKEDI (0, 0);
26735 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
26736 written
|= (1 << 13);
26737 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26739 frvbf_media_overflow (current_cpu
, 8);
26743 DI opval
= tmp_tmp1
;
26744 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
26745 written
|= (1 << 13);
26746 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26752 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
26753 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
26754 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
26755 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
26760 tmp_tmp1
= MULDI (ZEXTHIDI (tmp_argihi
), ZEXTHIDI (tmp_argjlo
));
26761 tmp_tmp2
= MULDI (ZEXTHIDI (tmp_argilo
), ZEXTHIDI (tmp_argjhi
));
26762 tmp_tmp1
= ADDDI (tmp_tmp1
, tmp_tmp2
);
26763 if (GTDI (tmp_tmp1
, MAKEDI (255, 0xffffffff))) {
26766 DI opval
= MAKEDI (255, 0xffffffff);
26767 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (1)), opval
);
26768 written
|= (1 << 14);
26769 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26771 frvbf_media_overflow (current_cpu
, 4);
26774 if (LTDI (tmp_tmp1
, MAKEDI (0, 0))) {
26777 DI opval
= MAKEDI (0, 0);
26778 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (1)), opval
);
26779 written
|= (1 << 14);
26780 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26782 frvbf_media_overflow (current_cpu
, 4);
26786 DI opval
= tmp_tmp1
;
26787 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (1)), opval
);
26788 written
|= (1 << 14);
26789 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26798 abuf
->written
= written
;
26803 /* mexpdhw: mexpdhw$pack $FRinti,$u6,$FRintk */
26806 SEM_FN_NAME (frvbf
,mexpdhw
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
26808 #define FLD(f) abuf->fields.sfmt_cmexpdhw.f
26809 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
26810 int UNUSED written
= 0;
26811 IADDR UNUSED pc
= abuf
->addr
;
26812 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
26816 if (ANDSI (FLD (f_u6
), 1)) {
26817 tmp_tmp
= GET_H_FR_LO (((FLD (f_FRi
)) + (0)));
26819 tmp_tmp
= GET_H_FR_HI (((FLD (f_FRi
)) + (0)));
26822 UHI opval
= tmp_tmp
;
26823 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
26824 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
26827 UHI opval
= tmp_tmp
;
26828 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
26829 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
26837 /* cmexpdhw: cmexpdhw$pack $FRinti,$u6,$FRintk,$CCi,$cond */
26840 SEM_FN_NAME (frvbf
,cmexpdhw
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
26842 #define FLD(f) abuf->fields.sfmt_cmexpdhw.f
26843 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
26844 int UNUSED written
= 0;
26845 IADDR UNUSED pc
= abuf
->addr
;
26846 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
26848 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
26851 if (ANDSI (FLD (f_u6
), 1)) {
26852 tmp_tmp
= GET_H_FR_LO (((FLD (f_FRi
)) + (0)));
26854 tmp_tmp
= GET_H_FR_HI (((FLD (f_FRi
)) + (0)));
26857 UHI opval
= tmp_tmp
;
26858 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
26859 written
|= (1 << 7);
26860 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
26863 UHI opval
= tmp_tmp
;
26864 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
26865 written
|= (1 << 8);
26866 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
26871 abuf
->written
= written
;
26876 /* mexpdhd: mexpdhd$pack $FRinti,$u6,$FRintkeven */
26879 SEM_FN_NAME (frvbf
,mexpdhd
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
26881 #define FLD(f) abuf->fields.sfmt_cmexpdhd.f
26882 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
26883 int UNUSED written
= 0;
26884 IADDR UNUSED pc
= abuf
->addr
;
26885 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
26887 if (ANDSI (FLD (f_FRk
), SUBSI (2, 1))) {
26888 frvbf_media_register_not_aligned (current_cpu
);
26893 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRk
)));
26894 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
26895 written
|= (1 << 6);
26896 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
26898 if (ANDSI (FLD (f_u6
), 1)) {
26899 tmp_tmp
= GET_H_FR_LO (((FLD (f_FRi
)) + (0)));
26901 tmp_tmp
= GET_H_FR_HI (((FLD (f_FRi
)) + (0)));
26904 UHI opval
= tmp_tmp
;
26905 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
26906 written
|= (1 << 7);
26907 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
26910 UHI opval
= tmp_tmp
;
26911 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
26912 written
|= (1 << 9);
26913 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
26916 UHI opval
= tmp_tmp
;
26917 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (1)), opval
);
26918 written
|= (1 << 8);
26919 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
26922 UHI opval
= tmp_tmp
;
26923 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (1)), opval
);
26924 written
|= (1 << 10);
26925 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
26930 abuf
->written
= written
;
26935 /* cmexpdhd: cmexpdhd$pack $FRinti,$u6,$FRintkeven,$CCi,$cond */
26938 SEM_FN_NAME (frvbf
,cmexpdhd
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
26940 #define FLD(f) abuf->fields.sfmt_cmexpdhd.f
26941 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
26942 int UNUSED written
= 0;
26943 IADDR UNUSED pc
= abuf
->addr
;
26944 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
26946 if (ANDSI (FLD (f_FRk
), SUBSI (2, 1))) {
26947 frvbf_media_register_not_aligned (current_cpu
);
26949 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
26953 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRk
)));
26954 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
26955 written
|= (1 << 8);
26956 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
26958 if (ANDSI (FLD (f_u6
), 1)) {
26959 tmp_tmp
= GET_H_FR_LO (((FLD (f_FRi
)) + (0)));
26961 tmp_tmp
= GET_H_FR_HI (((FLD (f_FRi
)) + (0)));
26964 UHI opval
= tmp_tmp
;
26965 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
26966 written
|= (1 << 9);
26967 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
26970 UHI opval
= tmp_tmp
;
26971 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
26972 written
|= (1 << 11);
26973 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
26976 UHI opval
= tmp_tmp
;
26977 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (1)), opval
);
26978 written
|= (1 << 10);
26979 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
26982 UHI opval
= tmp_tmp
;
26983 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (1)), opval
);
26984 written
|= (1 << 12);
26985 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
26991 abuf
->written
= written
;
26996 /* mpackh: mpackh$pack $FRinti,$FRintj,$FRintk */
26999 SEM_FN_NAME (frvbf
,mpackh
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
27001 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
27002 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
27003 int UNUSED written
= 0;
27004 IADDR UNUSED pc
= abuf
->addr
;
27005 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
27009 UHI opval
= GET_H_FR_LO (((FLD (f_FRi
)) + (0)));
27010 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
27011 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
27014 UHI opval
= GET_H_FR_LO (((FLD (f_FRj
)) + (0)));
27015 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
27016 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
27024 /* mdpackh: mdpackh$pack $FRintieven,$FRintjeven,$FRintkeven */
27027 SEM_FN_NAME (frvbf
,mdpackh
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
27029 #define FLD(f) abuf->fields.sfmt_mdpackh.f
27030 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
27031 int UNUSED written
= 0;
27032 IADDR UNUSED pc
= abuf
->addr
;
27033 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
27035 if (ORIF (ANDSI (FLD (f_FRi
), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj
), SUBSI (2, 1)), ANDSI (FLD (f_FRk
), SUBSI (2, 1))))) {
27036 frvbf_media_register_not_aligned (current_cpu
);
27040 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRi
)));
27041 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRi
), opval
);
27042 written
|= (1 << 10);
27043 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
27046 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRj
)));
27047 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRj
), opval
);
27048 written
|= (1 << 11);
27049 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
27052 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRk
)));
27053 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
27054 written
|= (1 << 12);
27055 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
27059 UHI opval
= GET_H_FR_LO (((FLD (f_FRi
)) + (0)));
27060 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
27061 written
|= (1 << 13);
27062 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
27065 UHI opval
= GET_H_FR_LO (((FLD (f_FRj
)) + (0)));
27066 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
27067 written
|= (1 << 15);
27068 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
27073 UHI opval
= GET_H_FR_LO (((FLD (f_FRi
)) + (1)));
27074 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (1)), opval
);
27075 written
|= (1 << 14);
27076 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
27079 UHI opval
= GET_H_FR_LO (((FLD (f_FRj
)) + (1)));
27080 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (1)), opval
);
27081 written
|= (1 << 16);
27082 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
27088 abuf
->written
= written
;
27093 /* munpackh: munpackh$pack $FRinti,$FRintkeven */
27096 SEM_FN_NAME (frvbf
,munpackh
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
27098 #define FLD(f) abuf->fields.sfmt_munpackh.f
27099 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
27100 int UNUSED written
= 0;
27101 IADDR UNUSED pc
= abuf
->addr
;
27102 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
27104 if (ANDSI (FLD (f_FRk
), SUBSI (2, 1))) {
27105 frvbf_media_register_not_aligned (current_cpu
);
27109 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRi
)));
27110 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRi
), opval
);
27111 written
|= (1 << 6);
27112 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
27115 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRk
)));
27116 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
27117 written
|= (1 << 7);
27118 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
27122 UHI opval
= GET_H_FR_HI (((FLD (f_FRi
)) + (0)));
27123 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
27124 written
|= (1 << 8);
27125 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
27128 UHI opval
= GET_H_FR_HI (((FLD (f_FRi
)) + (0)));
27129 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
27130 written
|= (1 << 10);
27131 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
27134 UHI opval
= GET_H_FR_LO (((FLD (f_FRi
)) + (0)));
27135 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (ADDSI (0, 1))), opval
);
27136 written
|= (1 << 9);
27137 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
27140 UHI opval
= GET_H_FR_LO (((FLD (f_FRi
)) + (0)));
27141 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (ADDSI (0, 1))), opval
);
27142 written
|= (1 << 11);
27143 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
27149 abuf
->written
= written
;
27154 /* mdunpackh: mdunpackh$pack $FRintieven,$FRintk */
27157 SEM_FN_NAME (frvbf
,mdunpackh
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
27159 #define FLD(f) abuf->fields.sfmt_mdunpackh.f
27160 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
27161 int UNUSED written
= 0;
27162 IADDR UNUSED pc
= abuf
->addr
;
27163 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
27165 if (ORIF (ANDSI (FLD (f_FRi
), SUBSI (2, 1)), ANDSI (FLD (f_FRk
), SUBSI (4, 1)))) {
27166 frvbf_media_register_not_aligned (current_cpu
);
27170 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRi
)));
27171 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRi
), opval
);
27172 written
|= (1 << 8);
27173 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
27176 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRk
)));
27177 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
27178 written
|= (1 << 9);
27179 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
27183 UHI opval
= GET_H_FR_HI (((FLD (f_FRi
)) + (0)));
27184 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
27185 written
|= (1 << 10);
27186 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
27189 UHI opval
= GET_H_FR_HI (((FLD (f_FRi
)) + (0)));
27190 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
27191 written
|= (1 << 14);
27192 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
27195 UHI opval
= GET_H_FR_LO (((FLD (f_FRi
)) + (0)));
27196 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (ADDSI (0, 1))), opval
);
27197 written
|= (1 << 12);
27198 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
27201 UHI opval
= GET_H_FR_LO (((FLD (f_FRi
)) + (0)));
27202 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (ADDSI (0, 1))), opval
);
27203 written
|= (1 << 16);
27204 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
27209 UHI opval
= GET_H_FR_HI (((FLD (f_FRi
)) + (1)));
27210 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (2)), opval
);
27211 written
|= (1 << 11);
27212 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
27215 UHI opval
= GET_H_FR_HI (((FLD (f_FRi
)) + (1)));
27216 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (2)), opval
);
27217 written
|= (1 << 15);
27218 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
27221 UHI opval
= GET_H_FR_LO (((FLD (f_FRi
)) + (1)));
27222 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (ADDSI (2, 1))), opval
);
27223 written
|= (1 << 13);
27224 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
27227 UHI opval
= GET_H_FR_LO (((FLD (f_FRi
)) + (1)));
27228 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (ADDSI (2, 1))), opval
);
27229 written
|= (1 << 17);
27230 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
27236 abuf
->written
= written
;
27241 /* mbtoh: mbtoh$pack $FRintj,$FRintkeven */
27244 SEM_FN_NAME (frvbf
,mbtoh
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
27246 #define FLD(f) abuf->fields.sfmt_cmbtoh.f
27247 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
27248 int UNUSED written
= 0;
27249 IADDR UNUSED pc
= abuf
->addr
;
27250 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
27254 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRj
)));
27255 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRj
), opval
);
27256 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
27259 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRk
)));
27260 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
27261 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
27263 if (ANDSI (FLD (f_FRk
), SUBSI (2, 1))) {
27264 frvbf_media_register_not_aligned (current_cpu
);
27268 UHI opval
= GET_H_FR_3 (((FLD (f_FRj
)) + (0)));
27269 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
27270 written
|= (1 << 10);
27271 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
27274 UHI opval
= GET_H_FR_2 (((FLD (f_FRj
)) + (0)));
27275 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
27276 written
|= (1 << 12);
27277 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
27280 UHI opval
= GET_H_FR_1 (((FLD (f_FRj
)) + (0)));
27281 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (1)), opval
);
27282 written
|= (1 << 11);
27283 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
27286 UHI opval
= GET_H_FR_0 (((FLD (f_FRj
)) + (0)));
27287 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (1)), opval
);
27288 written
|= (1 << 13);
27289 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
27295 abuf
->written
= written
;
27300 /* cmbtoh: cmbtoh$pack $FRintj,$FRintkeven,$CCi,$cond */
27303 SEM_FN_NAME (frvbf
,cmbtoh
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
27305 #define FLD(f) abuf->fields.sfmt_cmbtoh.f
27306 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
27307 int UNUSED written
= 0;
27308 IADDR UNUSED pc
= abuf
->addr
;
27309 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
27313 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRj
)));
27314 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRj
), opval
);
27315 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
27318 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRk
)));
27319 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
27320 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
27322 if (ANDSI (FLD (f_FRk
), SUBSI (2, 1))) {
27323 frvbf_media_register_not_aligned (current_cpu
);
27325 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
27328 UHI opval
= GET_H_FR_3 (((FLD (f_FRj
)) + (0)));
27329 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
27330 written
|= (1 << 12);
27331 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
27334 UHI opval
= GET_H_FR_2 (((FLD (f_FRj
)) + (0)));
27335 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
27336 written
|= (1 << 14);
27337 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
27340 UHI opval
= GET_H_FR_1 (((FLD (f_FRj
)) + (0)));
27341 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (1)), opval
);
27342 written
|= (1 << 13);
27343 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
27346 UHI opval
= GET_H_FR_0 (((FLD (f_FRj
)) + (0)));
27347 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (1)), opval
);
27348 written
|= (1 << 15);
27349 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
27356 abuf
->written
= written
;
27361 /* mhtob: mhtob$pack $FRintjeven,$FRintk */
27364 SEM_FN_NAME (frvbf
,mhtob
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
27366 #define FLD(f) abuf->fields.sfmt_cmhtob.f
27367 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
27368 int UNUSED written
= 0;
27369 IADDR UNUSED pc
= abuf
->addr
;
27370 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
27374 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRj
)));
27375 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRj
), opval
);
27376 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
27379 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRk
)));
27380 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
27381 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
27383 if (ANDSI (FLD (f_FRj
), SUBSI (2, 1))) {
27384 frvbf_media_register_not_aligned (current_cpu
);
27388 UHI opval
= GET_H_FR_HI (((FLD (f_FRj
)) + (0)));
27389 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_3_set
, ((FLD (f_FRk
)) + (0)), opval
);
27390 written
|= (1 << 13);
27391 TRACE_RESULT (current_cpu
, abuf
, "fr_3", 'x', opval
);
27394 UHI opval
= GET_H_FR_LO (((FLD (f_FRj
)) + (0)));
27395 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_2_set
, ((FLD (f_FRk
)) + (0)), opval
);
27396 written
|= (1 << 12);
27397 TRACE_RESULT (current_cpu
, abuf
, "fr_2", 'x', opval
);
27400 UHI opval
= GET_H_FR_HI (((FLD (f_FRj
)) + (1)));
27401 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_1_set
, ((FLD (f_FRk
)) + (0)), opval
);
27402 written
|= (1 << 11);
27403 TRACE_RESULT (current_cpu
, abuf
, "fr_1", 'x', opval
);
27406 UHI opval
= GET_H_FR_LO (((FLD (f_FRj
)) + (1)));
27407 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_0_set
, ((FLD (f_FRk
)) + (0)), opval
);
27408 written
|= (1 << 10);
27409 TRACE_RESULT (current_cpu
, abuf
, "fr_0", 'x', opval
);
27415 abuf
->written
= written
;
27420 /* cmhtob: cmhtob$pack $FRintjeven,$FRintk,$CCi,$cond */
27423 SEM_FN_NAME (frvbf
,cmhtob
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
27425 #define FLD(f) abuf->fields.sfmt_cmhtob.f
27426 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
27427 int UNUSED written
= 0;
27428 IADDR UNUSED pc
= abuf
->addr
;
27429 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
27433 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRj
)));
27434 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRj
), opval
);
27435 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
27438 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRk
)));
27439 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
27440 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
27442 if (ANDSI (FLD (f_FRj
), SUBSI (2, 1))) {
27443 frvbf_media_register_not_aligned (current_cpu
);
27445 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
27448 UHI opval
= GET_H_FR_HI (((FLD (f_FRj
)) + (0)));
27449 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_3_set
, ((FLD (f_FRk
)) + (0)), opval
);
27450 written
|= (1 << 15);
27451 TRACE_RESULT (current_cpu
, abuf
, "fr_3", 'x', opval
);
27454 UHI opval
= GET_H_FR_LO (((FLD (f_FRj
)) + (0)));
27455 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_2_set
, ((FLD (f_FRk
)) + (0)), opval
);
27456 written
|= (1 << 14);
27457 TRACE_RESULT (current_cpu
, abuf
, "fr_2", 'x', opval
);
27460 UHI opval
= GET_H_FR_HI (((FLD (f_FRj
)) + (1)));
27461 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_1_set
, ((FLD (f_FRk
)) + (0)), opval
);
27462 written
|= (1 << 13);
27463 TRACE_RESULT (current_cpu
, abuf
, "fr_1", 'x', opval
);
27466 UHI opval
= GET_H_FR_LO (((FLD (f_FRj
)) + (1)));
27467 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_0_set
, ((FLD (f_FRk
)) + (0)), opval
);
27468 written
|= (1 << 12);
27469 TRACE_RESULT (current_cpu
, abuf
, "fr_0", 'x', opval
);
27476 abuf
->written
= written
;
27481 /* mbtohe: mbtohe$pack $FRintj,$FRintk */
27484 SEM_FN_NAME (frvbf
,mbtohe
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
27486 #define FLD(f) abuf->fields.sfmt_cmbtohe.f
27487 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
27488 int UNUSED written
= 0;
27489 IADDR UNUSED pc
= abuf
->addr
;
27490 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
27494 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRj
)));
27495 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRj
), opval
);
27496 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
27499 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRk
)));
27500 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
27501 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
27503 if (ANDSI (FLD (f_FRk
), SUBSI (4, 1))) {
27504 frvbf_media_register_not_aligned (current_cpu
);
27508 UHI opval
= GET_H_FR_3 (((FLD (f_FRj
)) + (0)));
27509 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
27510 written
|= (1 << 10);
27511 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
27514 UHI opval
= GET_H_FR_3 (((FLD (f_FRj
)) + (0)));
27515 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
27516 written
|= (1 << 14);
27517 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
27520 UHI opval
= GET_H_FR_2 (((FLD (f_FRj
)) + (0)));
27521 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (1)), opval
);
27522 written
|= (1 << 11);
27523 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
27526 UHI opval
= GET_H_FR_2 (((FLD (f_FRj
)) + (0)));
27527 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (1)), opval
);
27528 written
|= (1 << 15);
27529 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
27532 UHI opval
= GET_H_FR_1 (((FLD (f_FRj
)) + (0)));
27533 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (2)), opval
);
27534 written
|= (1 << 12);
27535 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
27538 UHI opval
= GET_H_FR_1 (((FLD (f_FRj
)) + (0)));
27539 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (2)), opval
);
27540 written
|= (1 << 16);
27541 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
27544 UHI opval
= GET_H_FR_0 (((FLD (f_FRj
)) + (0)));
27545 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (3)), opval
);
27546 written
|= (1 << 13);
27547 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
27550 UHI opval
= GET_H_FR_0 (((FLD (f_FRj
)) + (0)));
27551 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (3)), opval
);
27552 written
|= (1 << 17);
27553 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
27559 abuf
->written
= written
;
27564 /* cmbtohe: cmbtohe$pack $FRintj,$FRintk,$CCi,$cond */
27567 SEM_FN_NAME (frvbf
,cmbtohe
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
27569 #define FLD(f) abuf->fields.sfmt_cmbtohe.f
27570 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
27571 int UNUSED written
= 0;
27572 IADDR UNUSED pc
= abuf
->addr
;
27573 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
27577 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRj
)));
27578 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRj
), opval
);
27579 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
27582 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRk
)));
27583 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
27584 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
27586 if (ANDSI (FLD (f_FRk
), SUBSI (4, 1))) {
27587 frvbf_media_register_not_aligned (current_cpu
);
27589 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
27592 UHI opval
= GET_H_FR_3 (((FLD (f_FRj
)) + (0)));
27593 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
27594 written
|= (1 << 12);
27595 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
27598 UHI opval
= GET_H_FR_3 (((FLD (f_FRj
)) + (0)));
27599 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
27600 written
|= (1 << 16);
27601 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
27604 UHI opval
= GET_H_FR_2 (((FLD (f_FRj
)) + (0)));
27605 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (1)), opval
);
27606 written
|= (1 << 13);
27607 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
27610 UHI opval
= GET_H_FR_2 (((FLD (f_FRj
)) + (0)));
27611 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (1)), opval
);
27612 written
|= (1 << 17);
27613 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
27616 UHI opval
= GET_H_FR_1 (((FLD (f_FRj
)) + (0)));
27617 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (2)), opval
);
27618 written
|= (1 << 14);
27619 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
27622 UHI opval
= GET_H_FR_1 (((FLD (f_FRj
)) + (0)));
27623 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (2)), opval
);
27624 written
|= (1 << 18);
27625 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
27628 UHI opval
= GET_H_FR_0 (((FLD (f_FRj
)) + (0)));
27629 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (3)), opval
);
27630 written
|= (1 << 15);
27631 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
27634 UHI opval
= GET_H_FR_0 (((FLD (f_FRj
)) + (0)));
27635 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (3)), opval
);
27636 written
|= (1 << 19);
27637 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
27644 abuf
->written
= written
;
27649 /* mnop: mnop$pack */
27652 SEM_FN_NAME (frvbf
,mnop
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
27654 #define FLD(f) abuf->fields.fmt_empty.f
27655 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
27656 int UNUSED written
= 0;
27657 IADDR UNUSED pc
= abuf
->addr
;
27658 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
27660 ((void) 0); /*nop*/
27666 /* mclracc-0: mclracc$pack $ACC40Sk,$A0 */
27669 SEM_FN_NAME (frvbf
,mclracc_0
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
27671 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
27672 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
27673 int UNUSED written
= 0;
27674 IADDR UNUSED pc
= abuf
->addr
;
27675 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
27677 frvbf_clear_accumulators (current_cpu
, FLD (f_ACC40Sk
), 0);
27683 /* mclracc-1: mclracc$pack $ACC40Sk,$A1 */
27686 SEM_FN_NAME (frvbf
,mclracc_1
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
27688 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
27689 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
27690 int UNUSED written
= 0;
27691 IADDR UNUSED pc
= abuf
->addr
;
27692 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
27694 frvbf_clear_accumulators (current_cpu
, FLD (f_ACC40Sk
), 1);
27700 /* mrdacc: mrdacc$pack $ACC40Si,$FRintk */
27703 SEM_FN_NAME (frvbf
,mrdacc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
27705 #define FLD(f) abuf->fields.sfmt_mcuti.f
27706 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
27707 int UNUSED written
= 0;
27708 IADDR UNUSED pc
= abuf
->addr
;
27709 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
27712 SI opval
= GET_H_ACC40S (FLD (f_ACC40Si
));
27713 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
27714 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
27721 /* mrdaccg: mrdaccg$pack $ACCGi,$FRintk */
27724 SEM_FN_NAME (frvbf
,mrdaccg
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
27726 #define FLD(f) abuf->fields.sfmt_mrdaccg.f
27727 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
27728 int UNUSED written
= 0;
27729 IADDR UNUSED pc
= abuf
->addr
;
27730 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
27733 SI opval
= GET_H_ACCG (FLD (f_ACCGi
));
27734 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
27735 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
27742 /* mwtacc: mwtacc$pack $FRinti,$ACC40Sk */
27745 SEM_FN_NAME (frvbf
,mwtacc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
27747 #define FLD(f) abuf->fields.sfmt_cmmachs.f
27748 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
27749 int UNUSED written
= 0;
27750 IADDR UNUSED pc
= abuf
->addr
;
27751 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
27754 DI opval
= ORDI (ANDDI (GET_H_ACC40S (FLD (f_ACC40Sk
)), MAKEDI (0xffffffff, 0)), GET_H_FR_INT (FLD (f_FRi
)));
27755 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
27756 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
27763 /* mwtaccg: mwtaccg$pack $FRinti,$ACCGk */
27766 SEM_FN_NAME (frvbf
,mwtaccg
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
27768 #define FLD(f) abuf->fields.sfmt_mwtaccg.f
27769 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
27770 int UNUSED written
= 0;
27771 IADDR UNUSED pc
= abuf
->addr
;
27772 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
27775 USI opval
= GET_H_FR_INT (FLD (f_FRi
));
27776 sim_queue_fn_si_write (current_cpu
, frvbf_h_accg_set
, FLD (f_ACCGk
), opval
);
27777 TRACE_RESULT (current_cpu
, abuf
, "accg", 'x', opval
);
27784 /* mcop1: mcop1$pack $FRi,$FRj,$FRk */
27787 SEM_FN_NAME (frvbf
,mcop1
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
27789 #define FLD(f) abuf->fields.fmt_empty.f
27790 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
27791 int UNUSED written
= 0;
27792 IADDR UNUSED pc
= abuf
->addr
;
27793 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
27795 frvbf_media_cop (current_cpu
, 1);
27801 /* mcop2: mcop2$pack $FRi,$FRj,$FRk */
27804 SEM_FN_NAME (frvbf
,mcop2
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
27806 #define FLD(f) abuf->fields.fmt_empty.f
27807 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
27808 int UNUSED written
= 0;
27809 IADDR UNUSED pc
= abuf
->addr
;
27810 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
27812 frvbf_media_cop (current_cpu
, 2);
27818 /* fnop: fnop$pack */
27821 SEM_FN_NAME (frvbf
,fnop
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
27823 #define FLD(f) abuf->fields.fmt_empty.f
27824 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
27825 int UNUSED written
= 0;
27826 IADDR UNUSED pc
= abuf
->addr
;
27827 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
27829 ((void) 0); /*nop*/
27835 /* Table of all semantic fns. */
27837 static const struct sem_fn_desc sem_fns
[] = {
27838 { FRVBF_INSN_X_INVALID
, SEM_FN_NAME (frvbf
,x_invalid
) },
27839 { FRVBF_INSN_X_AFTER
, SEM_FN_NAME (frvbf
,x_after
) },
27840 { FRVBF_INSN_X_BEFORE
, SEM_FN_NAME (frvbf
,x_before
) },
27841 { FRVBF_INSN_X_CTI_CHAIN
, SEM_FN_NAME (frvbf
,x_cti_chain
) },
27842 { FRVBF_INSN_X_CHAIN
, SEM_FN_NAME (frvbf
,x_chain
) },
27843 { FRVBF_INSN_X_BEGIN
, SEM_FN_NAME (frvbf
,x_begin
) },
27844 { FRVBF_INSN_ADD
, SEM_FN_NAME (frvbf
,add
) },
27845 { FRVBF_INSN_SUB
, SEM_FN_NAME (frvbf
,sub
) },
27846 { FRVBF_INSN_AND
, SEM_FN_NAME (frvbf
,and) },
27847 { FRVBF_INSN_OR
, SEM_FN_NAME (frvbf
,or) },
27848 { FRVBF_INSN_XOR
, SEM_FN_NAME (frvbf
,xor) },
27849 { FRVBF_INSN_NOT
, SEM_FN_NAME (frvbf
,not) },
27850 { FRVBF_INSN_SDIV
, SEM_FN_NAME (frvbf
,sdiv
) },
27851 { FRVBF_INSN_NSDIV
, SEM_FN_NAME (frvbf
,nsdiv
) },
27852 { FRVBF_INSN_UDIV
, SEM_FN_NAME (frvbf
,udiv
) },
27853 { FRVBF_INSN_NUDIV
, SEM_FN_NAME (frvbf
,nudiv
) },
27854 { FRVBF_INSN_SMUL
, SEM_FN_NAME (frvbf
,smul
) },
27855 { FRVBF_INSN_UMUL
, SEM_FN_NAME (frvbf
,umul
) },
27856 { FRVBF_INSN_SLL
, SEM_FN_NAME (frvbf
,sll
) },
27857 { FRVBF_INSN_SRL
, SEM_FN_NAME (frvbf
,srl
) },
27858 { FRVBF_INSN_SRA
, SEM_FN_NAME (frvbf
,sra
) },
27859 { FRVBF_INSN_SCAN
, SEM_FN_NAME (frvbf
,scan
) },
27860 { FRVBF_INSN_CADD
, SEM_FN_NAME (frvbf
,cadd
) },
27861 { FRVBF_INSN_CSUB
, SEM_FN_NAME (frvbf
,csub
) },
27862 { FRVBF_INSN_CAND
, SEM_FN_NAME (frvbf
,cand
) },
27863 { FRVBF_INSN_COR
, SEM_FN_NAME (frvbf
,cor
) },
27864 { FRVBF_INSN_CXOR
, SEM_FN_NAME (frvbf
,cxor
) },
27865 { FRVBF_INSN_CNOT
, SEM_FN_NAME (frvbf
,cnot
) },
27866 { FRVBF_INSN_CSMUL
, SEM_FN_NAME (frvbf
,csmul
) },
27867 { FRVBF_INSN_CSDIV
, SEM_FN_NAME (frvbf
,csdiv
) },
27868 { FRVBF_INSN_CUDIV
, SEM_FN_NAME (frvbf
,cudiv
) },
27869 { FRVBF_INSN_CSLL
, SEM_FN_NAME (frvbf
,csll
) },
27870 { FRVBF_INSN_CSRL
, SEM_FN_NAME (frvbf
,csrl
) },
27871 { FRVBF_INSN_CSRA
, SEM_FN_NAME (frvbf
,csra
) },
27872 { FRVBF_INSN_CSCAN
, SEM_FN_NAME (frvbf
,cscan
) },
27873 { FRVBF_INSN_ADDCC
, SEM_FN_NAME (frvbf
,addcc
) },
27874 { FRVBF_INSN_SUBCC
, SEM_FN_NAME (frvbf
,subcc
) },
27875 { FRVBF_INSN_ANDCC
, SEM_FN_NAME (frvbf
,andcc
) },
27876 { FRVBF_INSN_ORCC
, SEM_FN_NAME (frvbf
,orcc
) },
27877 { FRVBF_INSN_XORCC
, SEM_FN_NAME (frvbf
,xorcc
) },
27878 { FRVBF_INSN_SLLCC
, SEM_FN_NAME (frvbf
,sllcc
) },
27879 { FRVBF_INSN_SRLCC
, SEM_FN_NAME (frvbf
,srlcc
) },
27880 { FRVBF_INSN_SRACC
, SEM_FN_NAME (frvbf
,sracc
) },
27881 { FRVBF_INSN_SMULCC
, SEM_FN_NAME (frvbf
,smulcc
) },
27882 { FRVBF_INSN_UMULCC
, SEM_FN_NAME (frvbf
,umulcc
) },
27883 { FRVBF_INSN_CADDCC
, SEM_FN_NAME (frvbf
,caddcc
) },
27884 { FRVBF_INSN_CSUBCC
, SEM_FN_NAME (frvbf
,csubcc
) },
27885 { FRVBF_INSN_CSMULCC
, SEM_FN_NAME (frvbf
,csmulcc
) },
27886 { FRVBF_INSN_CANDCC
, SEM_FN_NAME (frvbf
,candcc
) },
27887 { FRVBF_INSN_CORCC
, SEM_FN_NAME (frvbf
,corcc
) },
27888 { FRVBF_INSN_CXORCC
, SEM_FN_NAME (frvbf
,cxorcc
) },
27889 { FRVBF_INSN_CSLLCC
, SEM_FN_NAME (frvbf
,csllcc
) },
27890 { FRVBF_INSN_CSRLCC
, SEM_FN_NAME (frvbf
,csrlcc
) },
27891 { FRVBF_INSN_CSRACC
, SEM_FN_NAME (frvbf
,csracc
) },
27892 { FRVBF_INSN_ADDX
, SEM_FN_NAME (frvbf
,addx
) },
27893 { FRVBF_INSN_SUBX
, SEM_FN_NAME (frvbf
,subx
) },
27894 { FRVBF_INSN_ADDXCC
, SEM_FN_NAME (frvbf
,addxcc
) },
27895 { FRVBF_INSN_SUBXCC
, SEM_FN_NAME (frvbf
,subxcc
) },
27896 { FRVBF_INSN_ADDI
, SEM_FN_NAME (frvbf
,addi
) },
27897 { FRVBF_INSN_SUBI
, SEM_FN_NAME (frvbf
,subi
) },
27898 { FRVBF_INSN_ANDI
, SEM_FN_NAME (frvbf
,andi
) },
27899 { FRVBF_INSN_ORI
, SEM_FN_NAME (frvbf
,ori
) },
27900 { FRVBF_INSN_XORI
, SEM_FN_NAME (frvbf
,xori
) },
27901 { FRVBF_INSN_SDIVI
, SEM_FN_NAME (frvbf
,sdivi
) },
27902 { FRVBF_INSN_NSDIVI
, SEM_FN_NAME (frvbf
,nsdivi
) },
27903 { FRVBF_INSN_UDIVI
, SEM_FN_NAME (frvbf
,udivi
) },
27904 { FRVBF_INSN_NUDIVI
, SEM_FN_NAME (frvbf
,nudivi
) },
27905 { FRVBF_INSN_SMULI
, SEM_FN_NAME (frvbf
,smuli
) },
27906 { FRVBF_INSN_UMULI
, SEM_FN_NAME (frvbf
,umuli
) },
27907 { FRVBF_INSN_SLLI
, SEM_FN_NAME (frvbf
,slli
) },
27908 { FRVBF_INSN_SRLI
, SEM_FN_NAME (frvbf
,srli
) },
27909 { FRVBF_INSN_SRAI
, SEM_FN_NAME (frvbf
,srai
) },
27910 { FRVBF_INSN_SCANI
, SEM_FN_NAME (frvbf
,scani
) },
27911 { FRVBF_INSN_ADDICC
, SEM_FN_NAME (frvbf
,addicc
) },
27912 { FRVBF_INSN_SUBICC
, SEM_FN_NAME (frvbf
,subicc
) },
27913 { FRVBF_INSN_ANDICC
, SEM_FN_NAME (frvbf
,andicc
) },
27914 { FRVBF_INSN_ORICC
, SEM_FN_NAME (frvbf
,oricc
) },
27915 { FRVBF_INSN_XORICC
, SEM_FN_NAME (frvbf
,xoricc
) },
27916 { FRVBF_INSN_SMULICC
, SEM_FN_NAME (frvbf
,smulicc
) },
27917 { FRVBF_INSN_UMULICC
, SEM_FN_NAME (frvbf
,umulicc
) },
27918 { FRVBF_INSN_SLLICC
, SEM_FN_NAME (frvbf
,sllicc
) },
27919 { FRVBF_INSN_SRLICC
, SEM_FN_NAME (frvbf
,srlicc
) },
27920 { FRVBF_INSN_SRAICC
, SEM_FN_NAME (frvbf
,sraicc
) },
27921 { FRVBF_INSN_ADDXI
, SEM_FN_NAME (frvbf
,addxi
) },
27922 { FRVBF_INSN_SUBXI
, SEM_FN_NAME (frvbf
,subxi
) },
27923 { FRVBF_INSN_ADDXICC
, SEM_FN_NAME (frvbf
,addxicc
) },
27924 { FRVBF_INSN_SUBXICC
, SEM_FN_NAME (frvbf
,subxicc
) },
27925 { FRVBF_INSN_CMPB
, SEM_FN_NAME (frvbf
,cmpb
) },
27926 { FRVBF_INSN_CMPBA
, SEM_FN_NAME (frvbf
,cmpba
) },
27927 { FRVBF_INSN_SETLO
, SEM_FN_NAME (frvbf
,setlo
) },
27928 { FRVBF_INSN_SETHI
, SEM_FN_NAME (frvbf
,sethi
) },
27929 { FRVBF_INSN_SETLOS
, SEM_FN_NAME (frvbf
,setlos
) },
27930 { FRVBF_INSN_LDSB
, SEM_FN_NAME (frvbf
,ldsb
) },
27931 { FRVBF_INSN_LDUB
, SEM_FN_NAME (frvbf
,ldub
) },
27932 { FRVBF_INSN_LDSH
, SEM_FN_NAME (frvbf
,ldsh
) },
27933 { FRVBF_INSN_LDUH
, SEM_FN_NAME (frvbf
,lduh
) },
27934 { FRVBF_INSN_LD
, SEM_FN_NAME (frvbf
,ld
) },
27935 { FRVBF_INSN_LDBF
, SEM_FN_NAME (frvbf
,ldbf
) },
27936 { FRVBF_INSN_LDHF
, SEM_FN_NAME (frvbf
,ldhf
) },
27937 { FRVBF_INSN_LDF
, SEM_FN_NAME (frvbf
,ldf
) },
27938 { FRVBF_INSN_LDC
, SEM_FN_NAME (frvbf
,ldc
) },
27939 { FRVBF_INSN_NLDSB
, SEM_FN_NAME (frvbf
,nldsb
) },
27940 { FRVBF_INSN_NLDUB
, SEM_FN_NAME (frvbf
,nldub
) },
27941 { FRVBF_INSN_NLDSH
, SEM_FN_NAME (frvbf
,nldsh
) },
27942 { FRVBF_INSN_NLDUH
, SEM_FN_NAME (frvbf
,nlduh
) },
27943 { FRVBF_INSN_NLD
, SEM_FN_NAME (frvbf
,nld
) },
27944 { FRVBF_INSN_NLDBF
, SEM_FN_NAME (frvbf
,nldbf
) },
27945 { FRVBF_INSN_NLDHF
, SEM_FN_NAME (frvbf
,nldhf
) },
27946 { FRVBF_INSN_NLDF
, SEM_FN_NAME (frvbf
,nldf
) },
27947 { FRVBF_INSN_LDD
, SEM_FN_NAME (frvbf
,ldd
) },
27948 { FRVBF_INSN_LDDF
, SEM_FN_NAME (frvbf
,lddf
) },
27949 { FRVBF_INSN_LDDC
, SEM_FN_NAME (frvbf
,lddc
) },
27950 { FRVBF_INSN_NLDD
, SEM_FN_NAME (frvbf
,nldd
) },
27951 { FRVBF_INSN_NLDDF
, SEM_FN_NAME (frvbf
,nlddf
) },
27952 { FRVBF_INSN_LDQ
, SEM_FN_NAME (frvbf
,ldq
) },
27953 { FRVBF_INSN_LDQF
, SEM_FN_NAME (frvbf
,ldqf
) },
27954 { FRVBF_INSN_LDQC
, SEM_FN_NAME (frvbf
,ldqc
) },
27955 { FRVBF_INSN_NLDQ
, SEM_FN_NAME (frvbf
,nldq
) },
27956 { FRVBF_INSN_NLDQF
, SEM_FN_NAME (frvbf
,nldqf
) },
27957 { FRVBF_INSN_LDSBU
, SEM_FN_NAME (frvbf
,ldsbu
) },
27958 { FRVBF_INSN_LDUBU
, SEM_FN_NAME (frvbf
,ldubu
) },
27959 { FRVBF_INSN_LDSHU
, SEM_FN_NAME (frvbf
,ldshu
) },
27960 { FRVBF_INSN_LDUHU
, SEM_FN_NAME (frvbf
,lduhu
) },
27961 { FRVBF_INSN_LDU
, SEM_FN_NAME (frvbf
,ldu
) },
27962 { FRVBF_INSN_NLDSBU
, SEM_FN_NAME (frvbf
,nldsbu
) },
27963 { FRVBF_INSN_NLDUBU
, SEM_FN_NAME (frvbf
,nldubu
) },
27964 { FRVBF_INSN_NLDSHU
, SEM_FN_NAME (frvbf
,nldshu
) },
27965 { FRVBF_INSN_NLDUHU
, SEM_FN_NAME (frvbf
,nlduhu
) },
27966 { FRVBF_INSN_NLDU
, SEM_FN_NAME (frvbf
,nldu
) },
27967 { FRVBF_INSN_LDBFU
, SEM_FN_NAME (frvbf
,ldbfu
) },
27968 { FRVBF_INSN_LDHFU
, SEM_FN_NAME (frvbf
,ldhfu
) },
27969 { FRVBF_INSN_LDFU
, SEM_FN_NAME (frvbf
,ldfu
) },
27970 { FRVBF_INSN_LDCU
, SEM_FN_NAME (frvbf
,ldcu
) },
27971 { FRVBF_INSN_NLDBFU
, SEM_FN_NAME (frvbf
,nldbfu
) },
27972 { FRVBF_INSN_NLDHFU
, SEM_FN_NAME (frvbf
,nldhfu
) },
27973 { FRVBF_INSN_NLDFU
, SEM_FN_NAME (frvbf
,nldfu
) },
27974 { FRVBF_INSN_LDDU
, SEM_FN_NAME (frvbf
,lddu
) },
27975 { FRVBF_INSN_NLDDU
, SEM_FN_NAME (frvbf
,nlddu
) },
27976 { FRVBF_INSN_LDDFU
, SEM_FN_NAME (frvbf
,lddfu
) },
27977 { FRVBF_INSN_LDDCU
, SEM_FN_NAME (frvbf
,lddcu
) },
27978 { FRVBF_INSN_NLDDFU
, SEM_FN_NAME (frvbf
,nlddfu
) },
27979 { FRVBF_INSN_LDQU
, SEM_FN_NAME (frvbf
,ldqu
) },
27980 { FRVBF_INSN_NLDQU
, SEM_FN_NAME (frvbf
,nldqu
) },
27981 { FRVBF_INSN_LDQFU
, SEM_FN_NAME (frvbf
,ldqfu
) },
27982 { FRVBF_INSN_LDQCU
, SEM_FN_NAME (frvbf
,ldqcu
) },
27983 { FRVBF_INSN_NLDQFU
, SEM_FN_NAME (frvbf
,nldqfu
) },
27984 { FRVBF_INSN_LDSBI
, SEM_FN_NAME (frvbf
,ldsbi
) },
27985 { FRVBF_INSN_LDSHI
, SEM_FN_NAME (frvbf
,ldshi
) },
27986 { FRVBF_INSN_LDI
, SEM_FN_NAME (frvbf
,ldi
) },
27987 { FRVBF_INSN_LDUBI
, SEM_FN_NAME (frvbf
,ldubi
) },
27988 { FRVBF_INSN_LDUHI
, SEM_FN_NAME (frvbf
,lduhi
) },
27989 { FRVBF_INSN_LDBFI
, SEM_FN_NAME (frvbf
,ldbfi
) },
27990 { FRVBF_INSN_LDHFI
, SEM_FN_NAME (frvbf
,ldhfi
) },
27991 { FRVBF_INSN_LDFI
, SEM_FN_NAME (frvbf
,ldfi
) },
27992 { FRVBF_INSN_NLDSBI
, SEM_FN_NAME (frvbf
,nldsbi
) },
27993 { FRVBF_INSN_NLDUBI
, SEM_FN_NAME (frvbf
,nldubi
) },
27994 { FRVBF_INSN_NLDSHI
, SEM_FN_NAME (frvbf
,nldshi
) },
27995 { FRVBF_INSN_NLDUHI
, SEM_FN_NAME (frvbf
,nlduhi
) },
27996 { FRVBF_INSN_NLDI
, SEM_FN_NAME (frvbf
,nldi
) },
27997 { FRVBF_INSN_NLDBFI
, SEM_FN_NAME (frvbf
,nldbfi
) },
27998 { FRVBF_INSN_NLDHFI
, SEM_FN_NAME (frvbf
,nldhfi
) },
27999 { FRVBF_INSN_NLDFI
, SEM_FN_NAME (frvbf
,nldfi
) },
28000 { FRVBF_INSN_LDDI
, SEM_FN_NAME (frvbf
,lddi
) },
28001 { FRVBF_INSN_LDDFI
, SEM_FN_NAME (frvbf
,lddfi
) },
28002 { FRVBF_INSN_NLDDI
, SEM_FN_NAME (frvbf
,nlddi
) },
28003 { FRVBF_INSN_NLDDFI
, SEM_FN_NAME (frvbf
,nlddfi
) },
28004 { FRVBF_INSN_LDQI
, SEM_FN_NAME (frvbf
,ldqi
) },
28005 { FRVBF_INSN_LDQFI
, SEM_FN_NAME (frvbf
,ldqfi
) },
28006 { FRVBF_INSN_NLDQI
, SEM_FN_NAME (frvbf
,nldqi
) },
28007 { FRVBF_INSN_NLDQFI
, SEM_FN_NAME (frvbf
,nldqfi
) },
28008 { FRVBF_INSN_STB
, SEM_FN_NAME (frvbf
,stb
) },
28009 { FRVBF_INSN_STH
, SEM_FN_NAME (frvbf
,sth
) },
28010 { FRVBF_INSN_ST
, SEM_FN_NAME (frvbf
,st
) },
28011 { FRVBF_INSN_STBF
, SEM_FN_NAME (frvbf
,stbf
) },
28012 { FRVBF_INSN_STHF
, SEM_FN_NAME (frvbf
,sthf
) },
28013 { FRVBF_INSN_STF
, SEM_FN_NAME (frvbf
,stf
) },
28014 { FRVBF_INSN_STC
, SEM_FN_NAME (frvbf
,stc
) },
28015 { FRVBF_INSN_RSTB
, SEM_FN_NAME (frvbf
,rstb
) },
28016 { FRVBF_INSN_RSTH
, SEM_FN_NAME (frvbf
,rsth
) },
28017 { FRVBF_INSN_RST
, SEM_FN_NAME (frvbf
,rst
) },
28018 { FRVBF_INSN_RSTBF
, SEM_FN_NAME (frvbf
,rstbf
) },
28019 { FRVBF_INSN_RSTHF
, SEM_FN_NAME (frvbf
,rsthf
) },
28020 { FRVBF_INSN_RSTF
, SEM_FN_NAME (frvbf
,rstf
) },
28021 { FRVBF_INSN_STD
, SEM_FN_NAME (frvbf
,std
) },
28022 { FRVBF_INSN_STDF
, SEM_FN_NAME (frvbf
,stdf
) },
28023 { FRVBF_INSN_STDC
, SEM_FN_NAME (frvbf
,stdc
) },
28024 { FRVBF_INSN_RSTD
, SEM_FN_NAME (frvbf
,rstd
) },
28025 { FRVBF_INSN_RSTDF
, SEM_FN_NAME (frvbf
,rstdf
) },
28026 { FRVBF_INSN_STQ
, SEM_FN_NAME (frvbf
,stq
) },
28027 { FRVBF_INSN_STQF
, SEM_FN_NAME (frvbf
,stqf
) },
28028 { FRVBF_INSN_STQC
, SEM_FN_NAME (frvbf
,stqc
) },
28029 { FRVBF_INSN_RSTQ
, SEM_FN_NAME (frvbf
,rstq
) },
28030 { FRVBF_INSN_RSTQF
, SEM_FN_NAME (frvbf
,rstqf
) },
28031 { FRVBF_INSN_STBU
, SEM_FN_NAME (frvbf
,stbu
) },
28032 { FRVBF_INSN_STHU
, SEM_FN_NAME (frvbf
,sthu
) },
28033 { FRVBF_INSN_STU
, SEM_FN_NAME (frvbf
,stu
) },
28034 { FRVBF_INSN_STBFU
, SEM_FN_NAME (frvbf
,stbfu
) },
28035 { FRVBF_INSN_STHFU
, SEM_FN_NAME (frvbf
,sthfu
) },
28036 { FRVBF_INSN_STFU
, SEM_FN_NAME (frvbf
,stfu
) },
28037 { FRVBF_INSN_STCU
, SEM_FN_NAME (frvbf
,stcu
) },
28038 { FRVBF_INSN_STDU
, SEM_FN_NAME (frvbf
,stdu
) },
28039 { FRVBF_INSN_STDFU
, SEM_FN_NAME (frvbf
,stdfu
) },
28040 { FRVBF_INSN_STDCU
, SEM_FN_NAME (frvbf
,stdcu
) },
28041 { FRVBF_INSN_STQU
, SEM_FN_NAME (frvbf
,stqu
) },
28042 { FRVBF_INSN_STQFU
, SEM_FN_NAME (frvbf
,stqfu
) },
28043 { FRVBF_INSN_STQCU
, SEM_FN_NAME (frvbf
,stqcu
) },
28044 { FRVBF_INSN_CLDSB
, SEM_FN_NAME (frvbf
,cldsb
) },
28045 { FRVBF_INSN_CLDUB
, SEM_FN_NAME (frvbf
,cldub
) },
28046 { FRVBF_INSN_CLDSH
, SEM_FN_NAME (frvbf
,cldsh
) },
28047 { FRVBF_INSN_CLDUH
, SEM_FN_NAME (frvbf
,clduh
) },
28048 { FRVBF_INSN_CLD
, SEM_FN_NAME (frvbf
,cld
) },
28049 { FRVBF_INSN_CLDBF
, SEM_FN_NAME (frvbf
,cldbf
) },
28050 { FRVBF_INSN_CLDHF
, SEM_FN_NAME (frvbf
,cldhf
) },
28051 { FRVBF_INSN_CLDF
, SEM_FN_NAME (frvbf
,cldf
) },
28052 { FRVBF_INSN_CLDD
, SEM_FN_NAME (frvbf
,cldd
) },
28053 { FRVBF_INSN_CLDDF
, SEM_FN_NAME (frvbf
,clddf
) },
28054 { FRVBF_INSN_CLDQ
, SEM_FN_NAME (frvbf
,cldq
) },
28055 { FRVBF_INSN_CLDSBU
, SEM_FN_NAME (frvbf
,cldsbu
) },
28056 { FRVBF_INSN_CLDUBU
, SEM_FN_NAME (frvbf
,cldubu
) },
28057 { FRVBF_INSN_CLDSHU
, SEM_FN_NAME (frvbf
,cldshu
) },
28058 { FRVBF_INSN_CLDUHU
, SEM_FN_NAME (frvbf
,clduhu
) },
28059 { FRVBF_INSN_CLDU
, SEM_FN_NAME (frvbf
,cldu
) },
28060 { FRVBF_INSN_CLDBFU
, SEM_FN_NAME (frvbf
,cldbfu
) },
28061 { FRVBF_INSN_CLDHFU
, SEM_FN_NAME (frvbf
,cldhfu
) },
28062 { FRVBF_INSN_CLDFU
, SEM_FN_NAME (frvbf
,cldfu
) },
28063 { FRVBF_INSN_CLDDU
, SEM_FN_NAME (frvbf
,clddu
) },
28064 { FRVBF_INSN_CLDDFU
, SEM_FN_NAME (frvbf
,clddfu
) },
28065 { FRVBF_INSN_CLDQU
, SEM_FN_NAME (frvbf
,cldqu
) },
28066 { FRVBF_INSN_CSTB
, SEM_FN_NAME (frvbf
,cstb
) },
28067 { FRVBF_INSN_CSTH
, SEM_FN_NAME (frvbf
,csth
) },
28068 { FRVBF_INSN_CST
, SEM_FN_NAME (frvbf
,cst
) },
28069 { FRVBF_INSN_CSTBF
, SEM_FN_NAME (frvbf
,cstbf
) },
28070 { FRVBF_INSN_CSTHF
, SEM_FN_NAME (frvbf
,csthf
) },
28071 { FRVBF_INSN_CSTF
, SEM_FN_NAME (frvbf
,cstf
) },
28072 { FRVBF_INSN_CSTD
, SEM_FN_NAME (frvbf
,cstd
) },
28073 { FRVBF_INSN_CSTDF
, SEM_FN_NAME (frvbf
,cstdf
) },
28074 { FRVBF_INSN_CSTQ
, SEM_FN_NAME (frvbf
,cstq
) },
28075 { FRVBF_INSN_CSTBU
, SEM_FN_NAME (frvbf
,cstbu
) },
28076 { FRVBF_INSN_CSTHU
, SEM_FN_NAME (frvbf
,csthu
) },
28077 { FRVBF_INSN_CSTU
, SEM_FN_NAME (frvbf
,cstu
) },
28078 { FRVBF_INSN_CSTBFU
, SEM_FN_NAME (frvbf
,cstbfu
) },
28079 { FRVBF_INSN_CSTHFU
, SEM_FN_NAME (frvbf
,csthfu
) },
28080 { FRVBF_INSN_CSTFU
, SEM_FN_NAME (frvbf
,cstfu
) },
28081 { FRVBF_INSN_CSTDU
, SEM_FN_NAME (frvbf
,cstdu
) },
28082 { FRVBF_INSN_CSTDFU
, SEM_FN_NAME (frvbf
,cstdfu
) },
28083 { FRVBF_INSN_STBI
, SEM_FN_NAME (frvbf
,stbi
) },
28084 { FRVBF_INSN_STHI
, SEM_FN_NAME (frvbf
,sthi
) },
28085 { FRVBF_INSN_STI
, SEM_FN_NAME (frvbf
,sti
) },
28086 { FRVBF_INSN_STBFI
, SEM_FN_NAME (frvbf
,stbfi
) },
28087 { FRVBF_INSN_STHFI
, SEM_FN_NAME (frvbf
,sthfi
) },
28088 { FRVBF_INSN_STFI
, SEM_FN_NAME (frvbf
,stfi
) },
28089 { FRVBF_INSN_STDI
, SEM_FN_NAME (frvbf
,stdi
) },
28090 { FRVBF_INSN_STDFI
, SEM_FN_NAME (frvbf
,stdfi
) },
28091 { FRVBF_INSN_STQI
, SEM_FN_NAME (frvbf
,stqi
) },
28092 { FRVBF_INSN_STQFI
, SEM_FN_NAME (frvbf
,stqfi
) },
28093 { FRVBF_INSN_SWAP
, SEM_FN_NAME (frvbf
,swap
) },
28094 { FRVBF_INSN_SWAPI
, SEM_FN_NAME (frvbf
,swapi
) },
28095 { FRVBF_INSN_CSWAP
, SEM_FN_NAME (frvbf
,cswap
) },
28096 { FRVBF_INSN_MOVGF
, SEM_FN_NAME (frvbf
,movgf
) },
28097 { FRVBF_INSN_MOVFG
, SEM_FN_NAME (frvbf
,movfg
) },
28098 { FRVBF_INSN_MOVGFD
, SEM_FN_NAME (frvbf
,movgfd
) },
28099 { FRVBF_INSN_MOVFGD
, SEM_FN_NAME (frvbf
,movfgd
) },
28100 { FRVBF_INSN_MOVGFQ
, SEM_FN_NAME (frvbf
,movgfq
) },
28101 { FRVBF_INSN_MOVFGQ
, SEM_FN_NAME (frvbf
,movfgq
) },
28102 { FRVBF_INSN_CMOVGF
, SEM_FN_NAME (frvbf
,cmovgf
) },
28103 { FRVBF_INSN_CMOVFG
, SEM_FN_NAME (frvbf
,cmovfg
) },
28104 { FRVBF_INSN_CMOVGFD
, SEM_FN_NAME (frvbf
,cmovgfd
) },
28105 { FRVBF_INSN_CMOVFGD
, SEM_FN_NAME (frvbf
,cmovfgd
) },
28106 { FRVBF_INSN_MOVGS
, SEM_FN_NAME (frvbf
,movgs
) },
28107 { FRVBF_INSN_MOVSG
, SEM_FN_NAME (frvbf
,movsg
) },
28108 { FRVBF_INSN_BRA
, SEM_FN_NAME (frvbf
,bra
) },
28109 { FRVBF_INSN_BNO
, SEM_FN_NAME (frvbf
,bno
) },
28110 { FRVBF_INSN_BEQ
, SEM_FN_NAME (frvbf
,beq
) },
28111 { FRVBF_INSN_BNE
, SEM_FN_NAME (frvbf
,bne
) },
28112 { FRVBF_INSN_BLE
, SEM_FN_NAME (frvbf
,ble
) },
28113 { FRVBF_INSN_BGT
, SEM_FN_NAME (frvbf
,bgt
) },
28114 { FRVBF_INSN_BLT
, SEM_FN_NAME (frvbf
,blt
) },
28115 { FRVBF_INSN_BGE
, SEM_FN_NAME (frvbf
,bge
) },
28116 { FRVBF_INSN_BLS
, SEM_FN_NAME (frvbf
,bls
) },
28117 { FRVBF_INSN_BHI
, SEM_FN_NAME (frvbf
,bhi
) },
28118 { FRVBF_INSN_BC
, SEM_FN_NAME (frvbf
,bc
) },
28119 { FRVBF_INSN_BNC
, SEM_FN_NAME (frvbf
,bnc
) },
28120 { FRVBF_INSN_BN
, SEM_FN_NAME (frvbf
,bn
) },
28121 { FRVBF_INSN_BP
, SEM_FN_NAME (frvbf
,bp
) },
28122 { FRVBF_INSN_BV
, SEM_FN_NAME (frvbf
,bv
) },
28123 { FRVBF_INSN_BNV
, SEM_FN_NAME (frvbf
,bnv
) },
28124 { FRVBF_INSN_FBRA
, SEM_FN_NAME (frvbf
,fbra
) },
28125 { FRVBF_INSN_FBNO
, SEM_FN_NAME (frvbf
,fbno
) },
28126 { FRVBF_INSN_FBNE
, SEM_FN_NAME (frvbf
,fbne
) },
28127 { FRVBF_INSN_FBEQ
, SEM_FN_NAME (frvbf
,fbeq
) },
28128 { FRVBF_INSN_FBLG
, SEM_FN_NAME (frvbf
,fblg
) },
28129 { FRVBF_INSN_FBUE
, SEM_FN_NAME (frvbf
,fbue
) },
28130 { FRVBF_INSN_FBUL
, SEM_FN_NAME (frvbf
,fbul
) },
28131 { FRVBF_INSN_FBGE
, SEM_FN_NAME (frvbf
,fbge
) },
28132 { FRVBF_INSN_FBLT
, SEM_FN_NAME (frvbf
,fblt
) },
28133 { FRVBF_INSN_FBUGE
, SEM_FN_NAME (frvbf
,fbuge
) },
28134 { FRVBF_INSN_FBUG
, SEM_FN_NAME (frvbf
,fbug
) },
28135 { FRVBF_INSN_FBLE
, SEM_FN_NAME (frvbf
,fble
) },
28136 { FRVBF_INSN_FBGT
, SEM_FN_NAME (frvbf
,fbgt
) },
28137 { FRVBF_INSN_FBULE
, SEM_FN_NAME (frvbf
,fbule
) },
28138 { FRVBF_INSN_FBU
, SEM_FN_NAME (frvbf
,fbu
) },
28139 { FRVBF_INSN_FBO
, SEM_FN_NAME (frvbf
,fbo
) },
28140 { FRVBF_INSN_BCTRLR
, SEM_FN_NAME (frvbf
,bctrlr
) },
28141 { FRVBF_INSN_BRALR
, SEM_FN_NAME (frvbf
,bralr
) },
28142 { FRVBF_INSN_BNOLR
, SEM_FN_NAME (frvbf
,bnolr
) },
28143 { FRVBF_INSN_BEQLR
, SEM_FN_NAME (frvbf
,beqlr
) },
28144 { FRVBF_INSN_BNELR
, SEM_FN_NAME (frvbf
,bnelr
) },
28145 { FRVBF_INSN_BLELR
, SEM_FN_NAME (frvbf
,blelr
) },
28146 { FRVBF_INSN_BGTLR
, SEM_FN_NAME (frvbf
,bgtlr
) },
28147 { FRVBF_INSN_BLTLR
, SEM_FN_NAME (frvbf
,bltlr
) },
28148 { FRVBF_INSN_BGELR
, SEM_FN_NAME (frvbf
,bgelr
) },
28149 { FRVBF_INSN_BLSLR
, SEM_FN_NAME (frvbf
,blslr
) },
28150 { FRVBF_INSN_BHILR
, SEM_FN_NAME (frvbf
,bhilr
) },
28151 { FRVBF_INSN_BCLR
, SEM_FN_NAME (frvbf
,bclr
) },
28152 { FRVBF_INSN_BNCLR
, SEM_FN_NAME (frvbf
,bnclr
) },
28153 { FRVBF_INSN_BNLR
, SEM_FN_NAME (frvbf
,bnlr
) },
28154 { FRVBF_INSN_BPLR
, SEM_FN_NAME (frvbf
,bplr
) },
28155 { FRVBF_INSN_BVLR
, SEM_FN_NAME (frvbf
,bvlr
) },
28156 { FRVBF_INSN_BNVLR
, SEM_FN_NAME (frvbf
,bnvlr
) },
28157 { FRVBF_INSN_FBRALR
, SEM_FN_NAME (frvbf
,fbralr
) },
28158 { FRVBF_INSN_FBNOLR
, SEM_FN_NAME (frvbf
,fbnolr
) },
28159 { FRVBF_INSN_FBEQLR
, SEM_FN_NAME (frvbf
,fbeqlr
) },
28160 { FRVBF_INSN_FBNELR
, SEM_FN_NAME (frvbf
,fbnelr
) },
28161 { FRVBF_INSN_FBLGLR
, SEM_FN_NAME (frvbf
,fblglr
) },
28162 { FRVBF_INSN_FBUELR
, SEM_FN_NAME (frvbf
,fbuelr
) },
28163 { FRVBF_INSN_FBULLR
, SEM_FN_NAME (frvbf
,fbullr
) },
28164 { FRVBF_INSN_FBGELR
, SEM_FN_NAME (frvbf
,fbgelr
) },
28165 { FRVBF_INSN_FBLTLR
, SEM_FN_NAME (frvbf
,fbltlr
) },
28166 { FRVBF_INSN_FBUGELR
, SEM_FN_NAME (frvbf
,fbugelr
) },
28167 { FRVBF_INSN_FBUGLR
, SEM_FN_NAME (frvbf
,fbuglr
) },
28168 { FRVBF_INSN_FBLELR
, SEM_FN_NAME (frvbf
,fblelr
) },
28169 { FRVBF_INSN_FBGTLR
, SEM_FN_NAME (frvbf
,fbgtlr
) },
28170 { FRVBF_INSN_FBULELR
, SEM_FN_NAME (frvbf
,fbulelr
) },
28171 { FRVBF_INSN_FBULR
, SEM_FN_NAME (frvbf
,fbulr
) },
28172 { FRVBF_INSN_FBOLR
, SEM_FN_NAME (frvbf
,fbolr
) },
28173 { FRVBF_INSN_BCRALR
, SEM_FN_NAME (frvbf
,bcralr
) },
28174 { FRVBF_INSN_BCNOLR
, SEM_FN_NAME (frvbf
,bcnolr
) },
28175 { FRVBF_INSN_BCEQLR
, SEM_FN_NAME (frvbf
,bceqlr
) },
28176 { FRVBF_INSN_BCNELR
, SEM_FN_NAME (frvbf
,bcnelr
) },
28177 { FRVBF_INSN_BCLELR
, SEM_FN_NAME (frvbf
,bclelr
) },
28178 { FRVBF_INSN_BCGTLR
, SEM_FN_NAME (frvbf
,bcgtlr
) },
28179 { FRVBF_INSN_BCLTLR
, SEM_FN_NAME (frvbf
,bcltlr
) },
28180 { FRVBF_INSN_BCGELR
, SEM_FN_NAME (frvbf
,bcgelr
) },
28181 { FRVBF_INSN_BCLSLR
, SEM_FN_NAME (frvbf
,bclslr
) },
28182 { FRVBF_INSN_BCHILR
, SEM_FN_NAME (frvbf
,bchilr
) },
28183 { FRVBF_INSN_BCCLR
, SEM_FN_NAME (frvbf
,bcclr
) },
28184 { FRVBF_INSN_BCNCLR
, SEM_FN_NAME (frvbf
,bcnclr
) },
28185 { FRVBF_INSN_BCNLR
, SEM_FN_NAME (frvbf
,bcnlr
) },
28186 { FRVBF_INSN_BCPLR
, SEM_FN_NAME (frvbf
,bcplr
) },
28187 { FRVBF_INSN_BCVLR
, SEM_FN_NAME (frvbf
,bcvlr
) },
28188 { FRVBF_INSN_BCNVLR
, SEM_FN_NAME (frvbf
,bcnvlr
) },
28189 { FRVBF_INSN_FCBRALR
, SEM_FN_NAME (frvbf
,fcbralr
) },
28190 { FRVBF_INSN_FCBNOLR
, SEM_FN_NAME (frvbf
,fcbnolr
) },
28191 { FRVBF_INSN_FCBEQLR
, SEM_FN_NAME (frvbf
,fcbeqlr
) },
28192 { FRVBF_INSN_FCBNELR
, SEM_FN_NAME (frvbf
,fcbnelr
) },
28193 { FRVBF_INSN_FCBLGLR
, SEM_FN_NAME (frvbf
,fcblglr
) },
28194 { FRVBF_INSN_FCBUELR
, SEM_FN_NAME (frvbf
,fcbuelr
) },
28195 { FRVBF_INSN_FCBULLR
, SEM_FN_NAME (frvbf
,fcbullr
) },
28196 { FRVBF_INSN_FCBGELR
, SEM_FN_NAME (frvbf
,fcbgelr
) },
28197 { FRVBF_INSN_FCBLTLR
, SEM_FN_NAME (frvbf
,fcbltlr
) },
28198 { FRVBF_INSN_FCBUGELR
, SEM_FN_NAME (frvbf
,fcbugelr
) },
28199 { FRVBF_INSN_FCBUGLR
, SEM_FN_NAME (frvbf
,fcbuglr
) },
28200 { FRVBF_INSN_FCBLELR
, SEM_FN_NAME (frvbf
,fcblelr
) },
28201 { FRVBF_INSN_FCBGTLR
, SEM_FN_NAME (frvbf
,fcbgtlr
) },
28202 { FRVBF_INSN_FCBULELR
, SEM_FN_NAME (frvbf
,fcbulelr
) },
28203 { FRVBF_INSN_FCBULR
, SEM_FN_NAME (frvbf
,fcbulr
) },
28204 { FRVBF_INSN_FCBOLR
, SEM_FN_NAME (frvbf
,fcbolr
) },
28205 { FRVBF_INSN_JMPL
, SEM_FN_NAME (frvbf
,jmpl
) },
28206 { FRVBF_INSN_CALLL
, SEM_FN_NAME (frvbf
,calll
) },
28207 { FRVBF_INSN_JMPIL
, SEM_FN_NAME (frvbf
,jmpil
) },
28208 { FRVBF_INSN_CALLIL
, SEM_FN_NAME (frvbf
,callil
) },
28209 { FRVBF_INSN_CALL
, SEM_FN_NAME (frvbf
,call
) },
28210 { FRVBF_INSN_RETT
, SEM_FN_NAME (frvbf
,rett
) },
28211 { FRVBF_INSN_REI
, SEM_FN_NAME (frvbf
,rei
) },
28212 { FRVBF_INSN_TRA
, SEM_FN_NAME (frvbf
,tra
) },
28213 { FRVBF_INSN_TNO
, SEM_FN_NAME (frvbf
,tno
) },
28214 { FRVBF_INSN_TEQ
, SEM_FN_NAME (frvbf
,teq
) },
28215 { FRVBF_INSN_TNE
, SEM_FN_NAME (frvbf
,tne
) },
28216 { FRVBF_INSN_TLE
, SEM_FN_NAME (frvbf
,tle
) },
28217 { FRVBF_INSN_TGT
, SEM_FN_NAME (frvbf
,tgt
) },
28218 { FRVBF_INSN_TLT
, SEM_FN_NAME (frvbf
,tlt
) },
28219 { FRVBF_INSN_TGE
, SEM_FN_NAME (frvbf
,tge
) },
28220 { FRVBF_INSN_TLS
, SEM_FN_NAME (frvbf
,tls
) },
28221 { FRVBF_INSN_THI
, SEM_FN_NAME (frvbf
,thi
) },
28222 { FRVBF_INSN_TC
, SEM_FN_NAME (frvbf
,tc
) },
28223 { FRVBF_INSN_TNC
, SEM_FN_NAME (frvbf
,tnc
) },
28224 { FRVBF_INSN_TN
, SEM_FN_NAME (frvbf
,tn
) },
28225 { FRVBF_INSN_TP
, SEM_FN_NAME (frvbf
,tp
) },
28226 { FRVBF_INSN_TV
, SEM_FN_NAME (frvbf
,tv
) },
28227 { FRVBF_INSN_TNV
, SEM_FN_NAME (frvbf
,tnv
) },
28228 { FRVBF_INSN_FTRA
, SEM_FN_NAME (frvbf
,ftra
) },
28229 { FRVBF_INSN_FTNO
, SEM_FN_NAME (frvbf
,ftno
) },
28230 { FRVBF_INSN_FTNE
, SEM_FN_NAME (frvbf
,ftne
) },
28231 { FRVBF_INSN_FTEQ
, SEM_FN_NAME (frvbf
,fteq
) },
28232 { FRVBF_INSN_FTLG
, SEM_FN_NAME (frvbf
,ftlg
) },
28233 { FRVBF_INSN_FTUE
, SEM_FN_NAME (frvbf
,ftue
) },
28234 { FRVBF_INSN_FTUL
, SEM_FN_NAME (frvbf
,ftul
) },
28235 { FRVBF_INSN_FTGE
, SEM_FN_NAME (frvbf
,ftge
) },
28236 { FRVBF_INSN_FTLT
, SEM_FN_NAME (frvbf
,ftlt
) },
28237 { FRVBF_INSN_FTUGE
, SEM_FN_NAME (frvbf
,ftuge
) },
28238 { FRVBF_INSN_FTUG
, SEM_FN_NAME (frvbf
,ftug
) },
28239 { FRVBF_INSN_FTLE
, SEM_FN_NAME (frvbf
,ftle
) },
28240 { FRVBF_INSN_FTGT
, SEM_FN_NAME (frvbf
,ftgt
) },
28241 { FRVBF_INSN_FTULE
, SEM_FN_NAME (frvbf
,ftule
) },
28242 { FRVBF_INSN_FTU
, SEM_FN_NAME (frvbf
,ftu
) },
28243 { FRVBF_INSN_FTO
, SEM_FN_NAME (frvbf
,fto
) },
28244 { FRVBF_INSN_TIRA
, SEM_FN_NAME (frvbf
,tira
) },
28245 { FRVBF_INSN_TINO
, SEM_FN_NAME (frvbf
,tino
) },
28246 { FRVBF_INSN_TIEQ
, SEM_FN_NAME (frvbf
,tieq
) },
28247 { FRVBF_INSN_TINE
, SEM_FN_NAME (frvbf
,tine
) },
28248 { FRVBF_INSN_TILE
, SEM_FN_NAME (frvbf
,tile
) },
28249 { FRVBF_INSN_TIGT
, SEM_FN_NAME (frvbf
,tigt
) },
28250 { FRVBF_INSN_TILT
, SEM_FN_NAME (frvbf
,tilt
) },
28251 { FRVBF_INSN_TIGE
, SEM_FN_NAME (frvbf
,tige
) },
28252 { FRVBF_INSN_TILS
, SEM_FN_NAME (frvbf
,tils
) },
28253 { FRVBF_INSN_TIHI
, SEM_FN_NAME (frvbf
,tihi
) },
28254 { FRVBF_INSN_TIC
, SEM_FN_NAME (frvbf
,tic
) },
28255 { FRVBF_INSN_TINC
, SEM_FN_NAME (frvbf
,tinc
) },
28256 { FRVBF_INSN_TIN
, SEM_FN_NAME (frvbf
,tin
) },
28257 { FRVBF_INSN_TIP
, SEM_FN_NAME (frvbf
,tip
) },
28258 { FRVBF_INSN_TIV
, SEM_FN_NAME (frvbf
,tiv
) },
28259 { FRVBF_INSN_TINV
, SEM_FN_NAME (frvbf
,tinv
) },
28260 { FRVBF_INSN_FTIRA
, SEM_FN_NAME (frvbf
,ftira
) },
28261 { FRVBF_INSN_FTINO
, SEM_FN_NAME (frvbf
,ftino
) },
28262 { FRVBF_INSN_FTINE
, SEM_FN_NAME (frvbf
,ftine
) },
28263 { FRVBF_INSN_FTIEQ
, SEM_FN_NAME (frvbf
,ftieq
) },
28264 { FRVBF_INSN_FTILG
, SEM_FN_NAME (frvbf
,ftilg
) },
28265 { FRVBF_INSN_FTIUE
, SEM_FN_NAME (frvbf
,ftiue
) },
28266 { FRVBF_INSN_FTIUL
, SEM_FN_NAME (frvbf
,ftiul
) },
28267 { FRVBF_INSN_FTIGE
, SEM_FN_NAME (frvbf
,ftige
) },
28268 { FRVBF_INSN_FTILT
, SEM_FN_NAME (frvbf
,ftilt
) },
28269 { FRVBF_INSN_FTIUGE
, SEM_FN_NAME (frvbf
,ftiuge
) },
28270 { FRVBF_INSN_FTIUG
, SEM_FN_NAME (frvbf
,ftiug
) },
28271 { FRVBF_INSN_FTILE
, SEM_FN_NAME (frvbf
,ftile
) },
28272 { FRVBF_INSN_FTIGT
, SEM_FN_NAME (frvbf
,ftigt
) },
28273 { FRVBF_INSN_FTIULE
, SEM_FN_NAME (frvbf
,ftiule
) },
28274 { FRVBF_INSN_FTIU
, SEM_FN_NAME (frvbf
,ftiu
) },
28275 { FRVBF_INSN_FTIO
, SEM_FN_NAME (frvbf
,ftio
) },
28276 { FRVBF_INSN_BREAK
, SEM_FN_NAME (frvbf
,break) },
28277 { FRVBF_INSN_MTRAP
, SEM_FN_NAME (frvbf
,mtrap
) },
28278 { FRVBF_INSN_ANDCR
, SEM_FN_NAME (frvbf
,andcr
) },
28279 { FRVBF_INSN_ORCR
, SEM_FN_NAME (frvbf
,orcr
) },
28280 { FRVBF_INSN_XORCR
, SEM_FN_NAME (frvbf
,xorcr
) },
28281 { FRVBF_INSN_NANDCR
, SEM_FN_NAME (frvbf
,nandcr
) },
28282 { FRVBF_INSN_NORCR
, SEM_FN_NAME (frvbf
,norcr
) },
28283 { FRVBF_INSN_ANDNCR
, SEM_FN_NAME (frvbf
,andncr
) },
28284 { FRVBF_INSN_ORNCR
, SEM_FN_NAME (frvbf
,orncr
) },
28285 { FRVBF_INSN_NANDNCR
, SEM_FN_NAME (frvbf
,nandncr
) },
28286 { FRVBF_INSN_NORNCR
, SEM_FN_NAME (frvbf
,norncr
) },
28287 { FRVBF_INSN_NOTCR
, SEM_FN_NAME (frvbf
,notcr
) },
28288 { FRVBF_INSN_CKRA
, SEM_FN_NAME (frvbf
,ckra
) },
28289 { FRVBF_INSN_CKNO
, SEM_FN_NAME (frvbf
,ckno
) },
28290 { FRVBF_INSN_CKEQ
, SEM_FN_NAME (frvbf
,ckeq
) },
28291 { FRVBF_INSN_CKNE
, SEM_FN_NAME (frvbf
,ckne
) },
28292 { FRVBF_INSN_CKLE
, SEM_FN_NAME (frvbf
,ckle
) },
28293 { FRVBF_INSN_CKGT
, SEM_FN_NAME (frvbf
,ckgt
) },
28294 { FRVBF_INSN_CKLT
, SEM_FN_NAME (frvbf
,cklt
) },
28295 { FRVBF_INSN_CKGE
, SEM_FN_NAME (frvbf
,ckge
) },
28296 { FRVBF_INSN_CKLS
, SEM_FN_NAME (frvbf
,ckls
) },
28297 { FRVBF_INSN_CKHI
, SEM_FN_NAME (frvbf
,ckhi
) },
28298 { FRVBF_INSN_CKC
, SEM_FN_NAME (frvbf
,ckc
) },
28299 { FRVBF_INSN_CKNC
, SEM_FN_NAME (frvbf
,cknc
) },
28300 { FRVBF_INSN_CKN
, SEM_FN_NAME (frvbf
,ckn
) },
28301 { FRVBF_INSN_CKP
, SEM_FN_NAME (frvbf
,ckp
) },
28302 { FRVBF_INSN_CKV
, SEM_FN_NAME (frvbf
,ckv
) },
28303 { FRVBF_INSN_CKNV
, SEM_FN_NAME (frvbf
,cknv
) },
28304 { FRVBF_INSN_FCKRA
, SEM_FN_NAME (frvbf
,fckra
) },
28305 { FRVBF_INSN_FCKNO
, SEM_FN_NAME (frvbf
,fckno
) },
28306 { FRVBF_INSN_FCKNE
, SEM_FN_NAME (frvbf
,fckne
) },
28307 { FRVBF_INSN_FCKEQ
, SEM_FN_NAME (frvbf
,fckeq
) },
28308 { FRVBF_INSN_FCKLG
, SEM_FN_NAME (frvbf
,fcklg
) },
28309 { FRVBF_INSN_FCKUE
, SEM_FN_NAME (frvbf
,fckue
) },
28310 { FRVBF_INSN_FCKUL
, SEM_FN_NAME (frvbf
,fckul
) },
28311 { FRVBF_INSN_FCKGE
, SEM_FN_NAME (frvbf
,fckge
) },
28312 { FRVBF_INSN_FCKLT
, SEM_FN_NAME (frvbf
,fcklt
) },
28313 { FRVBF_INSN_FCKUGE
, SEM_FN_NAME (frvbf
,fckuge
) },
28314 { FRVBF_INSN_FCKUG
, SEM_FN_NAME (frvbf
,fckug
) },
28315 { FRVBF_INSN_FCKLE
, SEM_FN_NAME (frvbf
,fckle
) },
28316 { FRVBF_INSN_FCKGT
, SEM_FN_NAME (frvbf
,fckgt
) },
28317 { FRVBF_INSN_FCKULE
, SEM_FN_NAME (frvbf
,fckule
) },
28318 { FRVBF_INSN_FCKU
, SEM_FN_NAME (frvbf
,fcku
) },
28319 { FRVBF_INSN_FCKO
, SEM_FN_NAME (frvbf
,fcko
) },
28320 { FRVBF_INSN_CCKRA
, SEM_FN_NAME (frvbf
,cckra
) },
28321 { FRVBF_INSN_CCKNO
, SEM_FN_NAME (frvbf
,cckno
) },
28322 { FRVBF_INSN_CCKEQ
, SEM_FN_NAME (frvbf
,cckeq
) },
28323 { FRVBF_INSN_CCKNE
, SEM_FN_NAME (frvbf
,cckne
) },
28324 { FRVBF_INSN_CCKLE
, SEM_FN_NAME (frvbf
,cckle
) },
28325 { FRVBF_INSN_CCKGT
, SEM_FN_NAME (frvbf
,cckgt
) },
28326 { FRVBF_INSN_CCKLT
, SEM_FN_NAME (frvbf
,ccklt
) },
28327 { FRVBF_INSN_CCKGE
, SEM_FN_NAME (frvbf
,cckge
) },
28328 { FRVBF_INSN_CCKLS
, SEM_FN_NAME (frvbf
,cckls
) },
28329 { FRVBF_INSN_CCKHI
, SEM_FN_NAME (frvbf
,cckhi
) },
28330 { FRVBF_INSN_CCKC
, SEM_FN_NAME (frvbf
,cckc
) },
28331 { FRVBF_INSN_CCKNC
, SEM_FN_NAME (frvbf
,ccknc
) },
28332 { FRVBF_INSN_CCKN
, SEM_FN_NAME (frvbf
,cckn
) },
28333 { FRVBF_INSN_CCKP
, SEM_FN_NAME (frvbf
,cckp
) },
28334 { FRVBF_INSN_CCKV
, SEM_FN_NAME (frvbf
,cckv
) },
28335 { FRVBF_INSN_CCKNV
, SEM_FN_NAME (frvbf
,ccknv
) },
28336 { FRVBF_INSN_CFCKRA
, SEM_FN_NAME (frvbf
,cfckra
) },
28337 { FRVBF_INSN_CFCKNO
, SEM_FN_NAME (frvbf
,cfckno
) },
28338 { FRVBF_INSN_CFCKNE
, SEM_FN_NAME (frvbf
,cfckne
) },
28339 { FRVBF_INSN_CFCKEQ
, SEM_FN_NAME (frvbf
,cfckeq
) },
28340 { FRVBF_INSN_CFCKLG
, SEM_FN_NAME (frvbf
,cfcklg
) },
28341 { FRVBF_INSN_CFCKUE
, SEM_FN_NAME (frvbf
,cfckue
) },
28342 { FRVBF_INSN_CFCKUL
, SEM_FN_NAME (frvbf
,cfckul
) },
28343 { FRVBF_INSN_CFCKGE
, SEM_FN_NAME (frvbf
,cfckge
) },
28344 { FRVBF_INSN_CFCKLT
, SEM_FN_NAME (frvbf
,cfcklt
) },
28345 { FRVBF_INSN_CFCKUGE
, SEM_FN_NAME (frvbf
,cfckuge
) },
28346 { FRVBF_INSN_CFCKUG
, SEM_FN_NAME (frvbf
,cfckug
) },
28347 { FRVBF_INSN_CFCKLE
, SEM_FN_NAME (frvbf
,cfckle
) },
28348 { FRVBF_INSN_CFCKGT
, SEM_FN_NAME (frvbf
,cfckgt
) },
28349 { FRVBF_INSN_CFCKULE
, SEM_FN_NAME (frvbf
,cfckule
) },
28350 { FRVBF_INSN_CFCKU
, SEM_FN_NAME (frvbf
,cfcku
) },
28351 { FRVBF_INSN_CFCKO
, SEM_FN_NAME (frvbf
,cfcko
) },
28352 { FRVBF_INSN_CJMPL
, SEM_FN_NAME (frvbf
,cjmpl
) },
28353 { FRVBF_INSN_CCALLL
, SEM_FN_NAME (frvbf
,ccalll
) },
28354 { FRVBF_INSN_ICI
, SEM_FN_NAME (frvbf
,ici
) },
28355 { FRVBF_INSN_DCI
, SEM_FN_NAME (frvbf
,dci
) },
28356 { FRVBF_INSN_ICEI
, SEM_FN_NAME (frvbf
,icei
) },
28357 { FRVBF_INSN_DCEI
, SEM_FN_NAME (frvbf
,dcei
) },
28358 { FRVBF_INSN_DCF
, SEM_FN_NAME (frvbf
,dcf
) },
28359 { FRVBF_INSN_DCEF
, SEM_FN_NAME (frvbf
,dcef
) },
28360 { FRVBF_INSN_WITLB
, SEM_FN_NAME (frvbf
,witlb
) },
28361 { FRVBF_INSN_WDTLB
, SEM_FN_NAME (frvbf
,wdtlb
) },
28362 { FRVBF_INSN_ITLBI
, SEM_FN_NAME (frvbf
,itlbi
) },
28363 { FRVBF_INSN_DTLBI
, SEM_FN_NAME (frvbf
,dtlbi
) },
28364 { FRVBF_INSN_ICPL
, SEM_FN_NAME (frvbf
,icpl
) },
28365 { FRVBF_INSN_DCPL
, SEM_FN_NAME (frvbf
,dcpl
) },
28366 { FRVBF_INSN_ICUL
, SEM_FN_NAME (frvbf
,icul
) },
28367 { FRVBF_INSN_DCUL
, SEM_FN_NAME (frvbf
,dcul
) },
28368 { FRVBF_INSN_BAR
, SEM_FN_NAME (frvbf
,bar
) },
28369 { FRVBF_INSN_MEMBAR
, SEM_FN_NAME (frvbf
,membar
) },
28370 { FRVBF_INSN_COP1
, SEM_FN_NAME (frvbf
,cop1
) },
28371 { FRVBF_INSN_COP2
, SEM_FN_NAME (frvbf
,cop2
) },
28372 { FRVBF_INSN_CLRGR
, SEM_FN_NAME (frvbf
,clrgr
) },
28373 { FRVBF_INSN_CLRFR
, SEM_FN_NAME (frvbf
,clrfr
) },
28374 { FRVBF_INSN_CLRGA
, SEM_FN_NAME (frvbf
,clrga
) },
28375 { FRVBF_INSN_CLRFA
, SEM_FN_NAME (frvbf
,clrfa
) },
28376 { FRVBF_INSN_COMMITGR
, SEM_FN_NAME (frvbf
,commitgr
) },
28377 { FRVBF_INSN_COMMITFR
, SEM_FN_NAME (frvbf
,commitfr
) },
28378 { FRVBF_INSN_COMMITGA
, SEM_FN_NAME (frvbf
,commitga
) },
28379 { FRVBF_INSN_COMMITFA
, SEM_FN_NAME (frvbf
,commitfa
) },
28380 { FRVBF_INSN_FITOS
, SEM_FN_NAME (frvbf
,fitos
) },
28381 { FRVBF_INSN_FSTOI
, SEM_FN_NAME (frvbf
,fstoi
) },
28382 { FRVBF_INSN_FITOD
, SEM_FN_NAME (frvbf
,fitod
) },
28383 { FRVBF_INSN_FDTOI
, SEM_FN_NAME (frvbf
,fdtoi
) },
28384 { FRVBF_INSN_FDITOS
, SEM_FN_NAME (frvbf
,fditos
) },
28385 { FRVBF_INSN_FDSTOI
, SEM_FN_NAME (frvbf
,fdstoi
) },
28386 { FRVBF_INSN_NFDITOS
, SEM_FN_NAME (frvbf
,nfditos
) },
28387 { FRVBF_INSN_NFDSTOI
, SEM_FN_NAME (frvbf
,nfdstoi
) },
28388 { FRVBF_INSN_CFITOS
, SEM_FN_NAME (frvbf
,cfitos
) },
28389 { FRVBF_INSN_CFSTOI
, SEM_FN_NAME (frvbf
,cfstoi
) },
28390 { FRVBF_INSN_NFITOS
, SEM_FN_NAME (frvbf
,nfitos
) },
28391 { FRVBF_INSN_NFSTOI
, SEM_FN_NAME (frvbf
,nfstoi
) },
28392 { FRVBF_INSN_FMOVS
, SEM_FN_NAME (frvbf
,fmovs
) },
28393 { FRVBF_INSN_FMOVD
, SEM_FN_NAME (frvbf
,fmovd
) },
28394 { FRVBF_INSN_FDMOVS
, SEM_FN_NAME (frvbf
,fdmovs
) },
28395 { FRVBF_INSN_CFMOVS
, SEM_FN_NAME (frvbf
,cfmovs
) },
28396 { FRVBF_INSN_FNEGS
, SEM_FN_NAME (frvbf
,fnegs
) },
28397 { FRVBF_INSN_FNEGD
, SEM_FN_NAME (frvbf
,fnegd
) },
28398 { FRVBF_INSN_FDNEGS
, SEM_FN_NAME (frvbf
,fdnegs
) },
28399 { FRVBF_INSN_CFNEGS
, SEM_FN_NAME (frvbf
,cfnegs
) },
28400 { FRVBF_INSN_FABSS
, SEM_FN_NAME (frvbf
,fabss
) },
28401 { FRVBF_INSN_FABSD
, SEM_FN_NAME (frvbf
,fabsd
) },
28402 { FRVBF_INSN_FDABSS
, SEM_FN_NAME (frvbf
,fdabss
) },
28403 { FRVBF_INSN_CFABSS
, SEM_FN_NAME (frvbf
,cfabss
) },
28404 { FRVBF_INSN_FSQRTS
, SEM_FN_NAME (frvbf
,fsqrts
) },
28405 { FRVBF_INSN_FDSQRTS
, SEM_FN_NAME (frvbf
,fdsqrts
) },
28406 { FRVBF_INSN_NFDSQRTS
, SEM_FN_NAME (frvbf
,nfdsqrts
) },
28407 { FRVBF_INSN_FSQRTD
, SEM_FN_NAME (frvbf
,fsqrtd
) },
28408 { FRVBF_INSN_CFSQRTS
, SEM_FN_NAME (frvbf
,cfsqrts
) },
28409 { FRVBF_INSN_NFSQRTS
, SEM_FN_NAME (frvbf
,nfsqrts
) },
28410 { FRVBF_INSN_FADDS
, SEM_FN_NAME (frvbf
,fadds
) },
28411 { FRVBF_INSN_FSUBS
, SEM_FN_NAME (frvbf
,fsubs
) },
28412 { FRVBF_INSN_FMULS
, SEM_FN_NAME (frvbf
,fmuls
) },
28413 { FRVBF_INSN_FDIVS
, SEM_FN_NAME (frvbf
,fdivs
) },
28414 { FRVBF_INSN_FADDD
, SEM_FN_NAME (frvbf
,faddd
) },
28415 { FRVBF_INSN_FSUBD
, SEM_FN_NAME (frvbf
,fsubd
) },
28416 { FRVBF_INSN_FMULD
, SEM_FN_NAME (frvbf
,fmuld
) },
28417 { FRVBF_INSN_FDIVD
, SEM_FN_NAME (frvbf
,fdivd
) },
28418 { FRVBF_INSN_CFADDS
, SEM_FN_NAME (frvbf
,cfadds
) },
28419 { FRVBF_INSN_CFSUBS
, SEM_FN_NAME (frvbf
,cfsubs
) },
28420 { FRVBF_INSN_CFMULS
, SEM_FN_NAME (frvbf
,cfmuls
) },
28421 { FRVBF_INSN_CFDIVS
, SEM_FN_NAME (frvbf
,cfdivs
) },
28422 { FRVBF_INSN_NFADDS
, SEM_FN_NAME (frvbf
,nfadds
) },
28423 { FRVBF_INSN_NFSUBS
, SEM_FN_NAME (frvbf
,nfsubs
) },
28424 { FRVBF_INSN_NFMULS
, SEM_FN_NAME (frvbf
,nfmuls
) },
28425 { FRVBF_INSN_NFDIVS
, SEM_FN_NAME (frvbf
,nfdivs
) },
28426 { FRVBF_INSN_FCMPS
, SEM_FN_NAME (frvbf
,fcmps
) },
28427 { FRVBF_INSN_FCMPD
, SEM_FN_NAME (frvbf
,fcmpd
) },
28428 { FRVBF_INSN_CFCMPS
, SEM_FN_NAME (frvbf
,cfcmps
) },
28429 { FRVBF_INSN_FDCMPS
, SEM_FN_NAME (frvbf
,fdcmps
) },
28430 { FRVBF_INSN_FMADDS
, SEM_FN_NAME (frvbf
,fmadds
) },
28431 { FRVBF_INSN_FMSUBS
, SEM_FN_NAME (frvbf
,fmsubs
) },
28432 { FRVBF_INSN_FMADDD
, SEM_FN_NAME (frvbf
,fmaddd
) },
28433 { FRVBF_INSN_FMSUBD
, SEM_FN_NAME (frvbf
,fmsubd
) },
28434 { FRVBF_INSN_FDMADDS
, SEM_FN_NAME (frvbf
,fdmadds
) },
28435 { FRVBF_INSN_NFDMADDS
, SEM_FN_NAME (frvbf
,nfdmadds
) },
28436 { FRVBF_INSN_CFMADDS
, SEM_FN_NAME (frvbf
,cfmadds
) },
28437 { FRVBF_INSN_CFMSUBS
, SEM_FN_NAME (frvbf
,cfmsubs
) },
28438 { FRVBF_INSN_NFMADDS
, SEM_FN_NAME (frvbf
,nfmadds
) },
28439 { FRVBF_INSN_NFMSUBS
, SEM_FN_NAME (frvbf
,nfmsubs
) },
28440 { FRVBF_INSN_FMAS
, SEM_FN_NAME (frvbf
,fmas
) },
28441 { FRVBF_INSN_FMSS
, SEM_FN_NAME (frvbf
,fmss
) },
28442 { FRVBF_INSN_FDMAS
, SEM_FN_NAME (frvbf
,fdmas
) },
28443 { FRVBF_INSN_FDMSS
, SEM_FN_NAME (frvbf
,fdmss
) },
28444 { FRVBF_INSN_NFDMAS
, SEM_FN_NAME (frvbf
,nfdmas
) },
28445 { FRVBF_INSN_NFDMSS
, SEM_FN_NAME (frvbf
,nfdmss
) },
28446 { FRVBF_INSN_CFMAS
, SEM_FN_NAME (frvbf
,cfmas
) },
28447 { FRVBF_INSN_CFMSS
, SEM_FN_NAME (frvbf
,cfmss
) },
28448 { FRVBF_INSN_FMAD
, SEM_FN_NAME (frvbf
,fmad
) },
28449 { FRVBF_INSN_FMSD
, SEM_FN_NAME (frvbf
,fmsd
) },
28450 { FRVBF_INSN_NFMAS
, SEM_FN_NAME (frvbf
,nfmas
) },
28451 { FRVBF_INSN_NFMSS
, SEM_FN_NAME (frvbf
,nfmss
) },
28452 { FRVBF_INSN_FDADDS
, SEM_FN_NAME (frvbf
,fdadds
) },
28453 { FRVBF_INSN_FDSUBS
, SEM_FN_NAME (frvbf
,fdsubs
) },
28454 { FRVBF_INSN_FDMULS
, SEM_FN_NAME (frvbf
,fdmuls
) },
28455 { FRVBF_INSN_FDDIVS
, SEM_FN_NAME (frvbf
,fddivs
) },
28456 { FRVBF_INSN_FDSADS
, SEM_FN_NAME (frvbf
,fdsads
) },
28457 { FRVBF_INSN_FDMULCS
, SEM_FN_NAME (frvbf
,fdmulcs
) },
28458 { FRVBF_INSN_NFDMULCS
, SEM_FN_NAME (frvbf
,nfdmulcs
) },
28459 { FRVBF_INSN_NFDADDS
, SEM_FN_NAME (frvbf
,nfdadds
) },
28460 { FRVBF_INSN_NFDSUBS
, SEM_FN_NAME (frvbf
,nfdsubs
) },
28461 { FRVBF_INSN_NFDMULS
, SEM_FN_NAME (frvbf
,nfdmuls
) },
28462 { FRVBF_INSN_NFDDIVS
, SEM_FN_NAME (frvbf
,nfddivs
) },
28463 { FRVBF_INSN_NFDSADS
, SEM_FN_NAME (frvbf
,nfdsads
) },
28464 { FRVBF_INSN_NFDCMPS
, SEM_FN_NAME (frvbf
,nfdcmps
) },
28465 { FRVBF_INSN_MHSETLOS
, SEM_FN_NAME (frvbf
,mhsetlos
) },
28466 { FRVBF_INSN_MHSETHIS
, SEM_FN_NAME (frvbf
,mhsethis
) },
28467 { FRVBF_INSN_MHDSETS
, SEM_FN_NAME (frvbf
,mhdsets
) },
28468 { FRVBF_INSN_MHSETLOH
, SEM_FN_NAME (frvbf
,mhsetloh
) },
28469 { FRVBF_INSN_MHSETHIH
, SEM_FN_NAME (frvbf
,mhsethih
) },
28470 { FRVBF_INSN_MHDSETH
, SEM_FN_NAME (frvbf
,mhdseth
) },
28471 { FRVBF_INSN_MAND
, SEM_FN_NAME (frvbf
,mand
) },
28472 { FRVBF_INSN_MOR
, SEM_FN_NAME (frvbf
,mor
) },
28473 { FRVBF_INSN_MXOR
, SEM_FN_NAME (frvbf
,mxor
) },
28474 { FRVBF_INSN_CMAND
, SEM_FN_NAME (frvbf
,cmand
) },
28475 { FRVBF_INSN_CMOR
, SEM_FN_NAME (frvbf
,cmor
) },
28476 { FRVBF_INSN_CMXOR
, SEM_FN_NAME (frvbf
,cmxor
) },
28477 { FRVBF_INSN_MNOT
, SEM_FN_NAME (frvbf
,mnot
) },
28478 { FRVBF_INSN_CMNOT
, SEM_FN_NAME (frvbf
,cmnot
) },
28479 { FRVBF_INSN_MROTLI
, SEM_FN_NAME (frvbf
,mrotli
) },
28480 { FRVBF_INSN_MROTRI
, SEM_FN_NAME (frvbf
,mrotri
) },
28481 { FRVBF_INSN_MWCUT
, SEM_FN_NAME (frvbf
,mwcut
) },
28482 { FRVBF_INSN_MWCUTI
, SEM_FN_NAME (frvbf
,mwcuti
) },
28483 { FRVBF_INSN_MCUT
, SEM_FN_NAME (frvbf
,mcut
) },
28484 { FRVBF_INSN_MCUTI
, SEM_FN_NAME (frvbf
,mcuti
) },
28485 { FRVBF_INSN_MCUTSS
, SEM_FN_NAME (frvbf
,mcutss
) },
28486 { FRVBF_INSN_MCUTSSI
, SEM_FN_NAME (frvbf
,mcutssi
) },
28487 { FRVBF_INSN_MDCUTSSI
, SEM_FN_NAME (frvbf
,mdcutssi
) },
28488 { FRVBF_INSN_MAVEH
, SEM_FN_NAME (frvbf
,maveh
) },
28489 { FRVBF_INSN_MSLLHI
, SEM_FN_NAME (frvbf
,msllhi
) },
28490 { FRVBF_INSN_MSRLHI
, SEM_FN_NAME (frvbf
,msrlhi
) },
28491 { FRVBF_INSN_MSRAHI
, SEM_FN_NAME (frvbf
,msrahi
) },
28492 { FRVBF_INSN_MDROTLI
, SEM_FN_NAME (frvbf
,mdrotli
) },
28493 { FRVBF_INSN_MCPLHI
, SEM_FN_NAME (frvbf
,mcplhi
) },
28494 { FRVBF_INSN_MCPLI
, SEM_FN_NAME (frvbf
,mcpli
) },
28495 { FRVBF_INSN_MSATHS
, SEM_FN_NAME (frvbf
,msaths
) },
28496 { FRVBF_INSN_MQSATHS
, SEM_FN_NAME (frvbf
,mqsaths
) },
28497 { FRVBF_INSN_MSATHU
, SEM_FN_NAME (frvbf
,msathu
) },
28498 { FRVBF_INSN_MCMPSH
, SEM_FN_NAME (frvbf
,mcmpsh
) },
28499 { FRVBF_INSN_MCMPUH
, SEM_FN_NAME (frvbf
,mcmpuh
) },
28500 { FRVBF_INSN_MABSHS
, SEM_FN_NAME (frvbf
,mabshs
) },
28501 { FRVBF_INSN_MADDHSS
, SEM_FN_NAME (frvbf
,maddhss
) },
28502 { FRVBF_INSN_MADDHUS
, SEM_FN_NAME (frvbf
,maddhus
) },
28503 { FRVBF_INSN_MSUBHSS
, SEM_FN_NAME (frvbf
,msubhss
) },
28504 { FRVBF_INSN_MSUBHUS
, SEM_FN_NAME (frvbf
,msubhus
) },
28505 { FRVBF_INSN_CMADDHSS
, SEM_FN_NAME (frvbf
,cmaddhss
) },
28506 { FRVBF_INSN_CMADDHUS
, SEM_FN_NAME (frvbf
,cmaddhus
) },
28507 { FRVBF_INSN_CMSUBHSS
, SEM_FN_NAME (frvbf
,cmsubhss
) },
28508 { FRVBF_INSN_CMSUBHUS
, SEM_FN_NAME (frvbf
,cmsubhus
) },
28509 { FRVBF_INSN_MQADDHSS
, SEM_FN_NAME (frvbf
,mqaddhss
) },
28510 { FRVBF_INSN_MQADDHUS
, SEM_FN_NAME (frvbf
,mqaddhus
) },
28511 { FRVBF_INSN_MQSUBHSS
, SEM_FN_NAME (frvbf
,mqsubhss
) },
28512 { FRVBF_INSN_MQSUBHUS
, SEM_FN_NAME (frvbf
,mqsubhus
) },
28513 { FRVBF_INSN_CMQADDHSS
, SEM_FN_NAME (frvbf
,cmqaddhss
) },
28514 { FRVBF_INSN_CMQADDHUS
, SEM_FN_NAME (frvbf
,cmqaddhus
) },
28515 { FRVBF_INSN_CMQSUBHSS
, SEM_FN_NAME (frvbf
,cmqsubhss
) },
28516 { FRVBF_INSN_CMQSUBHUS
, SEM_FN_NAME (frvbf
,cmqsubhus
) },
28517 { FRVBF_INSN_MADDACCS
, SEM_FN_NAME (frvbf
,maddaccs
) },
28518 { FRVBF_INSN_MSUBACCS
, SEM_FN_NAME (frvbf
,msubaccs
) },
28519 { FRVBF_INSN_MDADDACCS
, SEM_FN_NAME (frvbf
,mdaddaccs
) },
28520 { FRVBF_INSN_MDSUBACCS
, SEM_FN_NAME (frvbf
,mdsubaccs
) },
28521 { FRVBF_INSN_MASACCS
, SEM_FN_NAME (frvbf
,masaccs
) },
28522 { FRVBF_INSN_MDASACCS
, SEM_FN_NAME (frvbf
,mdasaccs
) },
28523 { FRVBF_INSN_MMULHS
, SEM_FN_NAME (frvbf
,mmulhs
) },
28524 { FRVBF_INSN_MMULHU
, SEM_FN_NAME (frvbf
,mmulhu
) },
28525 { FRVBF_INSN_MMULXHS
, SEM_FN_NAME (frvbf
,mmulxhs
) },
28526 { FRVBF_INSN_MMULXHU
, SEM_FN_NAME (frvbf
,mmulxhu
) },
28527 { FRVBF_INSN_CMMULHS
, SEM_FN_NAME (frvbf
,cmmulhs
) },
28528 { FRVBF_INSN_CMMULHU
, SEM_FN_NAME (frvbf
,cmmulhu
) },
28529 { FRVBF_INSN_MQMULHS
, SEM_FN_NAME (frvbf
,mqmulhs
) },
28530 { FRVBF_INSN_MQMULHU
, SEM_FN_NAME (frvbf
,mqmulhu
) },
28531 { FRVBF_INSN_MQMULXHS
, SEM_FN_NAME (frvbf
,mqmulxhs
) },
28532 { FRVBF_INSN_MQMULXHU
, SEM_FN_NAME (frvbf
,mqmulxhu
) },
28533 { FRVBF_INSN_CMQMULHS
, SEM_FN_NAME (frvbf
,cmqmulhs
) },
28534 { FRVBF_INSN_CMQMULHU
, SEM_FN_NAME (frvbf
,cmqmulhu
) },
28535 { FRVBF_INSN_MMACHS
, SEM_FN_NAME (frvbf
,mmachs
) },
28536 { FRVBF_INSN_MMACHU
, SEM_FN_NAME (frvbf
,mmachu
) },
28537 { FRVBF_INSN_MMRDHS
, SEM_FN_NAME (frvbf
,mmrdhs
) },
28538 { FRVBF_INSN_MMRDHU
, SEM_FN_NAME (frvbf
,mmrdhu
) },
28539 { FRVBF_INSN_CMMACHS
, SEM_FN_NAME (frvbf
,cmmachs
) },
28540 { FRVBF_INSN_CMMACHU
, SEM_FN_NAME (frvbf
,cmmachu
) },
28541 { FRVBF_INSN_MQMACHS
, SEM_FN_NAME (frvbf
,mqmachs
) },
28542 { FRVBF_INSN_MQMACHU
, SEM_FN_NAME (frvbf
,mqmachu
) },
28543 { FRVBF_INSN_CMQMACHS
, SEM_FN_NAME (frvbf
,cmqmachs
) },
28544 { FRVBF_INSN_CMQMACHU
, SEM_FN_NAME (frvbf
,cmqmachu
) },
28545 { FRVBF_INSN_MQXMACHS
, SEM_FN_NAME (frvbf
,mqxmachs
) },
28546 { FRVBF_INSN_MQXMACXHS
, SEM_FN_NAME (frvbf
,mqxmacxhs
) },
28547 { FRVBF_INSN_MQMACXHS
, SEM_FN_NAME (frvbf
,mqmacxhs
) },
28548 { FRVBF_INSN_MCPXRS
, SEM_FN_NAME (frvbf
,mcpxrs
) },
28549 { FRVBF_INSN_MCPXRU
, SEM_FN_NAME (frvbf
,mcpxru
) },
28550 { FRVBF_INSN_MCPXIS
, SEM_FN_NAME (frvbf
,mcpxis
) },
28551 { FRVBF_INSN_MCPXIU
, SEM_FN_NAME (frvbf
,mcpxiu
) },
28552 { FRVBF_INSN_CMCPXRS
, SEM_FN_NAME (frvbf
,cmcpxrs
) },
28553 { FRVBF_INSN_CMCPXRU
, SEM_FN_NAME (frvbf
,cmcpxru
) },
28554 { FRVBF_INSN_CMCPXIS
, SEM_FN_NAME (frvbf
,cmcpxis
) },
28555 { FRVBF_INSN_CMCPXIU
, SEM_FN_NAME (frvbf
,cmcpxiu
) },
28556 { FRVBF_INSN_MQCPXRS
, SEM_FN_NAME (frvbf
,mqcpxrs
) },
28557 { FRVBF_INSN_MQCPXRU
, SEM_FN_NAME (frvbf
,mqcpxru
) },
28558 { FRVBF_INSN_MQCPXIS
, SEM_FN_NAME (frvbf
,mqcpxis
) },
28559 { FRVBF_INSN_MQCPXIU
, SEM_FN_NAME (frvbf
,mqcpxiu
) },
28560 { FRVBF_INSN_MEXPDHW
, SEM_FN_NAME (frvbf
,mexpdhw
) },
28561 { FRVBF_INSN_CMEXPDHW
, SEM_FN_NAME (frvbf
,cmexpdhw
) },
28562 { FRVBF_INSN_MEXPDHD
, SEM_FN_NAME (frvbf
,mexpdhd
) },
28563 { FRVBF_INSN_CMEXPDHD
, SEM_FN_NAME (frvbf
,cmexpdhd
) },
28564 { FRVBF_INSN_MPACKH
, SEM_FN_NAME (frvbf
,mpackh
) },
28565 { FRVBF_INSN_MDPACKH
, SEM_FN_NAME (frvbf
,mdpackh
) },
28566 { FRVBF_INSN_MUNPACKH
, SEM_FN_NAME (frvbf
,munpackh
) },
28567 { FRVBF_INSN_MDUNPACKH
, SEM_FN_NAME (frvbf
,mdunpackh
) },
28568 { FRVBF_INSN_MBTOH
, SEM_FN_NAME (frvbf
,mbtoh
) },
28569 { FRVBF_INSN_CMBTOH
, SEM_FN_NAME (frvbf
,cmbtoh
) },
28570 { FRVBF_INSN_MHTOB
, SEM_FN_NAME (frvbf
,mhtob
) },
28571 { FRVBF_INSN_CMHTOB
, SEM_FN_NAME (frvbf
,cmhtob
) },
28572 { FRVBF_INSN_MBTOHE
, SEM_FN_NAME (frvbf
,mbtohe
) },
28573 { FRVBF_INSN_CMBTOHE
, SEM_FN_NAME (frvbf
,cmbtohe
) },
28574 { FRVBF_INSN_MNOP
, SEM_FN_NAME (frvbf
,mnop
) },
28575 { FRVBF_INSN_MCLRACC_0
, SEM_FN_NAME (frvbf
,mclracc_0
) },
28576 { FRVBF_INSN_MCLRACC_1
, SEM_FN_NAME (frvbf
,mclracc_1
) },
28577 { FRVBF_INSN_MRDACC
, SEM_FN_NAME (frvbf
,mrdacc
) },
28578 { FRVBF_INSN_MRDACCG
, SEM_FN_NAME (frvbf
,mrdaccg
) },
28579 { FRVBF_INSN_MWTACC
, SEM_FN_NAME (frvbf
,mwtacc
) },
28580 { FRVBF_INSN_MWTACCG
, SEM_FN_NAME (frvbf
,mwtaccg
) },
28581 { FRVBF_INSN_MCOP1
, SEM_FN_NAME (frvbf
,mcop1
) },
28582 { FRVBF_INSN_MCOP2
, SEM_FN_NAME (frvbf
,mcop2
) },
28583 { FRVBF_INSN_FNOP
, SEM_FN_NAME (frvbf
,fnop
) },
28587 /* Add the semantic fns to IDESC_TABLE. */
28590 SEM_FN_NAME (frvbf
,init_idesc_table
) (SIM_CPU
*current_cpu
)
28592 IDESC
*idesc_table
= CPU_IDESC (current_cpu
);
28593 const struct sem_fn_desc
*sf
;
28594 int mach_num
= MACH_NUM (CPU_MACH (current_cpu
));
28596 for (sf
= &sem_fns
[0]; sf
->fn
!= 0; ++sf
)
28598 const CGEN_INSN
*insn
= idesc_table
[sf
->index
].idata
;
28599 int valid_p
= (CGEN_INSN_VIRTUAL_P (insn
)
28600 || CGEN_INSN_MACH_HAS_P (insn
, mach_num
));
28603 idesc_table
[sf
->index
].sem_fast
= sf
->fn
;
28605 idesc_table
[sf
->index
].sem_fast
= SEM_FN_NAME (frvbf
,x_invalid
);
28608 idesc_table
[sf
->index
].sem_full
= sf
->fn
;
28610 idesc_table
[sf
->index
].sem_full
= SEM_FN_NAME (frvbf
,x_invalid
);
This page took 0.631732 seconds and 4 git commands to generate.