1 /* Simulator instruction semantics for frvbf.
3 THIS FILE IS MACHINE GENERATED WITH CGEN.
5 Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
7 This file is part of the GNU simulators.
9 This program is free software; you can redistribute it and/or modify
10 it under the terms of the GNU General Public License as published by
11 the Free Software Foundation; either version 2, or (at your option)
14 This program is distributed in the hope that it will be useful,
15 but WITHOUT ANY WARRANTY; without even the implied warranty of
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 GNU General Public License for more details.
19 You should have received a copy of the GNU General Public License along
20 with this program; if not, write to the Free Software Foundation, Inc.,
21 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
25 #define WANT_CPU frvbf
26 #define WANT_CPU_FRVBF
33 #if defined (__STDC__) || defined (ALMOST_STDC) || defined (HAVE_STRINGIZE)
34 #define GET_ATTR(cpu, num, attr) CGEN_ATTR_VALUE (NULL, abuf->idesc->attrs, CGEN_INSN_##attr)
36 #define GET_ATTR(cpu, num, attr) CGEN_ATTR_VALUE (NULL, abuf->idesc->attrs, CGEN_INSN_/**/attr)
39 /* This is used so that we can compile two copies of the semantic code,
40 one with full feature support and one without that runs fast(er).
41 FAST_P, when desired, is defined on the command line, -DFAST_P=1. */
43 #define SEM_FN_NAME(cpu,fn) XCONCAT3 (cpu,_semf_,fn)
45 #define TRACE_RESULT(cpu, abuf, name, type, val)
47 #define SEM_FN_NAME(cpu,fn) XCONCAT3 (cpu,_sem_,fn)
50 /* x-invalid: --invalid-- */
53 SEM_FN_NAME (frvbf
,x_invalid
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
55 #define FLD(f) abuf->fields.fmt_empty.f
56 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
57 int UNUSED written
= 0;
58 IADDR UNUSED pc
= abuf
->addr
;
59 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 0);
62 /* Update the recorded pc in the cpu state struct.
63 Only necessary for WITH_SCACHE case, but to avoid the
64 conditional compilation .... */
66 /* Virtual insns have zero size. Overwrite vpc with address of next insn
67 using the default-insn-bitsize spec. When executing insns in parallel
68 we may want to queue the fault and continue execution. */
69 vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
70 vpc
= sim_engine_invalid_insn (current_cpu
, pc
, vpc
);
77 /* x-after: --after-- */
80 SEM_FN_NAME (frvbf
,x_after
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
82 #define FLD(f) abuf->fields.fmt_empty.f
83 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
84 int UNUSED written
= 0;
85 IADDR UNUSED pc
= abuf
->addr
;
86 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 0);
89 #if WITH_SCACHE_PBB_FRVBF
90 frvbf_pbb_after (current_cpu
, sem_arg
);
98 /* x-before: --before-- */
101 SEM_FN_NAME (frvbf
,x_before
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
103 #define FLD(f) abuf->fields.fmt_empty.f
104 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
105 int UNUSED written
= 0;
106 IADDR UNUSED pc
= abuf
->addr
;
107 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 0);
110 #if WITH_SCACHE_PBB_FRVBF
111 frvbf_pbb_before (current_cpu
, sem_arg
);
119 /* x-cti-chain: --cti-chain-- */
122 SEM_FN_NAME (frvbf
,x_cti_chain
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
124 #define FLD(f) abuf->fields.fmt_empty.f
125 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
126 int UNUSED written
= 0;
127 IADDR UNUSED pc
= abuf
->addr
;
128 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 0);
131 #if WITH_SCACHE_PBB_FRVBF
133 vpc
= frvbf_pbb_cti_chain (current_cpu
, sem_arg
,
134 pbb_br_type
, pbb_br_npc
);
137 /* FIXME: Allow provision of explicit ifmt spec in insn spec. */
138 vpc
= frvbf_pbb_cti_chain (current_cpu
, sem_arg
,
139 CPU_PBB_BR_TYPE (current_cpu
),
140 CPU_PBB_BR_NPC (current_cpu
));
149 /* x-chain: --chain-- */
152 SEM_FN_NAME (frvbf
,x_chain
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
154 #define FLD(f) abuf->fields.fmt_empty.f
155 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
156 int UNUSED written
= 0;
157 IADDR UNUSED pc
= abuf
->addr
;
158 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 0);
161 #if WITH_SCACHE_PBB_FRVBF
162 vpc
= frvbf_pbb_chain (current_cpu
, sem_arg
);
173 /* x-begin: --begin-- */
176 SEM_FN_NAME (frvbf
,x_begin
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
178 #define FLD(f) abuf->fields.fmt_empty.f
179 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
180 int UNUSED written
= 0;
181 IADDR UNUSED pc
= abuf
->addr
;
182 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 0);
185 #if WITH_SCACHE_PBB_FRVBF
186 #if defined DEFINE_SWITCH || defined FAST_P
187 /* In the switch case FAST_P is a constant, allowing several optimizations
188 in any called inline functions. */
189 vpc
= frvbf_pbb_begin (current_cpu
, FAST_P
);
191 #if 0 /* cgen engine can't handle dynamic fast/full switching yet. */
192 vpc
= frvbf_pbb_begin (current_cpu
, STATE_RUN_FAST_P (CPU_STATE (current_cpu
)));
194 vpc
= frvbf_pbb_begin (current_cpu
, 0);
204 /* add: add$pack $GRi,$GRj,$GRk */
207 SEM_FN_NAME (frvbf
,add
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
209 #define FLD(f) abuf->fields.sfmt_addcc.f
210 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
211 int UNUSED written
= 0;
212 IADDR UNUSED pc
= abuf
->addr
;
213 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
216 SI opval
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
217 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
218 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
225 /* sub: sub$pack $GRi,$GRj,$GRk */
228 SEM_FN_NAME (frvbf
,sub
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
230 #define FLD(f) abuf->fields.sfmt_addcc.f
231 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
232 int UNUSED written
= 0;
233 IADDR UNUSED pc
= abuf
->addr
;
234 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
237 SI opval
= SUBSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
238 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
239 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
246 /* and: and$pack $GRi,$GRj,$GRk */
249 SEM_FN_NAME (frvbf
,and) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
251 #define FLD(f) abuf->fields.sfmt_addcc.f
252 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
253 int UNUSED written
= 0;
254 IADDR UNUSED pc
= abuf
->addr
;
255 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
258 SI opval
= ANDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
259 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
260 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
267 /* or: or$pack $GRi,$GRj,$GRk */
270 SEM_FN_NAME (frvbf
,or) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
272 #define FLD(f) abuf->fields.sfmt_addcc.f
273 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
274 int UNUSED written
= 0;
275 IADDR UNUSED pc
= abuf
->addr
;
276 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
279 SI opval
= ORSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
280 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
281 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
288 /* xor: xor$pack $GRi,$GRj,$GRk */
291 SEM_FN_NAME (frvbf
,xor) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
293 #define FLD(f) abuf->fields.sfmt_addcc.f
294 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
295 int UNUSED written
= 0;
296 IADDR UNUSED pc
= abuf
->addr
;
297 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
300 SI opval
= XORSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
301 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
302 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
309 /* not: not$pack $GRj,$GRk */
312 SEM_FN_NAME (frvbf
,not) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
314 #define FLD(f) abuf->fields.sfmt_scutss.f
315 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
316 int UNUSED written
= 0;
317 IADDR UNUSED pc
= abuf
->addr
;
318 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
321 SI opval
= INVSI (GET_H_GR (FLD (f_GRj
)));
322 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
323 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
330 /* sdiv: sdiv$pack $GRi,$GRj,$GRk */
333 SEM_FN_NAME (frvbf
,sdiv
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
335 #define FLD(f) abuf->fields.sfmt_addcc.f
336 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
337 int UNUSED written
= 0;
338 IADDR UNUSED pc
= abuf
->addr
;
339 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
342 frvbf_signed_integer_divide (current_cpu
, GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)), FLD (f_GRk
), 0);
350 /* nsdiv: nsdiv$pack $GRi,$GRj,$GRk */
353 SEM_FN_NAME (frvbf
,nsdiv
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
355 #define FLD(f) abuf->fields.sfmt_addcc.f
356 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
357 int UNUSED written
= 0;
358 IADDR UNUSED pc
= abuf
->addr
;
359 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
362 frvbf_signed_integer_divide (current_cpu
, GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)), FLD (f_GRk
), 1);
370 /* udiv: udiv$pack $GRi,$GRj,$GRk */
373 SEM_FN_NAME (frvbf
,udiv
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
375 #define FLD(f) abuf->fields.sfmt_addcc.f
376 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
377 int UNUSED written
= 0;
378 IADDR UNUSED pc
= abuf
->addr
;
379 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
382 frvbf_unsigned_integer_divide (current_cpu
, GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)), FLD (f_GRk
), 0);
390 /* nudiv: nudiv$pack $GRi,$GRj,$GRk */
393 SEM_FN_NAME (frvbf
,nudiv
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
395 #define FLD(f) abuf->fields.sfmt_addcc.f
396 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
397 int UNUSED written
= 0;
398 IADDR UNUSED pc
= abuf
->addr
;
399 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
402 frvbf_unsigned_integer_divide (current_cpu
, GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)), FLD (f_GRk
), 1);
410 /* smul: smul$pack $GRi,$GRj,$GRdoublek */
413 SEM_FN_NAME (frvbf
,smul
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
415 #define FLD(f) abuf->fields.sfmt_smulcc.f
416 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
417 int UNUSED written
= 0;
418 IADDR UNUSED pc
= abuf
->addr
;
419 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
422 DI opval
= MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi
))), EXTSIDI (GET_H_GR (FLD (f_GRj
))));
423 sim_queue_fn_di_write (current_cpu
, frvbf_h_gr_double_set
, FLD (f_GRk
), opval
);
424 TRACE_RESULT (current_cpu
, abuf
, "gr_double", 'D', opval
);
431 /* umul: umul$pack $GRi,$GRj,$GRdoublek */
434 SEM_FN_NAME (frvbf
,umul
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
436 #define FLD(f) abuf->fields.sfmt_smulcc.f
437 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
438 int UNUSED written
= 0;
439 IADDR UNUSED pc
= abuf
->addr
;
440 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
443 DI opval
= MULDI (ZEXTSIDI (GET_H_GR (FLD (f_GRi
))), ZEXTSIDI (GET_H_GR (FLD (f_GRj
))));
444 sim_queue_fn_di_write (current_cpu
, frvbf_h_gr_double_set
, FLD (f_GRk
), opval
);
445 TRACE_RESULT (current_cpu
, abuf
, "gr_double", 'D', opval
);
452 /* smu: smu$pack $GRi,$GRj */
455 SEM_FN_NAME (frvbf
,smu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
457 #define FLD(f) abuf->fields.sfmt_smass.f
458 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
459 int UNUSED written
= 0;
460 IADDR UNUSED pc
= abuf
->addr
;
461 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
464 DI opval
= MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi
))), EXTSIDI (GET_H_GR (FLD (f_GRj
))));
465 sim_queue_fn_di_write (current_cpu
, frvbf_h_iacc0_set
, ((UINT
) 0), opval
);
466 TRACE_RESULT (current_cpu
, abuf
, "iacc0", 'D', opval
);
473 /* smass: smass$pack $GRi,$GRj */
476 SEM_FN_NAME (frvbf
,smass
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
478 #define FLD(f) abuf->fields.sfmt_smass.f
479 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
480 int UNUSED written
= 0;
481 IADDR UNUSED pc
= abuf
->addr
;
482 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
485 DI opval
= (ANDIF (ANDIF (GTDI (MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi
))), EXTSIDI (GET_H_GR (FLD (f_GRj
)))), 0), GTDI (GET_H_IACC0 (((UINT
) 0)), 0)), LTDI (SUBDI (9223372036854775807, MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi
))), EXTSIDI (GET_H_GR (FLD (f_GRj
))))), GET_H_IACC0 (((UINT
) 0))))) ? (MAKEDI (2147483647, 0xffffffff)) : (ANDIF (ANDIF (LTDI (MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi
))), EXTSIDI (GET_H_GR (FLD (f_GRj
)))), 0), LTDI (GET_H_IACC0 (((UINT
) 0)), 0)), GTDI (SUBDI (9223372036854775808, MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi
))), EXTSIDI (GET_H_GR (FLD (f_GRj
))))), GET_H_IACC0 (((UINT
) 0))))) ? (MAKEDI (0x80000000, 0)) : (ADDDI (GET_H_IACC0 (((UINT
) 0)), MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi
))), EXTSIDI (GET_H_GR (FLD (f_GRj
))))));
486 sim_queue_fn_di_write (current_cpu
, frvbf_h_iacc0_set
, ((UINT
) 0), opval
);
487 TRACE_RESULT (current_cpu
, abuf
, "iacc0", 'D', opval
);
494 /* smsss: smsss$pack $GRi,$GRj */
497 SEM_FN_NAME (frvbf
,smsss
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
499 #define FLD(f) abuf->fields.sfmt_smass.f
500 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
501 int UNUSED written
= 0;
502 IADDR UNUSED pc
= abuf
->addr
;
503 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
506 DI opval
= (ANDIF (ANDIF (LTDI (MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi
))), EXTSIDI (GET_H_GR (FLD (f_GRj
)))), 0), GTDI (GET_H_IACC0 (((UINT
) 0)), 0)), LTDI (ADDDI (9223372036854775807, MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi
))), EXTSIDI (GET_H_GR (FLD (f_GRj
))))), GET_H_IACC0 (((UINT
) 0))))) ? (MAKEDI (2147483647, 0xffffffff)) : (ANDIF (ANDIF (GTDI (MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi
))), EXTSIDI (GET_H_GR (FLD (f_GRj
)))), 0), LTDI (GET_H_IACC0 (((UINT
) 0)), 0)), GTDI (ADDDI (9223372036854775808, MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi
))), EXTSIDI (GET_H_GR (FLD (f_GRj
))))), GET_H_IACC0 (((UINT
) 0))))) ? (MAKEDI (0x80000000, 0)) : (SUBDI (GET_H_IACC0 (((UINT
) 0)), MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi
))), EXTSIDI (GET_H_GR (FLD (f_GRj
))))));
507 sim_queue_fn_di_write (current_cpu
, frvbf_h_iacc0_set
, ((UINT
) 0), opval
);
508 TRACE_RESULT (current_cpu
, abuf
, "iacc0", 'D', opval
);
515 /* sll: sll$pack $GRi,$GRj,$GRk */
518 SEM_FN_NAME (frvbf
,sll
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
520 #define FLD(f) abuf->fields.sfmt_addcc.f
521 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
522 int UNUSED written
= 0;
523 IADDR UNUSED pc
= abuf
->addr
;
524 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
527 SI opval
= SLLSI (GET_H_GR (FLD (f_GRi
)), ANDSI (GET_H_GR (FLD (f_GRj
)), 31));
528 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
529 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
536 /* srl: srl$pack $GRi,$GRj,$GRk */
539 SEM_FN_NAME (frvbf
,srl
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
541 #define FLD(f) abuf->fields.sfmt_addcc.f
542 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
543 int UNUSED written
= 0;
544 IADDR UNUSED pc
= abuf
->addr
;
545 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
548 SI opval
= SRLSI (GET_H_GR (FLD (f_GRi
)), ANDSI (GET_H_GR (FLD (f_GRj
)), 31));
549 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
550 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
557 /* sra: sra$pack $GRi,$GRj,$GRk */
560 SEM_FN_NAME (frvbf
,sra
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
562 #define FLD(f) abuf->fields.sfmt_addcc.f
563 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
564 int UNUSED written
= 0;
565 IADDR UNUSED pc
= abuf
->addr
;
566 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
569 SI opval
= SRASI (GET_H_GR (FLD (f_GRi
)), ANDSI (GET_H_GR (FLD (f_GRj
)), 31));
570 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
571 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
578 /* slass: slass$pack $GRi,$GRj,$GRk */
581 SEM_FN_NAME (frvbf
,slass
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
583 #define FLD(f) abuf->fields.sfmt_addcc.f
584 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
585 int UNUSED written
= 0;
586 IADDR UNUSED pc
= abuf
->addr
;
587 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
590 SI opval
= frvbf_shift_left_arith_saturate (current_cpu
, GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
591 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
592 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
599 /* scutss: scutss$pack $GRj,$GRk */
602 SEM_FN_NAME (frvbf
,scutss
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
604 #define FLD(f) abuf->fields.sfmt_scutss.f
605 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
606 int UNUSED written
= 0;
607 IADDR UNUSED pc
= abuf
->addr
;
608 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
611 SI opval
= frvbf_iacc_cut (current_cpu
, GET_H_IACC0 (((UINT
) 0)), GET_H_GR (FLD (f_GRj
)));
612 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
613 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
620 /* scan: scan$pack $GRi,$GRj,$GRk */
623 SEM_FN_NAME (frvbf
,scan
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
625 #define FLD(f) abuf->fields.sfmt_addcc.f
626 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
627 int UNUSED written
= 0;
628 IADDR UNUSED pc
= abuf
->addr
;
629 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
634 tmp_tmp1
= GET_H_GR (FLD (f_GRi
));
635 tmp_tmp2
= SRASI (GET_H_GR (FLD (f_GRj
)), 1);
637 SI opval
= frvbf_scan_result (current_cpu
, XORSI (tmp_tmp1
, tmp_tmp2
));
638 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
639 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
647 /* cadd: cadd$pack $GRi,$GRj,$GRk,$CCi,$cond */
650 SEM_FN_NAME (frvbf
,cadd
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
652 #define FLD(f) abuf->fields.sfmt_cswap.f
653 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
654 int UNUSED written
= 0;
655 IADDR UNUSED pc
= abuf
->addr
;
656 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
658 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
660 SI opval
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
661 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
663 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
667 abuf
->written
= written
;
672 /* csub: csub$pack $GRi,$GRj,$GRk,$CCi,$cond */
675 SEM_FN_NAME (frvbf
,csub
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
677 #define FLD(f) abuf->fields.sfmt_cswap.f
678 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
679 int UNUSED written
= 0;
680 IADDR UNUSED pc
= abuf
->addr
;
681 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
683 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
685 SI opval
= SUBSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
686 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
688 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
692 abuf
->written
= written
;
697 /* cand: cand$pack $GRi,$GRj,$GRk,$CCi,$cond */
700 SEM_FN_NAME (frvbf
,cand
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
702 #define FLD(f) abuf->fields.sfmt_cswap.f
703 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
704 int UNUSED written
= 0;
705 IADDR UNUSED pc
= abuf
->addr
;
706 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
708 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
710 SI opval
= ANDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
711 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
713 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
717 abuf
->written
= written
;
722 /* cor: cor$pack $GRi,$GRj,$GRk,$CCi,$cond */
725 SEM_FN_NAME (frvbf
,cor
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
727 #define FLD(f) abuf->fields.sfmt_cswap.f
728 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
729 int UNUSED written
= 0;
730 IADDR UNUSED pc
= abuf
->addr
;
731 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
733 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
735 SI opval
= ORSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
736 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
738 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
742 abuf
->written
= written
;
747 /* cxor: cxor$pack $GRi,$GRj,$GRk,$CCi,$cond */
750 SEM_FN_NAME (frvbf
,cxor
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
752 #define FLD(f) abuf->fields.sfmt_cswap.f
753 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
754 int UNUSED written
= 0;
755 IADDR UNUSED pc
= abuf
->addr
;
756 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
758 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
760 SI opval
= XORSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
761 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
763 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
767 abuf
->written
= written
;
772 /* cnot: cnot$pack $GRj,$GRk,$CCi,$cond */
775 SEM_FN_NAME (frvbf
,cnot
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
777 #define FLD(f) abuf->fields.sfmt_cswap.f
778 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
779 int UNUSED written
= 0;
780 IADDR UNUSED pc
= abuf
->addr
;
781 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
783 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
785 SI opval
= INVSI (GET_H_GR (FLD (f_GRj
)));
786 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
788 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
792 abuf
->written
= written
;
797 /* csmul: csmul$pack $GRi,$GRj,$GRdoublek,$CCi,$cond */
800 SEM_FN_NAME (frvbf
,csmul
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
802 #define FLD(f) abuf->fields.sfmt_clddu.f
803 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
804 int UNUSED written
= 0;
805 IADDR UNUSED pc
= abuf
->addr
;
806 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
808 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
810 DI opval
= MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi
))), EXTSIDI (GET_H_GR (FLD (f_GRj
))));
811 sim_queue_fn_di_write (current_cpu
, frvbf_h_gr_double_set
, FLD (f_GRk
), opval
);
813 TRACE_RESULT (current_cpu
, abuf
, "gr_double", 'D', opval
);
817 abuf
->written
= written
;
822 /* csdiv: csdiv$pack $GRi,$GRj,$GRk,$CCi,$cond */
825 SEM_FN_NAME (frvbf
,csdiv
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
827 #define FLD(f) abuf->fields.sfmt_cswap.f
828 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
829 int UNUSED written
= 0;
830 IADDR UNUSED pc
= abuf
->addr
;
831 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
833 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
835 frvbf_signed_integer_divide (current_cpu
, GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)), FLD (f_GRk
), 0);
840 abuf
->written
= written
;
845 /* cudiv: cudiv$pack $GRi,$GRj,$GRk,$CCi,$cond */
848 SEM_FN_NAME (frvbf
,cudiv
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
850 #define FLD(f) abuf->fields.sfmt_cswap.f
851 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
852 int UNUSED written
= 0;
853 IADDR UNUSED pc
= abuf
->addr
;
854 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
856 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
858 frvbf_unsigned_integer_divide (current_cpu
, GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)), FLD (f_GRk
), 0);
863 abuf
->written
= written
;
868 /* csll: csll$pack $GRi,$GRj,$GRk,$CCi,$cond */
871 SEM_FN_NAME (frvbf
,csll
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
873 #define FLD(f) abuf->fields.sfmt_cswap.f
874 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
875 int UNUSED written
= 0;
876 IADDR UNUSED pc
= abuf
->addr
;
877 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
879 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
881 SI opval
= SLLSI (GET_H_GR (FLD (f_GRi
)), ANDSI (GET_H_GR (FLD (f_GRj
)), 31));
882 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
884 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
888 abuf
->written
= written
;
893 /* csrl: csrl$pack $GRi,$GRj,$GRk,$CCi,$cond */
896 SEM_FN_NAME (frvbf
,csrl
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
898 #define FLD(f) abuf->fields.sfmt_cswap.f
899 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
900 int UNUSED written
= 0;
901 IADDR UNUSED pc
= abuf
->addr
;
902 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
904 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
906 SI opval
= SRLSI (GET_H_GR (FLD (f_GRi
)), ANDSI (GET_H_GR (FLD (f_GRj
)), 31));
907 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
909 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
913 abuf
->written
= written
;
918 /* csra: csra$pack $GRi,$GRj,$GRk,$CCi,$cond */
921 SEM_FN_NAME (frvbf
,csra
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
923 #define FLD(f) abuf->fields.sfmt_cswap.f
924 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
925 int UNUSED written
= 0;
926 IADDR UNUSED pc
= abuf
->addr
;
927 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
929 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
931 SI opval
= SRASI (GET_H_GR (FLD (f_GRi
)), ANDSI (GET_H_GR (FLD (f_GRj
)), 31));
932 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
934 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
938 abuf
->written
= written
;
943 /* cscan: cscan$pack $GRi,$GRj,$GRk,$CCi,$cond */
946 SEM_FN_NAME (frvbf
,cscan
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
948 #define FLD(f) abuf->fields.sfmt_cswap.f
949 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
950 int UNUSED written
= 0;
951 IADDR UNUSED pc
= abuf
->addr
;
952 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
954 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
958 tmp_tmp1
= GET_H_GR (FLD (f_GRi
));
959 tmp_tmp2
= SRASI (GET_H_GR (FLD (f_GRj
)), 1);
961 SI opval
= frvbf_scan_result (current_cpu
, XORSI (tmp_tmp1
, tmp_tmp2
));
962 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
964 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
969 abuf
->written
= written
;
974 /* addcc: addcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
977 SEM_FN_NAME (frvbf
,addcc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
979 #define FLD(f) abuf->fields.sfmt_addcc.f
980 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
981 int UNUSED written
= 0;
982 IADDR UNUSED pc
= abuf
->addr
;
983 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
989 tmp_cc
= CPU (h_iccr
[FLD (f_ICCi_1
)]);
990 tmp_tmp
= ADDOFSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)), 0);
991 if (EQBI (tmp_tmp
, 0)) {
992 tmp_cc
= ANDQI (tmp_cc
, 13);
994 tmp_cc
= ORQI (tmp_cc
, 2);
996 tmp_tmp
= ADDCFSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)), 0);
997 if (EQBI (tmp_tmp
, 0)) {
998 tmp_cc
= ANDQI (tmp_cc
, 14);
1000 tmp_cc
= ORQI (tmp_cc
, 1);
1002 tmp_result
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
1003 if (EQSI (tmp_result
, 0)) {
1004 tmp_cc
= ORQI (ANDQI (tmp_cc
, 7), 4);
1006 if (LTSI (tmp_result
, 0)) {
1007 tmp_cc
= ORQI (ANDQI (tmp_cc
, 11), 8);
1009 tmp_cc
= ANDQI (tmp_cc
, 3);
1013 SI opval
= tmp_result
;
1014 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
1015 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
1019 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[FLD (f_ICCi_1
)]), opval
);
1020 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
1028 /* subcc: subcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1031 SEM_FN_NAME (frvbf
,subcc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1033 #define FLD(f) abuf->fields.sfmt_addcc.f
1034 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1035 int UNUSED written
= 0;
1036 IADDR UNUSED pc
= abuf
->addr
;
1037 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
1043 tmp_cc
= CPU (h_iccr
[FLD (f_ICCi_1
)]);
1044 tmp_tmp
= SUBOFSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)), 0);
1045 if (EQBI (tmp_tmp
, 0)) {
1046 tmp_cc
= ANDQI (tmp_cc
, 13);
1048 tmp_cc
= ORQI (tmp_cc
, 2);
1050 tmp_tmp
= SUBCFSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)), 0);
1051 if (EQBI (tmp_tmp
, 0)) {
1052 tmp_cc
= ANDQI (tmp_cc
, 14);
1054 tmp_cc
= ORQI (tmp_cc
, 1);
1056 tmp_result
= SUBSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
1057 if (EQSI (tmp_result
, 0)) {
1058 tmp_cc
= ORQI (ANDQI (tmp_cc
, 7), 4);
1060 if (LTSI (tmp_result
, 0)) {
1061 tmp_cc
= ORQI (ANDQI (tmp_cc
, 11), 8);
1063 tmp_cc
= ANDQI (tmp_cc
, 3);
1067 SI opval
= tmp_result
;
1068 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
1069 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
1073 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[FLD (f_ICCi_1
)]), opval
);
1074 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
1082 /* andcc: andcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1085 SEM_FN_NAME (frvbf
,andcc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1087 #define FLD(f) abuf->fields.sfmt_addcc.f
1088 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1089 int UNUSED written
= 0;
1090 IADDR UNUSED pc
= abuf
->addr
;
1091 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
1095 tmp_tmp
= ANDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
1098 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
1099 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
1101 if (EQSI (tmp_tmp
, 0)) {
1103 UQI opval
= ORQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_1
)]), 7), 4);
1104 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[FLD (f_ICCi_1
)]), opval
);
1105 written
|= (1 << 4);
1106 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
1109 if (LTSI (tmp_tmp
, 0)) {
1111 UQI opval
= ORQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_1
)]), 11), 8);
1112 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[FLD (f_ICCi_1
)]), opval
);
1113 written
|= (1 << 4);
1114 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
1118 UQI opval
= ANDQI (CPU (h_iccr
[FLD (f_ICCi_1
)]), 3);
1119 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[FLD (f_ICCi_1
)]), opval
);
1120 written
|= (1 << 4);
1121 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
1127 abuf
->written
= written
;
1132 /* orcc: orcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1135 SEM_FN_NAME (frvbf
,orcc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1137 #define FLD(f) abuf->fields.sfmt_addcc.f
1138 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1139 int UNUSED written
= 0;
1140 IADDR UNUSED pc
= abuf
->addr
;
1141 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
1145 tmp_tmp
= ORSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
1148 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
1149 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
1151 if (EQSI (tmp_tmp
, 0)) {
1153 UQI opval
= ORQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_1
)]), 7), 4);
1154 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[FLD (f_ICCi_1
)]), opval
);
1155 written
|= (1 << 4);
1156 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
1159 if (LTSI (tmp_tmp
, 0)) {
1161 UQI opval
= ORQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_1
)]), 11), 8);
1162 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[FLD (f_ICCi_1
)]), opval
);
1163 written
|= (1 << 4);
1164 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
1168 UQI opval
= ANDQI (CPU (h_iccr
[FLD (f_ICCi_1
)]), 3);
1169 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[FLD (f_ICCi_1
)]), opval
);
1170 written
|= (1 << 4);
1171 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
1177 abuf
->written
= written
;
1182 /* xorcc: xorcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1185 SEM_FN_NAME (frvbf
,xorcc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1187 #define FLD(f) abuf->fields.sfmt_addcc.f
1188 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1189 int UNUSED written
= 0;
1190 IADDR UNUSED pc
= abuf
->addr
;
1191 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
1195 tmp_tmp
= XORSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
1198 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
1199 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
1201 if (EQSI (tmp_tmp
, 0)) {
1203 UQI opval
= ORQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_1
)]), 7), 4);
1204 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[FLD (f_ICCi_1
)]), opval
);
1205 written
|= (1 << 4);
1206 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
1209 if (LTSI (tmp_tmp
, 0)) {
1211 UQI opval
= ORQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_1
)]), 11), 8);
1212 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[FLD (f_ICCi_1
)]), opval
);
1213 written
|= (1 << 4);
1214 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
1218 UQI opval
= ANDQI (CPU (h_iccr
[FLD (f_ICCi_1
)]), 3);
1219 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[FLD (f_ICCi_1
)]), opval
);
1220 written
|= (1 << 4);
1221 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
1227 abuf
->written
= written
;
1232 /* sllcc: sllcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1235 SEM_FN_NAME (frvbf
,sllcc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1237 #define FLD(f) abuf->fields.sfmt_addcc.f
1238 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1239 int UNUSED written
= 0;
1240 IADDR UNUSED pc
= abuf
->addr
;
1241 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
1247 tmp_shift
= ANDSI (GET_H_GR (FLD (f_GRj
)), 31);
1248 tmp_cc
= frvbf_set_icc_for_shift_left (current_cpu
, GET_H_GR (FLD (f_GRi
)), tmp_shift
, CPU (h_iccr
[FLD (f_ICCi_1
)]));
1249 tmp_tmp
= SLLSI (GET_H_GR (FLD (f_GRi
)), tmp_shift
);
1252 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
1253 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
1255 if (EQSI (tmp_tmp
, 0)) {
1256 tmp_cc
= ORQI (ANDQI (tmp_cc
, 7), 4);
1258 if (LTSI (tmp_tmp
, 0)) {
1259 tmp_cc
= ORQI (ANDQI (tmp_cc
, 11), 8);
1261 tmp_cc
= ANDQI (tmp_cc
, 3);
1266 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[FLD (f_ICCi_1
)]), opval
);
1267 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
1275 /* srlcc: srlcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1278 SEM_FN_NAME (frvbf
,srlcc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1280 #define FLD(f) abuf->fields.sfmt_addcc.f
1281 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1282 int UNUSED written
= 0;
1283 IADDR UNUSED pc
= abuf
->addr
;
1284 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
1290 tmp_shift
= ANDSI (GET_H_GR (FLD (f_GRj
)), 31);
1291 tmp_cc
= frvbf_set_icc_for_shift_right (current_cpu
, GET_H_GR (FLD (f_GRi
)), tmp_shift
, CPU (h_iccr
[FLD (f_ICCi_1
)]));
1292 tmp_tmp
= SRLSI (GET_H_GR (FLD (f_GRi
)), tmp_shift
);
1295 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
1296 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
1298 if (EQSI (tmp_tmp
, 0)) {
1299 tmp_cc
= ORQI (ANDQI (tmp_cc
, 7), 4);
1301 if (LTSI (tmp_tmp
, 0)) {
1302 tmp_cc
= ORQI (ANDQI (tmp_cc
, 11), 8);
1304 tmp_cc
= ANDQI (tmp_cc
, 3);
1309 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[FLD (f_ICCi_1
)]), opval
);
1310 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
1318 /* sracc: sracc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1321 SEM_FN_NAME (frvbf
,sracc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1323 #define FLD(f) abuf->fields.sfmt_addcc.f
1324 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1325 int UNUSED written
= 0;
1326 IADDR UNUSED pc
= abuf
->addr
;
1327 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
1333 tmp_shift
= ANDSI (GET_H_GR (FLD (f_GRj
)), 31);
1334 tmp_cc
= frvbf_set_icc_for_shift_right (current_cpu
, GET_H_GR (FLD (f_GRi
)), tmp_shift
, CPU (h_iccr
[FLD (f_ICCi_1
)]));
1335 tmp_tmp
= SRASI (GET_H_GR (FLD (f_GRi
)), tmp_shift
);
1338 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
1339 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
1341 if (EQSI (tmp_tmp
, 0)) {
1342 tmp_cc
= ORQI (ANDQI (tmp_cc
, 7), 4);
1344 if (LTSI (tmp_tmp
, 0)) {
1345 tmp_cc
= ORQI (ANDQI (tmp_cc
, 11), 8);
1347 tmp_cc
= ANDQI (tmp_cc
, 3);
1352 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[FLD (f_ICCi_1
)]), opval
);
1353 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
1361 /* smulcc: smulcc$pack $GRi,$GRj,$GRdoublek,$ICCi_1 */
1364 SEM_FN_NAME (frvbf
,smulcc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1366 #define FLD(f) abuf->fields.sfmt_smulcc.f
1367 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1368 int UNUSED written
= 0;
1369 IADDR UNUSED pc
= abuf
->addr
;
1370 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
1375 tmp_cc
= CPU (h_iccr
[FLD (f_ICCi_1
)]);
1376 tmp_tmp
= MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi
))), EXTSIDI (GET_H_GR (FLD (f_GRj
))));
1377 if (EQDI (SRLDI (tmp_tmp
, 63), 0)) {
1378 tmp_cc
= ANDQI (tmp_cc
, 7);
1380 tmp_cc
= ORQI (tmp_cc
, 8);
1382 if (EQBI (EQDI (tmp_tmp
, 0), 0)) {
1383 tmp_cc
= ANDQI (tmp_cc
, 11);
1385 tmp_cc
= ORQI (tmp_cc
, 4);
1389 sim_queue_fn_di_write (current_cpu
, frvbf_h_gr_double_set
, FLD (f_GRk
), opval
);
1390 TRACE_RESULT (current_cpu
, abuf
, "gr_double", 'D', opval
);
1394 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[FLD (f_ICCi_1
)]), opval
);
1395 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
1403 /* umulcc: umulcc$pack $GRi,$GRj,$GRdoublek,$ICCi_1 */
1406 SEM_FN_NAME (frvbf
,umulcc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1408 #define FLD(f) abuf->fields.sfmt_smulcc.f
1409 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1410 int UNUSED written
= 0;
1411 IADDR UNUSED pc
= abuf
->addr
;
1412 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
1417 tmp_cc
= CPU (h_iccr
[FLD (f_ICCi_1
)]);
1418 tmp_tmp
= MULDI (ZEXTSIDI (GET_H_GR (FLD (f_GRi
))), ZEXTSIDI (GET_H_GR (FLD (f_GRj
))));
1419 if (EQDI (SRLDI (tmp_tmp
, 63), 0)) {
1420 tmp_cc
= ANDQI (tmp_cc
, 7);
1422 tmp_cc
= ORQI (tmp_cc
, 8);
1424 if (EQBI (EQDI (tmp_tmp
, 0), 0)) {
1425 tmp_cc
= ANDQI (tmp_cc
, 11);
1427 tmp_cc
= ORQI (tmp_cc
, 4);
1431 sim_queue_fn_di_write (current_cpu
, frvbf_h_gr_double_set
, FLD (f_GRk
), opval
);
1432 TRACE_RESULT (current_cpu
, abuf
, "gr_double", 'D', opval
);
1436 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[FLD (f_ICCi_1
)]), opval
);
1437 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
1445 /* caddcc: caddcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1448 SEM_FN_NAME (frvbf
,caddcc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1450 #define FLD(f) abuf->fields.sfmt_caddcc.f
1451 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1452 int UNUSED written
= 0;
1453 IADDR UNUSED pc
= abuf
->addr
;
1454 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
1456 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
1461 tmp_cc
= CPU (h_iccr
[((FLD (f_CCi
)) & (3))]);
1462 tmp_tmp
= ADDOFSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)), 0);
1463 if (EQBI (tmp_tmp
, 0)) {
1464 tmp_cc
= ANDQI (tmp_cc
, 13);
1466 tmp_cc
= ORQI (tmp_cc
, 2);
1468 tmp_tmp
= ADDCFSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)), 0);
1469 if (EQBI (tmp_tmp
, 0)) {
1470 tmp_cc
= ANDQI (tmp_cc
, 14);
1472 tmp_cc
= ORQI (tmp_cc
, 1);
1474 tmp_result
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
1475 if (EQSI (tmp_result
, 0)) {
1476 tmp_cc
= ORQI (ANDQI (tmp_cc
, 7), 4);
1478 if (LTSI (tmp_result
, 0)) {
1479 tmp_cc
= ORQI (ANDQI (tmp_cc
, 11), 8);
1481 tmp_cc
= ANDQI (tmp_cc
, 3);
1485 SI opval
= tmp_result
;
1486 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
1487 written
|= (1 << 6);
1488 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
1492 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[((FLD (f_CCi
)) & (3))]), opval
);
1493 written
|= (1 << 7);
1494 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
1499 abuf
->written
= written
;
1504 /* csubcc: csubcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1507 SEM_FN_NAME (frvbf
,csubcc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1509 #define FLD(f) abuf->fields.sfmt_caddcc.f
1510 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1511 int UNUSED written
= 0;
1512 IADDR UNUSED pc
= abuf
->addr
;
1513 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
1515 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
1520 tmp_cc
= CPU (h_iccr
[((FLD (f_CCi
)) & (3))]);
1521 tmp_tmp
= SUBOFSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)), 0);
1522 if (EQBI (tmp_tmp
, 0)) {
1523 tmp_cc
= ANDQI (tmp_cc
, 13);
1525 tmp_cc
= ORQI (tmp_cc
, 2);
1527 tmp_tmp
= SUBCFSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)), 0);
1528 if (EQBI (tmp_tmp
, 0)) {
1529 tmp_cc
= ANDQI (tmp_cc
, 14);
1531 tmp_cc
= ORQI (tmp_cc
, 1);
1533 tmp_result
= SUBSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
1534 if (EQSI (tmp_result
, 0)) {
1535 tmp_cc
= ORQI (ANDQI (tmp_cc
, 7), 4);
1537 if (LTSI (tmp_result
, 0)) {
1538 tmp_cc
= ORQI (ANDQI (tmp_cc
, 11), 8);
1540 tmp_cc
= ANDQI (tmp_cc
, 3);
1544 SI opval
= tmp_result
;
1545 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
1546 written
|= (1 << 6);
1547 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
1551 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[((FLD (f_CCi
)) & (3))]), opval
);
1552 written
|= (1 << 7);
1553 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
1558 abuf
->written
= written
;
1563 /* csmulcc: csmulcc$pack $GRi,$GRj,$GRdoublek,$CCi,$cond */
1566 SEM_FN_NAME (frvbf
,csmulcc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1568 #define FLD(f) abuf->fields.sfmt_csmulcc.f
1569 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1570 int UNUSED written
= 0;
1571 IADDR UNUSED pc
= abuf
->addr
;
1572 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
1574 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
1578 tmp_cc
= CPU (h_iccr
[((FLD (f_CCi
)) & (3))]);
1579 tmp_tmp
= MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi
))), EXTSIDI (GET_H_GR (FLD (f_GRj
))));
1580 if (EQDI (SRLDI (tmp_tmp
, 63), 0)) {
1581 tmp_cc
= ANDQI (tmp_cc
, 7);
1583 tmp_cc
= ORQI (tmp_cc
, 8);
1585 if (EQBI (EQDI (tmp_tmp
, 0), 0)) {
1586 tmp_cc
= ANDQI (tmp_cc
, 11);
1588 tmp_cc
= ORQI (tmp_cc
, 4);
1592 sim_queue_fn_di_write (current_cpu
, frvbf_h_gr_double_set
, FLD (f_GRk
), opval
);
1593 written
|= (1 << 6);
1594 TRACE_RESULT (current_cpu
, abuf
, "gr_double", 'D', opval
);
1598 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[((FLD (f_CCi
)) & (3))]), opval
);
1599 written
|= (1 << 7);
1600 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
1605 abuf
->written
= written
;
1610 /* candcc: candcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1613 SEM_FN_NAME (frvbf
,candcc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1615 #define FLD(f) abuf->fields.sfmt_caddcc.f
1616 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1617 int UNUSED written
= 0;
1618 IADDR UNUSED pc
= abuf
->addr
;
1619 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
1621 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
1624 tmp_tmp
= ANDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
1627 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
1628 written
|= (1 << 6);
1629 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
1631 if (EQSI (tmp_tmp
, 0)) {
1633 UQI opval
= ORQI (ANDQI (CPU (h_iccr
[((FLD (f_CCi
)) & (3))]), 7), 4);
1634 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[((FLD (f_CCi
)) & (3))]), opval
);
1635 written
|= (1 << 7);
1636 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
1639 if (LTSI (tmp_tmp
, 0)) {
1641 UQI opval
= ORQI (ANDQI (CPU (h_iccr
[((FLD (f_CCi
)) & (3))]), 11), 8);
1642 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[((FLD (f_CCi
)) & (3))]), opval
);
1643 written
|= (1 << 7);
1644 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
1648 UQI opval
= ANDQI (CPU (h_iccr
[((FLD (f_CCi
)) & (3))]), 3);
1649 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[((FLD (f_CCi
)) & (3))]), opval
);
1650 written
|= (1 << 7);
1651 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
1658 abuf
->written
= written
;
1663 /* corcc: corcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1666 SEM_FN_NAME (frvbf
,corcc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1668 #define FLD(f) abuf->fields.sfmt_caddcc.f
1669 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1670 int UNUSED written
= 0;
1671 IADDR UNUSED pc
= abuf
->addr
;
1672 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
1674 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
1677 tmp_tmp
= ORSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
1680 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
1681 written
|= (1 << 6);
1682 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
1684 if (EQSI (tmp_tmp
, 0)) {
1686 UQI opval
= ORQI (ANDQI (CPU (h_iccr
[((FLD (f_CCi
)) & (3))]), 7), 4);
1687 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[((FLD (f_CCi
)) & (3))]), opval
);
1688 written
|= (1 << 7);
1689 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
1692 if (LTSI (tmp_tmp
, 0)) {
1694 UQI opval
= ORQI (ANDQI (CPU (h_iccr
[((FLD (f_CCi
)) & (3))]), 11), 8);
1695 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[((FLD (f_CCi
)) & (3))]), opval
);
1696 written
|= (1 << 7);
1697 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
1701 UQI opval
= ANDQI (CPU (h_iccr
[((FLD (f_CCi
)) & (3))]), 3);
1702 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[((FLD (f_CCi
)) & (3))]), opval
);
1703 written
|= (1 << 7);
1704 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
1711 abuf
->written
= written
;
1716 /* cxorcc: cxorcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1719 SEM_FN_NAME (frvbf
,cxorcc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1721 #define FLD(f) abuf->fields.sfmt_caddcc.f
1722 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1723 int UNUSED written
= 0;
1724 IADDR UNUSED pc
= abuf
->addr
;
1725 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
1727 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
1730 tmp_tmp
= XORSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
1733 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
1734 written
|= (1 << 6);
1735 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
1737 if (EQSI (tmp_tmp
, 0)) {
1739 UQI opval
= ORQI (ANDQI (CPU (h_iccr
[((FLD (f_CCi
)) & (3))]), 7), 4);
1740 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[((FLD (f_CCi
)) & (3))]), opval
);
1741 written
|= (1 << 7);
1742 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
1745 if (LTSI (tmp_tmp
, 0)) {
1747 UQI opval
= ORQI (ANDQI (CPU (h_iccr
[((FLD (f_CCi
)) & (3))]), 11), 8);
1748 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[((FLD (f_CCi
)) & (3))]), opval
);
1749 written
|= (1 << 7);
1750 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
1754 UQI opval
= ANDQI (CPU (h_iccr
[((FLD (f_CCi
)) & (3))]), 3);
1755 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[((FLD (f_CCi
)) & (3))]), opval
);
1756 written
|= (1 << 7);
1757 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
1764 abuf
->written
= written
;
1769 /* csllcc: csllcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1772 SEM_FN_NAME (frvbf
,csllcc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1774 #define FLD(f) abuf->fields.sfmt_caddcc.f
1775 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1776 int UNUSED written
= 0;
1777 IADDR UNUSED pc
= abuf
->addr
;
1778 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
1780 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
1785 tmp_shift
= ANDSI (GET_H_GR (FLD (f_GRj
)), 31);
1786 tmp_cc
= frvbf_set_icc_for_shift_left (current_cpu
, GET_H_GR (FLD (f_GRi
)), tmp_shift
, CPU (h_iccr
[((FLD (f_CCi
)) & (3))]));
1787 tmp_tmp
= SLLSI (GET_H_GR (FLD (f_GRi
)), tmp_shift
);
1790 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
1791 written
|= (1 << 6);
1792 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
1794 if (EQSI (tmp_tmp
, 0)) {
1795 tmp_cc
= ORQI (ANDQI (tmp_cc
, 7), 4);
1797 if (LTSI (tmp_tmp
, 0)) {
1798 tmp_cc
= ORQI (ANDQI (tmp_cc
, 11), 8);
1800 tmp_cc
= ANDQI (tmp_cc
, 3);
1805 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[((FLD (f_CCi
)) & (3))]), opval
);
1806 written
|= (1 << 7);
1807 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
1812 abuf
->written
= written
;
1817 /* csrlcc: csrlcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1820 SEM_FN_NAME (frvbf
,csrlcc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1822 #define FLD(f) abuf->fields.sfmt_caddcc.f
1823 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1824 int UNUSED written
= 0;
1825 IADDR UNUSED pc
= abuf
->addr
;
1826 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
1828 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
1833 tmp_shift
= ANDSI (GET_H_GR (FLD (f_GRj
)), 31);
1834 tmp_cc
= frvbf_set_icc_for_shift_right (current_cpu
, GET_H_GR (FLD (f_GRi
)), tmp_shift
, CPU (h_iccr
[((FLD (f_CCi
)) & (3))]));
1835 tmp_tmp
= SRLSI (GET_H_GR (FLD (f_GRi
)), tmp_shift
);
1838 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
1839 written
|= (1 << 6);
1840 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
1842 if (EQSI (tmp_tmp
, 0)) {
1843 tmp_cc
= ORQI (ANDQI (tmp_cc
, 7), 4);
1845 if (LTSI (tmp_tmp
, 0)) {
1846 tmp_cc
= ORQI (ANDQI (tmp_cc
, 11), 8);
1848 tmp_cc
= ANDQI (tmp_cc
, 3);
1853 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[((FLD (f_CCi
)) & (3))]), opval
);
1854 written
|= (1 << 7);
1855 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
1860 abuf
->written
= written
;
1865 /* csracc: csracc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1868 SEM_FN_NAME (frvbf
,csracc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1870 #define FLD(f) abuf->fields.sfmt_caddcc.f
1871 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1872 int UNUSED written
= 0;
1873 IADDR UNUSED pc
= abuf
->addr
;
1874 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
1876 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
1881 tmp_shift
= ANDSI (GET_H_GR (FLD (f_GRj
)), 31);
1882 tmp_cc
= frvbf_set_icc_for_shift_right (current_cpu
, GET_H_GR (FLD (f_GRi
)), tmp_shift
, CPU (h_iccr
[((FLD (f_CCi
)) & (3))]));
1883 tmp_tmp
= SRASI (GET_H_GR (FLD (f_GRi
)), tmp_shift
);
1886 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
1887 written
|= (1 << 6);
1888 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
1890 if (EQSI (tmp_tmp
, 0)) {
1891 tmp_cc
= ORQI (ANDQI (tmp_cc
, 7), 4);
1893 if (LTSI (tmp_tmp
, 0)) {
1894 tmp_cc
= ORQI (ANDQI (tmp_cc
, 11), 8);
1896 tmp_cc
= ANDQI (tmp_cc
, 3);
1901 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[((FLD (f_CCi
)) & (3))]), opval
);
1902 written
|= (1 << 7);
1903 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
1908 abuf
->written
= written
;
1913 /* addx: addx$pack $GRi,$GRj,$GRk,$ICCi_1 */
1916 SEM_FN_NAME (frvbf
,addx
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1918 #define FLD(f) abuf->fields.sfmt_addcc.f
1919 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1920 int UNUSED written
= 0;
1921 IADDR UNUSED pc
= abuf
->addr
;
1922 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
1925 SI opval
= ADDCSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)), TRUNCQIBI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_1
)]), 1)));
1926 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
1927 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
1934 /* subx: subx$pack $GRi,$GRj,$GRk,$ICCi_1 */
1937 SEM_FN_NAME (frvbf
,subx
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1939 #define FLD(f) abuf->fields.sfmt_addcc.f
1940 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1941 int UNUSED written
= 0;
1942 IADDR UNUSED pc
= abuf
->addr
;
1943 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
1946 SI opval
= SUBCSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)), TRUNCQIBI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_1
)]), 1)));
1947 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
1948 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
1955 /* addxcc: addxcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1958 SEM_FN_NAME (frvbf
,addxcc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
1960 #define FLD(f) abuf->fields.sfmt_addcc.f
1961 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
1962 int UNUSED written
= 0;
1963 IADDR UNUSED pc
= abuf
->addr
;
1964 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
1969 tmp_cc
= CPU (h_iccr
[FLD (f_ICCi_1
)]);
1970 tmp_tmp
= ADDCSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)), TRUNCQIBI (ANDQI (tmp_cc
, 1)));
1971 if (EQSI (ADDOFSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)), TRUNCQIBI (ANDQI (tmp_cc
, 1))), 0)) {
1972 tmp_cc
= ANDQI (tmp_cc
, 13);
1974 tmp_cc
= ORQI (tmp_cc
, 2);
1976 if (EQSI (ADDCFSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)), TRUNCQIBI (ANDQI (tmp_cc
, 1))), 0)) {
1977 tmp_cc
= ANDQI (tmp_cc
, 14);
1979 tmp_cc
= ORQI (tmp_cc
, 1);
1981 if (EQSI (tmp_tmp
, 0)) {
1982 tmp_cc
= ORQI (ANDQI (tmp_cc
, 7), 4);
1984 if (LTSI (tmp_tmp
, 0)) {
1985 tmp_cc
= ORQI (ANDQI (tmp_cc
, 11), 8);
1987 tmp_cc
= ANDQI (tmp_cc
, 3);
1992 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
1993 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
1997 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[FLD (f_ICCi_1
)]), opval
);
1998 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
2006 /* subxcc: subxcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
2009 SEM_FN_NAME (frvbf
,subxcc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2011 #define FLD(f) abuf->fields.sfmt_addcc.f
2012 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2013 int UNUSED written
= 0;
2014 IADDR UNUSED pc
= abuf
->addr
;
2015 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2020 tmp_cc
= CPU (h_iccr
[FLD (f_ICCi_1
)]);
2021 tmp_tmp
= SUBCSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)), TRUNCQIBI (ANDQI (tmp_cc
, 1)));
2022 if (EQSI (SUBOFSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)), TRUNCQIBI (ANDQI (tmp_cc
, 1))), 0)) {
2023 tmp_cc
= ANDQI (tmp_cc
, 13);
2025 tmp_cc
= ORQI (tmp_cc
, 2);
2027 if (EQSI (SUBCFSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)), TRUNCQIBI (ANDQI (tmp_cc
, 1))), 0)) {
2028 tmp_cc
= ANDQI (tmp_cc
, 14);
2030 tmp_cc
= ORQI (tmp_cc
, 1);
2032 if (EQSI (tmp_tmp
, 0)) {
2033 tmp_cc
= ORQI (ANDQI (tmp_cc
, 7), 4);
2035 if (LTSI (tmp_tmp
, 0)) {
2036 tmp_cc
= ORQI (ANDQI (tmp_cc
, 11), 8);
2038 tmp_cc
= ANDQI (tmp_cc
, 3);
2043 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
2044 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
2048 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[FLD (f_ICCi_1
)]), opval
);
2049 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
2057 /* addss: addss$pack $GRi,$GRj,$GRk */
2060 SEM_FN_NAME (frvbf
,addss
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2062 #define FLD(f) abuf->fields.sfmt_addcc.f
2063 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2064 int UNUSED written
= 0;
2065 IADDR UNUSED pc
= abuf
->addr
;
2066 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2070 SI opval
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
2071 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
2072 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
2074 if (ADDOFSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)), 0)) {
2076 SI opval
= (GTSI (GET_H_GR (FLD (f_GRi
)), 0)) ? (2147483647) : (LTSI (GET_H_GR (FLD (f_GRi
)), 0)) ? (0x80000000) : (0);
2077 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
2078 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
2087 /* subss: subss$pack $GRi,$GRj,$GRk */
2090 SEM_FN_NAME (frvbf
,subss
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2092 #define FLD(f) abuf->fields.sfmt_addcc.f
2093 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2094 int UNUSED written
= 0;
2095 IADDR UNUSED pc
= abuf
->addr
;
2096 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2100 SI opval
= SUBSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
2101 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
2102 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
2104 if (SUBOFSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)), 0)) {
2106 SI opval
= (GTSI (GET_H_GR (FLD (f_GRi
)), 0)) ? (2147483647) : (LTSI (GET_H_GR (FLD (f_GRi
)), 0)) ? (0x80000000) : (0);
2107 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
2108 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
2117 /* addi: addi$pack $GRi,$s12,$GRk */
2120 SEM_FN_NAME (frvbf
,addi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2122 #define FLD(f) abuf->fields.sfmt_swapi.f
2123 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2124 int UNUSED written
= 0;
2125 IADDR UNUSED pc
= abuf
->addr
;
2126 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2129 SI opval
= ADDSI (GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
2130 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
2131 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
2138 /* subi: subi$pack $GRi,$s12,$GRk */
2141 SEM_FN_NAME (frvbf
,subi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2143 #define FLD(f) abuf->fields.sfmt_swapi.f
2144 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2145 int UNUSED written
= 0;
2146 IADDR UNUSED pc
= abuf
->addr
;
2147 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2150 SI opval
= SUBSI (GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
2151 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
2152 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
2159 /* andi: andi$pack $GRi,$s12,$GRk */
2162 SEM_FN_NAME (frvbf
,andi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2164 #define FLD(f) abuf->fields.sfmt_swapi.f
2165 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2166 int UNUSED written
= 0;
2167 IADDR UNUSED pc
= abuf
->addr
;
2168 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2171 SI opval
= ANDSI (GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
2172 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
2173 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
2180 /* ori: ori$pack $GRi,$s12,$GRk */
2183 SEM_FN_NAME (frvbf
,ori
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2185 #define FLD(f) abuf->fields.sfmt_swapi.f
2186 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2187 int UNUSED written
= 0;
2188 IADDR UNUSED pc
= abuf
->addr
;
2189 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2192 SI opval
= ORSI (GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
2193 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
2194 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
2201 /* xori: xori$pack $GRi,$s12,$GRk */
2204 SEM_FN_NAME (frvbf
,xori
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2206 #define FLD(f) abuf->fields.sfmt_swapi.f
2207 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2208 int UNUSED written
= 0;
2209 IADDR UNUSED pc
= abuf
->addr
;
2210 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2213 SI opval
= XORSI (GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
2214 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
2215 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
2222 /* sdivi: sdivi$pack $GRi,$s12,$GRk */
2225 SEM_FN_NAME (frvbf
,sdivi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2227 #define FLD(f) abuf->fields.sfmt_swapi.f
2228 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2229 int UNUSED written
= 0;
2230 IADDR UNUSED pc
= abuf
->addr
;
2231 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2234 frvbf_signed_integer_divide (current_cpu
, GET_H_GR (FLD (f_GRi
)), FLD (f_d12
), FLD (f_GRk
), 0);
2242 /* nsdivi: nsdivi$pack $GRi,$s12,$GRk */
2245 SEM_FN_NAME (frvbf
,nsdivi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2247 #define FLD(f) abuf->fields.sfmt_swapi.f
2248 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2249 int UNUSED written
= 0;
2250 IADDR UNUSED pc
= abuf
->addr
;
2251 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2254 frvbf_signed_integer_divide (current_cpu
, GET_H_GR (FLD (f_GRi
)), FLD (f_d12
), FLD (f_GRk
), 1);
2262 /* udivi: udivi$pack $GRi,$s12,$GRk */
2265 SEM_FN_NAME (frvbf
,udivi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2267 #define FLD(f) abuf->fields.sfmt_swapi.f
2268 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2269 int UNUSED written
= 0;
2270 IADDR UNUSED pc
= abuf
->addr
;
2271 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2274 frvbf_unsigned_integer_divide (current_cpu
, GET_H_GR (FLD (f_GRi
)), FLD (f_d12
), FLD (f_GRk
), 0);
2282 /* nudivi: nudivi$pack $GRi,$s12,$GRk */
2285 SEM_FN_NAME (frvbf
,nudivi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2287 #define FLD(f) abuf->fields.sfmt_swapi.f
2288 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2289 int UNUSED written
= 0;
2290 IADDR UNUSED pc
= abuf
->addr
;
2291 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2294 frvbf_unsigned_integer_divide (current_cpu
, GET_H_GR (FLD (f_GRi
)), FLD (f_d12
), FLD (f_GRk
), 1);
2302 /* smuli: smuli$pack $GRi,$s12,$GRdoublek */
2305 SEM_FN_NAME (frvbf
,smuli
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2307 #define FLD(f) abuf->fields.sfmt_smuli.f
2308 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2309 int UNUSED written
= 0;
2310 IADDR UNUSED pc
= abuf
->addr
;
2311 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2314 DI opval
= MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi
))), EXTSIDI (FLD (f_d12
)));
2315 sim_queue_fn_di_write (current_cpu
, frvbf_h_gr_double_set
, FLD (f_GRk
), opval
);
2316 TRACE_RESULT (current_cpu
, abuf
, "gr_double", 'D', opval
);
2323 /* umuli: umuli$pack $GRi,$s12,$GRdoublek */
2326 SEM_FN_NAME (frvbf
,umuli
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2328 #define FLD(f) abuf->fields.sfmt_smuli.f
2329 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2330 int UNUSED written
= 0;
2331 IADDR UNUSED pc
= abuf
->addr
;
2332 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2335 DI opval
= MULDI (ZEXTSIDI (GET_H_GR (FLD (f_GRi
))), ZEXTSIDI (FLD (f_d12
)));
2336 sim_queue_fn_di_write (current_cpu
, frvbf_h_gr_double_set
, FLD (f_GRk
), opval
);
2337 TRACE_RESULT (current_cpu
, abuf
, "gr_double", 'D', opval
);
2344 /* slli: slli$pack $GRi,$s12,$GRk */
2347 SEM_FN_NAME (frvbf
,slli
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2349 #define FLD(f) abuf->fields.sfmt_swapi.f
2350 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2351 int UNUSED written
= 0;
2352 IADDR UNUSED pc
= abuf
->addr
;
2353 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2356 SI opval
= SLLSI (GET_H_GR (FLD (f_GRi
)), ANDSI (FLD (f_d12
), 31));
2357 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
2358 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
2365 /* srli: srli$pack $GRi,$s12,$GRk */
2368 SEM_FN_NAME (frvbf
,srli
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2370 #define FLD(f) abuf->fields.sfmt_swapi.f
2371 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2372 int UNUSED written
= 0;
2373 IADDR UNUSED pc
= abuf
->addr
;
2374 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2377 SI opval
= SRLSI (GET_H_GR (FLD (f_GRi
)), ANDSI (FLD (f_d12
), 31));
2378 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
2379 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
2386 /* srai: srai$pack $GRi,$s12,$GRk */
2389 SEM_FN_NAME (frvbf
,srai
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2391 #define FLD(f) abuf->fields.sfmt_swapi.f
2392 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2393 int UNUSED written
= 0;
2394 IADDR UNUSED pc
= abuf
->addr
;
2395 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2398 SI opval
= SRASI (GET_H_GR (FLD (f_GRi
)), ANDSI (FLD (f_d12
), 31));
2399 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
2400 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
2407 /* scani: scani$pack $GRi,$s12,$GRk */
2410 SEM_FN_NAME (frvbf
,scani
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2412 #define FLD(f) abuf->fields.sfmt_swapi.f
2413 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2414 int UNUSED written
= 0;
2415 IADDR UNUSED pc
= abuf
->addr
;
2416 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2421 tmp_tmp1
= GET_H_GR (FLD (f_GRi
));
2422 tmp_tmp2
= SRASI (FLD (f_d12
), 1);
2424 SI opval
= frvbf_scan_result (current_cpu
, XORSI (tmp_tmp1
, tmp_tmp2
));
2425 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
2426 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
2434 /* addicc: addicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2437 SEM_FN_NAME (frvbf
,addicc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2439 #define FLD(f) abuf->fields.sfmt_addicc.f
2440 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2441 int UNUSED written
= 0;
2442 IADDR UNUSED pc
= abuf
->addr
;
2443 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2449 tmp_cc
= CPU (h_iccr
[FLD (f_ICCi_1
)]);
2450 tmp_tmp
= ADDOFSI (GET_H_GR (FLD (f_GRi
)), FLD (f_s10
), 0);
2451 if (EQBI (tmp_tmp
, 0)) {
2452 tmp_cc
= ANDQI (tmp_cc
, 13);
2454 tmp_cc
= ORQI (tmp_cc
, 2);
2456 tmp_tmp
= ADDCFSI (GET_H_GR (FLD (f_GRi
)), FLD (f_s10
), 0);
2457 if (EQBI (tmp_tmp
, 0)) {
2458 tmp_cc
= ANDQI (tmp_cc
, 14);
2460 tmp_cc
= ORQI (tmp_cc
, 1);
2462 tmp_result
= ADDSI (GET_H_GR (FLD (f_GRi
)), FLD (f_s10
));
2463 if (EQSI (tmp_result
, 0)) {
2464 tmp_cc
= ORQI (ANDQI (tmp_cc
, 7), 4);
2466 if (LTSI (tmp_result
, 0)) {
2467 tmp_cc
= ORQI (ANDQI (tmp_cc
, 11), 8);
2469 tmp_cc
= ANDQI (tmp_cc
, 3);
2473 SI opval
= tmp_result
;
2474 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
2475 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
2479 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[FLD (f_ICCi_1
)]), opval
);
2480 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
2488 /* subicc: subicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2491 SEM_FN_NAME (frvbf
,subicc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2493 #define FLD(f) abuf->fields.sfmt_addicc.f
2494 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2495 int UNUSED written
= 0;
2496 IADDR UNUSED pc
= abuf
->addr
;
2497 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2503 tmp_cc
= CPU (h_iccr
[FLD (f_ICCi_1
)]);
2504 tmp_tmp
= SUBOFSI (GET_H_GR (FLD (f_GRi
)), FLD (f_s10
), 0);
2505 if (EQBI (tmp_tmp
, 0)) {
2506 tmp_cc
= ANDQI (tmp_cc
, 13);
2508 tmp_cc
= ORQI (tmp_cc
, 2);
2510 tmp_tmp
= SUBCFSI (GET_H_GR (FLD (f_GRi
)), FLD (f_s10
), 0);
2511 if (EQBI (tmp_tmp
, 0)) {
2512 tmp_cc
= ANDQI (tmp_cc
, 14);
2514 tmp_cc
= ORQI (tmp_cc
, 1);
2516 tmp_result
= SUBSI (GET_H_GR (FLD (f_GRi
)), FLD (f_s10
));
2517 if (EQSI (tmp_result
, 0)) {
2518 tmp_cc
= ORQI (ANDQI (tmp_cc
, 7), 4);
2520 if (LTSI (tmp_result
, 0)) {
2521 tmp_cc
= ORQI (ANDQI (tmp_cc
, 11), 8);
2523 tmp_cc
= ANDQI (tmp_cc
, 3);
2527 SI opval
= tmp_result
;
2528 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
2529 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
2533 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[FLD (f_ICCi_1
)]), opval
);
2534 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
2542 /* andicc: andicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2545 SEM_FN_NAME (frvbf
,andicc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2547 #define FLD(f) abuf->fields.sfmt_addicc.f
2548 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2549 int UNUSED written
= 0;
2550 IADDR UNUSED pc
= abuf
->addr
;
2551 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2555 tmp_tmp
= ANDSI (GET_H_GR (FLD (f_GRi
)), FLD (f_s10
));
2558 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
2559 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
2561 if (EQSI (tmp_tmp
, 0)) {
2563 UQI opval
= ORQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_1
)]), 7), 4);
2564 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[FLD (f_ICCi_1
)]), opval
);
2565 written
|= (1 << 4);
2566 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
2569 if (LTSI (tmp_tmp
, 0)) {
2571 UQI opval
= ORQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_1
)]), 11), 8);
2572 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[FLD (f_ICCi_1
)]), opval
);
2573 written
|= (1 << 4);
2574 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
2578 UQI opval
= ANDQI (CPU (h_iccr
[FLD (f_ICCi_1
)]), 3);
2579 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[FLD (f_ICCi_1
)]), opval
);
2580 written
|= (1 << 4);
2581 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
2587 abuf
->written
= written
;
2592 /* oricc: oricc$pack $GRi,$s10,$GRk,$ICCi_1 */
2595 SEM_FN_NAME (frvbf
,oricc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2597 #define FLD(f) abuf->fields.sfmt_addicc.f
2598 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2599 int UNUSED written
= 0;
2600 IADDR UNUSED pc
= abuf
->addr
;
2601 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2605 tmp_tmp
= ORSI (GET_H_GR (FLD (f_GRi
)), FLD (f_s10
));
2608 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
2609 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
2611 if (EQSI (tmp_tmp
, 0)) {
2613 UQI opval
= ORQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_1
)]), 7), 4);
2614 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[FLD (f_ICCi_1
)]), opval
);
2615 written
|= (1 << 4);
2616 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
2619 if (LTSI (tmp_tmp
, 0)) {
2621 UQI opval
= ORQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_1
)]), 11), 8);
2622 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[FLD (f_ICCi_1
)]), opval
);
2623 written
|= (1 << 4);
2624 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
2628 UQI opval
= ANDQI (CPU (h_iccr
[FLD (f_ICCi_1
)]), 3);
2629 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[FLD (f_ICCi_1
)]), opval
);
2630 written
|= (1 << 4);
2631 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
2637 abuf
->written
= written
;
2642 /* xoricc: xoricc$pack $GRi,$s10,$GRk,$ICCi_1 */
2645 SEM_FN_NAME (frvbf
,xoricc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2647 #define FLD(f) abuf->fields.sfmt_addicc.f
2648 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2649 int UNUSED written
= 0;
2650 IADDR UNUSED pc
= abuf
->addr
;
2651 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2655 tmp_tmp
= XORSI (GET_H_GR (FLD (f_GRi
)), FLD (f_s10
));
2658 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
2659 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
2661 if (EQSI (tmp_tmp
, 0)) {
2663 UQI opval
= ORQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_1
)]), 7), 4);
2664 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[FLD (f_ICCi_1
)]), opval
);
2665 written
|= (1 << 4);
2666 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
2669 if (LTSI (tmp_tmp
, 0)) {
2671 UQI opval
= ORQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_1
)]), 11), 8);
2672 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[FLD (f_ICCi_1
)]), opval
);
2673 written
|= (1 << 4);
2674 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
2678 UQI opval
= ANDQI (CPU (h_iccr
[FLD (f_ICCi_1
)]), 3);
2679 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[FLD (f_ICCi_1
)]), opval
);
2680 written
|= (1 << 4);
2681 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
2687 abuf
->written
= written
;
2692 /* smulicc: smulicc$pack $GRi,$s10,$GRdoublek,$ICCi_1 */
2695 SEM_FN_NAME (frvbf
,smulicc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2697 #define FLD(f) abuf->fields.sfmt_smulicc.f
2698 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2699 int UNUSED written
= 0;
2700 IADDR UNUSED pc
= abuf
->addr
;
2701 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2706 tmp_cc
= CPU (h_iccr
[FLD (f_ICCi_1
)]);
2707 tmp_tmp
= MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi
))), EXTSIDI (FLD (f_s10
)));
2708 if (EQDI (SRLDI (tmp_tmp
, 63), 0)) {
2709 tmp_cc
= ANDQI (tmp_cc
, 7);
2711 tmp_cc
= ORQI (tmp_cc
, 8);
2713 if (EQBI (EQDI (tmp_tmp
, 0), 0)) {
2714 tmp_cc
= ANDQI (tmp_cc
, 11);
2716 tmp_cc
= ORQI (tmp_cc
, 4);
2720 sim_queue_fn_di_write (current_cpu
, frvbf_h_gr_double_set
, FLD (f_GRk
), opval
);
2721 TRACE_RESULT (current_cpu
, abuf
, "gr_double", 'D', opval
);
2725 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[FLD (f_ICCi_1
)]), opval
);
2726 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
2734 /* umulicc: umulicc$pack $GRi,$s10,$GRdoublek,$ICCi_1 */
2737 SEM_FN_NAME (frvbf
,umulicc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2739 #define FLD(f) abuf->fields.sfmt_smulicc.f
2740 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2741 int UNUSED written
= 0;
2742 IADDR UNUSED pc
= abuf
->addr
;
2743 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2748 tmp_cc
= CPU (h_iccr
[FLD (f_ICCi_1
)]);
2749 tmp_tmp
= MULDI (ZEXTSIDI (GET_H_GR (FLD (f_GRi
))), ZEXTSIDI (FLD (f_s10
)));
2750 if (EQDI (SRLDI (tmp_tmp
, 63), 0)) {
2751 tmp_cc
= ANDQI (tmp_cc
, 7);
2753 tmp_cc
= ORQI (tmp_cc
, 8);
2755 if (EQBI (EQDI (tmp_tmp
, 0), 0)) {
2756 tmp_cc
= ANDQI (tmp_cc
, 11);
2758 tmp_cc
= ORQI (tmp_cc
, 4);
2762 sim_queue_fn_di_write (current_cpu
, frvbf_h_gr_double_set
, FLD (f_GRk
), opval
);
2763 TRACE_RESULT (current_cpu
, abuf
, "gr_double", 'D', opval
);
2767 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[FLD (f_ICCi_1
)]), opval
);
2768 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
2776 /* sllicc: sllicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2779 SEM_FN_NAME (frvbf
,sllicc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2781 #define FLD(f) abuf->fields.sfmt_addicc.f
2782 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2783 int UNUSED written
= 0;
2784 IADDR UNUSED pc
= abuf
->addr
;
2785 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2791 tmp_shift
= ANDSI (FLD (f_s10
), 31);
2792 tmp_cc
= frvbf_set_icc_for_shift_left (current_cpu
, GET_H_GR (FLD (f_GRi
)), tmp_shift
, CPU (h_iccr
[FLD (f_ICCi_1
)]));
2793 tmp_tmp
= SLLSI (GET_H_GR (FLD (f_GRi
)), tmp_shift
);
2796 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
2797 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
2799 if (EQSI (tmp_tmp
, 0)) {
2800 tmp_cc
= ORQI (ANDQI (tmp_cc
, 7), 4);
2802 if (LTSI (tmp_tmp
, 0)) {
2803 tmp_cc
= ORQI (ANDQI (tmp_cc
, 11), 8);
2805 tmp_cc
= ANDQI (tmp_cc
, 3);
2810 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[FLD (f_ICCi_1
)]), opval
);
2811 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
2819 /* srlicc: srlicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2822 SEM_FN_NAME (frvbf
,srlicc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2824 #define FLD(f) abuf->fields.sfmt_addicc.f
2825 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2826 int UNUSED written
= 0;
2827 IADDR UNUSED pc
= abuf
->addr
;
2828 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2834 tmp_shift
= ANDSI (FLD (f_s10
), 31);
2835 tmp_cc
= frvbf_set_icc_for_shift_right (current_cpu
, GET_H_GR (FLD (f_GRi
)), tmp_shift
, CPU (h_iccr
[FLD (f_ICCi_1
)]));
2836 tmp_tmp
= SRLSI (GET_H_GR (FLD (f_GRi
)), tmp_shift
);
2839 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
2840 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
2842 if (EQSI (tmp_tmp
, 0)) {
2843 tmp_cc
= ORQI (ANDQI (tmp_cc
, 7), 4);
2845 if (LTSI (tmp_tmp
, 0)) {
2846 tmp_cc
= ORQI (ANDQI (tmp_cc
, 11), 8);
2848 tmp_cc
= ANDQI (tmp_cc
, 3);
2853 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[FLD (f_ICCi_1
)]), opval
);
2854 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
2862 /* sraicc: sraicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2865 SEM_FN_NAME (frvbf
,sraicc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2867 #define FLD(f) abuf->fields.sfmt_addicc.f
2868 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2869 int UNUSED written
= 0;
2870 IADDR UNUSED pc
= abuf
->addr
;
2871 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2877 tmp_shift
= ANDSI (FLD (f_s10
), 31);
2878 tmp_cc
= frvbf_set_icc_for_shift_right (current_cpu
, GET_H_GR (FLD (f_GRi
)), tmp_shift
, CPU (h_iccr
[FLD (f_ICCi_1
)]));
2879 tmp_tmp
= SRASI (GET_H_GR (FLD (f_GRi
)), tmp_shift
);
2882 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
2883 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
2885 if (EQSI (tmp_tmp
, 0)) {
2886 tmp_cc
= ORQI (ANDQI (tmp_cc
, 7), 4);
2888 if (LTSI (tmp_tmp
, 0)) {
2889 tmp_cc
= ORQI (ANDQI (tmp_cc
, 11), 8);
2891 tmp_cc
= ANDQI (tmp_cc
, 3);
2896 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[FLD (f_ICCi_1
)]), opval
);
2897 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
2905 /* addxi: addxi$pack $GRi,$s10,$GRk,$ICCi_1 */
2908 SEM_FN_NAME (frvbf
,addxi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2910 #define FLD(f) abuf->fields.sfmt_addicc.f
2911 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2912 int UNUSED written
= 0;
2913 IADDR UNUSED pc
= abuf
->addr
;
2914 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2917 SI opval
= ADDCSI (GET_H_GR (FLD (f_GRi
)), FLD (f_s10
), TRUNCQIBI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_1
)]), 1)));
2918 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
2919 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
2926 /* subxi: subxi$pack $GRi,$s10,$GRk,$ICCi_1 */
2929 SEM_FN_NAME (frvbf
,subxi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2931 #define FLD(f) abuf->fields.sfmt_addicc.f
2932 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2933 int UNUSED written
= 0;
2934 IADDR UNUSED pc
= abuf
->addr
;
2935 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2938 SI opval
= SUBCSI (GET_H_GR (FLD (f_GRi
)), FLD (f_s10
), TRUNCQIBI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_1
)]), 1)));
2939 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
2940 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
2947 /* addxicc: addxicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2950 SEM_FN_NAME (frvbf
,addxicc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
2952 #define FLD(f) abuf->fields.sfmt_addicc.f
2953 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
2954 int UNUSED written
= 0;
2955 IADDR UNUSED pc
= abuf
->addr
;
2956 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
2961 tmp_cc
= CPU (h_iccr
[FLD (f_ICCi_1
)]);
2962 tmp_tmp
= ADDCSI (GET_H_GR (FLD (f_GRi
)), FLD (f_s10
), TRUNCQIBI (ANDQI (tmp_cc
, 1)));
2963 if (EQSI (ADDOFSI (GET_H_GR (FLD (f_GRi
)), FLD (f_s10
), TRUNCQIBI (ANDQI (tmp_cc
, 1))), 0)) {
2964 tmp_cc
= ANDQI (tmp_cc
, 13);
2966 tmp_cc
= ORQI (tmp_cc
, 2);
2968 if (EQSI (ADDCFSI (GET_H_GR (FLD (f_GRi
)), FLD (f_s10
), TRUNCQIBI (ANDQI (tmp_cc
, 1))), 0)) {
2969 tmp_cc
= ANDQI (tmp_cc
, 14);
2971 tmp_cc
= ORQI (tmp_cc
, 1);
2973 if (EQSI (tmp_tmp
, 0)) {
2974 tmp_cc
= ORQI (ANDQI (tmp_cc
, 7), 4);
2976 if (LTSI (tmp_tmp
, 0)) {
2977 tmp_cc
= ORQI (ANDQI (tmp_cc
, 11), 8);
2979 tmp_cc
= ANDQI (tmp_cc
, 3);
2984 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
2985 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
2989 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[FLD (f_ICCi_1
)]), opval
);
2990 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
2998 /* subxicc: subxicc$pack $GRi,$s10,$GRk,$ICCi_1 */
3001 SEM_FN_NAME (frvbf
,subxicc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3003 #define FLD(f) abuf->fields.sfmt_addicc.f
3004 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3005 int UNUSED written
= 0;
3006 IADDR UNUSED pc
= abuf
->addr
;
3007 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3012 tmp_cc
= CPU (h_iccr
[FLD (f_ICCi_1
)]);
3013 tmp_tmp
= SUBCSI (GET_H_GR (FLD (f_GRi
)), FLD (f_s10
), TRUNCQIBI (ANDQI (tmp_cc
, 1)));
3014 if (EQSI (SUBOFSI (GET_H_GR (FLD (f_GRi
)), FLD (f_s10
), TRUNCQIBI (ANDQI (tmp_cc
, 1))), 0)) {
3015 tmp_cc
= ANDQI (tmp_cc
, 13);
3017 tmp_cc
= ORQI (tmp_cc
, 2);
3019 if (EQSI (SUBCFSI (GET_H_GR (FLD (f_GRi
)), FLD (f_s10
), TRUNCQIBI (ANDQI (tmp_cc
, 1))), 0)) {
3020 tmp_cc
= ANDQI (tmp_cc
, 14);
3022 tmp_cc
= ORQI (tmp_cc
, 1);
3024 if (EQSI (tmp_tmp
, 0)) {
3025 tmp_cc
= ORQI (ANDQI (tmp_cc
, 7), 4);
3027 if (LTSI (tmp_tmp
, 0)) {
3028 tmp_cc
= ORQI (ANDQI (tmp_cc
, 11), 8);
3030 tmp_cc
= ANDQI (tmp_cc
, 3);
3035 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
3036 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
3040 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[FLD (f_ICCi_1
)]), opval
);
3041 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
3049 /* cmpb: cmpb$pack $GRi,$GRj,$ICCi_1 */
3052 SEM_FN_NAME (frvbf
,cmpb
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3054 #define FLD(f) abuf->fields.sfmt_smulcc.f
3055 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3056 int UNUSED written
= 0;
3057 IADDR UNUSED pc
= abuf
->addr
;
3058 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3062 if (EQBI (EQSI (ANDSI (GET_H_GR (FLD (f_GRi
)), 0xff000000), ANDSI (GET_H_GR (FLD (f_GRj
)), 0xff000000)), 0)) {
3063 tmp_cc
= ANDQI (tmp_cc
, 7);
3065 tmp_cc
= ORQI (tmp_cc
, 8);
3067 if (EQBI (EQSI (ANDSI (GET_H_GR (FLD (f_GRi
)), 16711680), ANDSI (GET_H_GR (FLD (f_GRj
)), 16711680)), 0)) {
3068 tmp_cc
= ANDQI (tmp_cc
, 11);
3070 tmp_cc
= ORQI (tmp_cc
, 4);
3072 if (EQBI (EQSI (ANDSI (GET_H_GR (FLD (f_GRi
)), 65280), ANDSI (GET_H_GR (FLD (f_GRj
)), 65280)), 0)) {
3073 tmp_cc
= ANDQI (tmp_cc
, 13);
3075 tmp_cc
= ORQI (tmp_cc
, 2);
3077 if (EQBI (EQSI (ANDSI (GET_H_GR (FLD (f_GRi
)), 255), ANDSI (GET_H_GR (FLD (f_GRj
)), 255)), 0)) {
3078 tmp_cc
= ANDQI (tmp_cc
, 14);
3080 tmp_cc
= ORQI (tmp_cc
, 1);
3084 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[FLD (f_ICCi_1
)]), opval
);
3085 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
3093 /* cmpba: cmpba$pack $GRi,$GRj,$ICCi_1 */
3096 SEM_FN_NAME (frvbf
,cmpba
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3098 #define FLD(f) abuf->fields.sfmt_smulcc.f
3099 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3100 int UNUSED written
= 0;
3101 IADDR UNUSED pc
= abuf
->addr
;
3102 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3107 if (EQBI (ORIF (EQSI (ANDSI (GET_H_GR (FLD (f_GRi
)), 0xff000000), ANDSI (GET_H_GR (FLD (f_GRj
)), 0xff000000)), ORIF (EQSI (ANDSI (GET_H_GR (FLD (f_GRi
)), 16711680), ANDSI (GET_H_GR (FLD (f_GRj
)), 16711680)), ORIF (EQSI (ANDSI (GET_H_GR (FLD (f_GRi
)), 65280), ANDSI (GET_H_GR (FLD (f_GRj
)), 65280)), EQSI (ANDSI (GET_H_GR (FLD (f_GRi
)), 255), ANDSI (GET_H_GR (FLD (f_GRj
)), 255))))), 0)) {
3108 tmp_cc
= ANDQI (tmp_cc
, 14);
3110 tmp_cc
= ORQI (tmp_cc
, 1);
3114 sim_queue_qi_write (current_cpu
, & CPU (h_iccr
[FLD (f_ICCi_1
)]), opval
);
3115 TRACE_RESULT (current_cpu
, abuf
, "iccr", 'x', opval
);
3123 /* setlo: setlo$pack $ulo16,$GRklo */
3126 SEM_FN_NAME (frvbf
,setlo
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3128 #define FLD(f) abuf->fields.sfmt_setlo.f
3129 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3130 int UNUSED written
= 0;
3131 IADDR UNUSED pc
= abuf
->addr
;
3132 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3135 UHI opval
= FLD (f_u16
);
3136 sim_queue_fn_hi_write (current_cpu
, frvbf_h_gr_lo_set
, FLD (f_GRk
), opval
);
3137 TRACE_RESULT (current_cpu
, abuf
, "gr_lo", 'x', opval
);
3144 /* sethi: sethi$pack $uhi16,$GRkhi */
3147 SEM_FN_NAME (frvbf
,sethi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3149 #define FLD(f) abuf->fields.sfmt_sethi.f
3150 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3151 int UNUSED written
= 0;
3152 IADDR UNUSED pc
= abuf
->addr
;
3153 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3156 UHI opval
= FLD (f_u16
);
3157 sim_queue_fn_hi_write (current_cpu
, frvbf_h_gr_hi_set
, FLD (f_GRk
), opval
);
3158 TRACE_RESULT (current_cpu
, abuf
, "gr_hi", 'x', opval
);
3165 /* setlos: setlos$pack $slo16,$GRk */
3168 SEM_FN_NAME (frvbf
,setlos
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3170 #define FLD(f) abuf->fields.sfmt_setlos.f
3171 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3172 int UNUSED written
= 0;
3173 IADDR UNUSED pc
= abuf
->addr
;
3174 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3177 SI opval
= FLD (f_s16
);
3178 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
3179 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
3186 /* ldsb: ldsb$pack @($GRi,$GRj),$GRk */
3189 SEM_FN_NAME (frvbf
,ldsb
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3191 #define FLD(f) abuf->fields.sfmt_addcc.f
3192 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3193 int UNUSED written
= 0;
3194 IADDR UNUSED pc
= abuf
->addr
;
3195 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3198 SI opval
= frvbf_read_mem_QI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))));
3199 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
3200 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
3207 /* ldub: ldub$pack @($GRi,$GRj),$GRk */
3210 SEM_FN_NAME (frvbf
,ldub
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3212 #define FLD(f) abuf->fields.sfmt_addcc.f
3213 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3214 int UNUSED written
= 0;
3215 IADDR UNUSED pc
= abuf
->addr
;
3216 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3219 SI opval
= frvbf_read_mem_UQI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))));
3220 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
3221 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
3228 /* ldsh: ldsh$pack @($GRi,$GRj),$GRk */
3231 SEM_FN_NAME (frvbf
,ldsh
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3233 #define FLD(f) abuf->fields.sfmt_addcc.f
3234 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3235 int UNUSED written
= 0;
3236 IADDR UNUSED pc
= abuf
->addr
;
3237 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3240 SI opval
= frvbf_read_mem_HI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))));
3241 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
3242 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
3249 /* lduh: lduh$pack @($GRi,$GRj),$GRk */
3252 SEM_FN_NAME (frvbf
,lduh
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3254 #define FLD(f) abuf->fields.sfmt_addcc.f
3255 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3256 int UNUSED written
= 0;
3257 IADDR UNUSED pc
= abuf
->addr
;
3258 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3261 SI opval
= frvbf_read_mem_UHI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))));
3262 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
3263 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
3270 /* ld: ld$pack @($GRi,$GRj),$GRk */
3273 SEM_FN_NAME (frvbf
,ld
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3275 #define FLD(f) abuf->fields.sfmt_addcc.f
3276 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3277 int UNUSED written
= 0;
3278 IADDR UNUSED pc
= abuf
->addr
;
3279 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3282 SI opval
= frvbf_read_mem_SI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))));
3283 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
3284 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
3291 /* ldbf: ldbf$pack @($GRi,$GRj),$FRintk */
3294 SEM_FN_NAME (frvbf
,ldbf
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3296 #define FLD(f) abuf->fields.sfmt_cldbfu.f
3297 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3298 int UNUSED written
= 0;
3299 IADDR UNUSED pc
= abuf
->addr
;
3300 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3303 SI opval
= frvbf_read_mem_UQI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))));
3304 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
3305 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
3312 /* ldhf: ldhf$pack @($GRi,$GRj),$FRintk */
3315 SEM_FN_NAME (frvbf
,ldhf
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3317 #define FLD(f) abuf->fields.sfmt_cldbfu.f
3318 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3319 int UNUSED written
= 0;
3320 IADDR UNUSED pc
= abuf
->addr
;
3321 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3324 SI opval
= frvbf_read_mem_UHI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))));
3325 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
3326 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
3333 /* ldf: ldf$pack @($GRi,$GRj),$FRintk */
3336 SEM_FN_NAME (frvbf
,ldf
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3338 #define FLD(f) abuf->fields.sfmt_cldbfu.f
3339 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3340 int UNUSED written
= 0;
3341 IADDR UNUSED pc
= abuf
->addr
;
3342 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3345 SI opval
= frvbf_read_mem_SI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))));
3346 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
3347 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
3354 /* ldc: ldc$pack @($GRi,$GRj),$CPRk */
3357 SEM_FN_NAME (frvbf
,ldc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3359 #define FLD(f) abuf->fields.sfmt_ldcu.f
3360 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3361 int UNUSED written
= 0;
3362 IADDR UNUSED pc
= abuf
->addr
;
3363 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3366 SI opval
= frvbf_read_mem_SI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))));
3367 sim_queue_si_write (current_cpu
, & CPU (h_cpr
[FLD (f_CPRk
)]), opval
);
3368 TRACE_RESULT (current_cpu
, abuf
, "cpr", 'x', opval
);
3375 /* nldsb: nldsb$pack @($GRi,$GRj),$GRk */
3378 SEM_FN_NAME (frvbf
,nldsb
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3380 #define FLD(f) abuf->fields.sfmt_addcc.f
3381 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3382 int UNUSED written
= 0;
3383 IADDR UNUSED pc
= abuf
->addr
;
3384 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3388 tmp_do_op
= frvbf_check_non_excepting_load (current_cpu
, FLD (f_GRi
), FLD (f_GRj
), FLD (f_GRk
), 0, 1, 0);
3391 SI opval
= frvbf_read_mem_QI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))));
3392 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
3393 written
|= (1 << 6);
3394 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
3399 abuf
->written
= written
;
3404 /* nldub: nldub$pack @($GRi,$GRj),$GRk */
3407 SEM_FN_NAME (frvbf
,nldub
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3409 #define FLD(f) abuf->fields.sfmt_addcc.f
3410 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3411 int UNUSED written
= 0;
3412 IADDR UNUSED pc
= abuf
->addr
;
3413 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3417 tmp_do_op
= frvbf_check_non_excepting_load (current_cpu
, FLD (f_GRi
), FLD (f_GRj
), FLD (f_GRk
), 0, 0, 0);
3420 SI opval
= frvbf_read_mem_UQI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))));
3421 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
3422 written
|= (1 << 6);
3423 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
3428 abuf
->written
= written
;
3433 /* nldsh: nldsh$pack @($GRi,$GRj),$GRk */
3436 SEM_FN_NAME (frvbf
,nldsh
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3438 #define FLD(f) abuf->fields.sfmt_addcc.f
3439 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3440 int UNUSED written
= 0;
3441 IADDR UNUSED pc
= abuf
->addr
;
3442 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3446 tmp_do_op
= frvbf_check_non_excepting_load (current_cpu
, FLD (f_GRi
), FLD (f_GRj
), FLD (f_GRk
), 0, 3, 0);
3449 SI opval
= frvbf_read_mem_HI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))));
3450 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
3451 written
|= (1 << 6);
3452 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
3457 abuf
->written
= written
;
3462 /* nlduh: nlduh$pack @($GRi,$GRj),$GRk */
3465 SEM_FN_NAME (frvbf
,nlduh
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3467 #define FLD(f) abuf->fields.sfmt_addcc.f
3468 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3469 int UNUSED written
= 0;
3470 IADDR UNUSED pc
= abuf
->addr
;
3471 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3475 tmp_do_op
= frvbf_check_non_excepting_load (current_cpu
, FLD (f_GRi
), FLD (f_GRj
), FLD (f_GRk
), 0, 2, 0);
3478 SI opval
= frvbf_read_mem_UHI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))));
3479 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
3480 written
|= (1 << 6);
3481 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
3486 abuf
->written
= written
;
3491 /* nld: nld$pack @($GRi,$GRj),$GRk */
3494 SEM_FN_NAME (frvbf
,nld
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3496 #define FLD(f) abuf->fields.sfmt_addcc.f
3497 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3498 int UNUSED written
= 0;
3499 IADDR UNUSED pc
= abuf
->addr
;
3500 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3504 tmp_do_op
= frvbf_check_non_excepting_load (current_cpu
, FLD (f_GRi
), FLD (f_GRj
), FLD (f_GRk
), 0, 4, 0);
3507 SI opval
= frvbf_read_mem_SI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))));
3508 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
3509 written
|= (1 << 6);
3510 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
3515 abuf
->written
= written
;
3520 /* nldbf: nldbf$pack @($GRi,$GRj),$FRintk */
3523 SEM_FN_NAME (frvbf
,nldbf
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3525 #define FLD(f) abuf->fields.sfmt_cldbfu.f
3526 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3527 int UNUSED written
= 0;
3528 IADDR UNUSED pc
= abuf
->addr
;
3529 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3533 tmp_do_op
= frvbf_check_non_excepting_load (current_cpu
, FLD (f_GRi
), FLD (f_GRj
), FLD (f_FRk
), 0, 0, 1);
3536 SI opval
= frvbf_read_mem_UQI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))));
3537 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
3538 written
|= (1 << 6);
3539 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
3544 abuf
->written
= written
;
3549 /* nldhf: nldhf$pack @($GRi,$GRj),$FRintk */
3552 SEM_FN_NAME (frvbf
,nldhf
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3554 #define FLD(f) abuf->fields.sfmt_cldbfu.f
3555 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3556 int UNUSED written
= 0;
3557 IADDR UNUSED pc
= abuf
->addr
;
3558 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3562 tmp_do_op
= frvbf_check_non_excepting_load (current_cpu
, FLD (f_GRi
), FLD (f_GRj
), FLD (f_FRk
), 0, 2, 1);
3565 SI opval
= frvbf_read_mem_UHI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))));
3566 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
3567 written
|= (1 << 6);
3568 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
3573 abuf
->written
= written
;
3578 /* nldf: nldf$pack @($GRi,$GRj),$FRintk */
3581 SEM_FN_NAME (frvbf
,nldf
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3583 #define FLD(f) abuf->fields.sfmt_cldbfu.f
3584 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3585 int UNUSED written
= 0;
3586 IADDR UNUSED pc
= abuf
->addr
;
3587 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3591 tmp_do_op
= frvbf_check_non_excepting_load (current_cpu
, FLD (f_GRi
), FLD (f_GRj
), FLD (f_FRk
), 0, 4, 1);
3594 SI opval
= frvbf_read_mem_SI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))));
3595 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
3596 written
|= (1 << 6);
3597 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
3602 abuf
->written
= written
;
3607 /* ldd: ldd$pack @($GRi,$GRj),$GRdoublek */
3610 SEM_FN_NAME (frvbf
,ldd
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3612 #define FLD(f) abuf->fields.sfmt_smulcc.f
3613 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3614 int UNUSED written
= 0;
3615 IADDR UNUSED pc
= abuf
->addr
;
3616 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3620 if (NESI (FLD (f_GRk
), 0)) {
3622 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
3624 DI opval
= frvbf_read_mem_DI (current_cpu
, pc
, tmp_address
);
3625 sim_queue_fn_di_write (current_cpu
, frvbf_h_gr_double_set
, FLD (f_GRk
), opval
);
3626 written
|= (1 << 4);
3627 TRACE_RESULT (current_cpu
, abuf
, "gr_double", 'D', opval
);
3633 abuf
->written
= written
;
3638 /* lddf: lddf$pack @($GRi,$GRj),$FRdoublek */
3641 SEM_FN_NAME (frvbf
,lddf
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3643 #define FLD(f) abuf->fields.sfmt_clddfu.f
3644 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3645 int UNUSED written
= 0;
3646 IADDR UNUSED pc
= abuf
->addr
;
3647 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3652 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
3654 DF opval
= frvbf_read_mem_DF (current_cpu
, pc
, tmp_address
);
3655 sim_queue_fn_df_write (current_cpu
, frvbf_h_fr_double_set
, FLD (f_FRk
), opval
);
3656 TRACE_RESULT (current_cpu
, abuf
, "fr_double", 'f', opval
);
3665 /* lddc: lddc$pack @($GRi,$GRj),$CPRdoublek */
3668 SEM_FN_NAME (frvbf
,lddc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3670 #define FLD(f) abuf->fields.sfmt_lddcu.f
3671 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3672 int UNUSED written
= 0;
3673 IADDR UNUSED pc
= abuf
->addr
;
3674 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3679 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
3681 DI opval
= frvbf_read_mem_DI (current_cpu
, pc
, tmp_address
);
3682 sim_queue_fn_di_write (current_cpu
, frvbf_h_cpr_double_set
, FLD (f_CPRk
), opval
);
3683 TRACE_RESULT (current_cpu
, abuf
, "cpr_double", 'D', opval
);
3692 /* nldd: nldd$pack @($GRi,$GRj),$GRdoublek */
3695 SEM_FN_NAME (frvbf
,nldd
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3697 #define FLD(f) abuf->fields.sfmt_smulcc.f
3698 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3699 int UNUSED written
= 0;
3700 IADDR UNUSED pc
= abuf
->addr
;
3701 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3707 tmp_do_op
= frvbf_check_non_excepting_load (current_cpu
, FLD (f_GRi
), FLD (f_GRj
), FLD (f_GRk
), 0, 5, 0);
3709 if (NESI (FLD (f_GRk
), 0)) {
3711 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
3713 DI opval
= frvbf_read_mem_DI (current_cpu
, pc
, tmp_address
);
3714 sim_queue_fn_di_write (current_cpu
, frvbf_h_gr_double_set
, FLD (f_GRk
), opval
);
3715 written
|= (1 << 6);
3716 TRACE_RESULT (current_cpu
, abuf
, "gr_double", 'D', opval
);
3724 abuf
->written
= written
;
3729 /* nlddf: nlddf$pack @($GRi,$GRj),$FRdoublek */
3732 SEM_FN_NAME (frvbf
,nlddf
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3734 #define FLD(f) abuf->fields.sfmt_clddfu.f
3735 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3736 int UNUSED written
= 0;
3737 IADDR UNUSED pc
= abuf
->addr
;
3738 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3744 tmp_do_op
= frvbf_check_non_excepting_load (current_cpu
, FLD (f_GRi
), FLD (f_GRj
), FLD (f_FRk
), 0, 5, 1);
3747 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
3749 DF opval
= frvbf_read_mem_DF (current_cpu
, pc
, tmp_address
);
3750 sim_queue_fn_df_write (current_cpu
, frvbf_h_fr_double_set
, FLD (f_FRk
), opval
);
3751 written
|= (1 << 6);
3752 TRACE_RESULT (current_cpu
, abuf
, "fr_double", 'f', opval
);
3759 abuf
->written
= written
;
3764 /* ldq: ldq$pack @($GRi,$GRj),$GRk */
3767 SEM_FN_NAME (frvbf
,ldq
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3769 #define FLD(f) abuf->fields.sfmt_smulcc.f
3770 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3771 int UNUSED written
= 0;
3772 IADDR UNUSED pc
= abuf
->addr
;
3773 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3778 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
3779 frvbf_load_quad_GR (current_cpu
, pc
, tmp_address
, FLD (f_GRk
));
3787 /* ldqf: ldqf$pack @($GRi,$GRj),$FRintk */
3790 SEM_FN_NAME (frvbf
,ldqf
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3792 #define FLD(f) abuf->fields.sfmt_cstdfu.f
3793 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3794 int UNUSED written
= 0;
3795 IADDR UNUSED pc
= abuf
->addr
;
3796 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3801 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
3802 frvbf_load_quad_FRint (current_cpu
, pc
, tmp_address
, FLD (f_FRk
));
3810 /* ldqc: ldqc$pack @($GRi,$GRj),$CPRk */
3813 SEM_FN_NAME (frvbf
,ldqc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3815 #define FLD(f) abuf->fields.sfmt_stdcu.f
3816 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3817 int UNUSED written
= 0;
3818 IADDR UNUSED pc
= abuf
->addr
;
3819 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3824 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
3825 frvbf_load_quad_CPR (current_cpu
, pc
, tmp_address
, FLD (f_CPRk
));
3833 /* nldq: nldq$pack @($GRi,$GRj),$GRk */
3836 SEM_FN_NAME (frvbf
,nldq
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3838 #define FLD(f) abuf->fields.sfmt_smulcc.f
3839 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3840 int UNUSED written
= 0;
3841 IADDR UNUSED pc
= abuf
->addr
;
3842 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3848 tmp_do_op
= frvbf_check_non_excepting_load (current_cpu
, FLD (f_GRi
), FLD (f_GRj
), FLD (f_GRk
), 0, 6, 0);
3851 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
3852 frvbf_load_quad_GR (current_cpu
, pc
, tmp_address
, FLD (f_GRk
));
3862 /* nldqf: nldqf$pack @($GRi,$GRj),$FRintk */
3865 SEM_FN_NAME (frvbf
,nldqf
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3867 #define FLD(f) abuf->fields.sfmt_cstdfu.f
3868 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3869 int UNUSED written
= 0;
3870 IADDR UNUSED pc
= abuf
->addr
;
3871 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3877 tmp_do_op
= frvbf_check_non_excepting_load (current_cpu
, FLD (f_GRi
), FLD (f_GRj
), FLD (f_FRk
), 0, 6, 1);
3880 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
3881 frvbf_load_quad_FRint (current_cpu
, pc
, tmp_address
, FLD (f_FRk
));
3891 /* ldsbu: ldsbu$pack @($GRi,$GRj),$GRk */
3894 SEM_FN_NAME (frvbf
,ldsbu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3896 #define FLD(f) abuf->fields.sfmt_cldsbu.f
3897 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3898 int UNUSED written
= 0;
3899 IADDR UNUSED pc
= abuf
->addr
;
3900 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3904 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
3906 SI opval
= frvbf_read_mem_QI (current_cpu
, pc
, tmp_address
);
3907 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
3908 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
3910 if (NESI (FLD (f_GRi
), FLD (f_GRk
))) {
3913 SI opval
= tmp_address
;
3914 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
3915 written
|= (1 << 5);
3916 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
3918 frvbf_force_update (current_cpu
);
3923 abuf
->written
= written
;
3928 /* ldubu: ldubu$pack @($GRi,$GRj),$GRk */
3931 SEM_FN_NAME (frvbf
,ldubu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3933 #define FLD(f) abuf->fields.sfmt_cldsbu.f
3934 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3935 int UNUSED written
= 0;
3936 IADDR UNUSED pc
= abuf
->addr
;
3937 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3941 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
3943 SI opval
= frvbf_read_mem_UQI (current_cpu
, pc
, tmp_address
);
3944 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
3945 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
3947 if (NESI (FLD (f_GRi
), FLD (f_GRk
))) {
3950 SI opval
= tmp_address
;
3951 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
3952 written
|= (1 << 5);
3953 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
3955 frvbf_force_update (current_cpu
);
3960 abuf
->written
= written
;
3965 /* ldshu: ldshu$pack @($GRi,$GRj),$GRk */
3968 SEM_FN_NAME (frvbf
,ldshu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
3970 #define FLD(f) abuf->fields.sfmt_cldsbu.f
3971 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
3972 int UNUSED written
= 0;
3973 IADDR UNUSED pc
= abuf
->addr
;
3974 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
3978 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
3980 SI opval
= frvbf_read_mem_HI (current_cpu
, pc
, tmp_address
);
3981 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
3982 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
3984 if (NESI (FLD (f_GRi
), FLD (f_GRk
))) {
3987 SI opval
= tmp_address
;
3988 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
3989 written
|= (1 << 5);
3990 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
3992 frvbf_force_update (current_cpu
);
3997 abuf
->written
= written
;
4002 /* lduhu: lduhu$pack @($GRi,$GRj),$GRk */
4005 SEM_FN_NAME (frvbf
,lduhu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4007 #define FLD(f) abuf->fields.sfmt_cldsbu.f
4008 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
4009 int UNUSED written
= 0;
4010 IADDR UNUSED pc
= abuf
->addr
;
4011 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
4015 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
4017 SI opval
= frvbf_read_mem_UHI (current_cpu
, pc
, tmp_address
);
4018 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
4019 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
4021 if (NESI (FLD (f_GRi
), FLD (f_GRk
))) {
4024 SI opval
= tmp_address
;
4025 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
4026 written
|= (1 << 5);
4027 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
4029 frvbf_force_update (current_cpu
);
4034 abuf
->written
= written
;
4039 /* ldu: ldu$pack @($GRi,$GRj),$GRk */
4042 SEM_FN_NAME (frvbf
,ldu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4044 #define FLD(f) abuf->fields.sfmt_cldsbu.f
4045 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
4046 int UNUSED written
= 0;
4047 IADDR UNUSED pc
= abuf
->addr
;
4048 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
4052 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
4054 SI opval
= frvbf_read_mem_SI (current_cpu
, pc
, tmp_address
);
4055 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
4056 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
4058 if (NESI (FLD (f_GRi
), FLD (f_GRk
))) {
4061 SI opval
= tmp_address
;
4062 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
4063 written
|= (1 << 5);
4064 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
4066 frvbf_force_update (current_cpu
);
4071 abuf
->written
= written
;
4076 /* nldsbu: nldsbu$pack @($GRi,$GRj),$GRk */
4079 SEM_FN_NAME (frvbf
,nldsbu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4081 #define FLD(f) abuf->fields.sfmt_cldsbu.f
4082 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
4083 int UNUSED written
= 0;
4084 IADDR UNUSED pc
= abuf
->addr
;
4085 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
4089 tmp_do_op
= frvbf_check_non_excepting_load (current_cpu
, FLD (f_GRi
), FLD (f_GRj
), FLD (f_GRk
), 0, 1, 0);
4093 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
4095 SI opval
= frvbf_read_mem_QI (current_cpu
, pc
, tmp_address
);
4096 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
4097 written
|= (1 << 7);
4098 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
4100 if (NESI (FLD (f_GRi
), FLD (f_GRk
))) {
4103 SI opval
= tmp_address
;
4104 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
4105 written
|= (1 << 6);
4106 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
4108 frvbf_force_update (current_cpu
);
4115 abuf
->written
= written
;
4120 /* nldubu: nldubu$pack @($GRi,$GRj),$GRk */
4123 SEM_FN_NAME (frvbf
,nldubu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4125 #define FLD(f) abuf->fields.sfmt_cldsbu.f
4126 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
4127 int UNUSED written
= 0;
4128 IADDR UNUSED pc
= abuf
->addr
;
4129 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
4133 tmp_do_op
= frvbf_check_non_excepting_load (current_cpu
, FLD (f_GRi
), FLD (f_GRj
), FLD (f_GRk
), 0, 0, 0);
4137 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
4139 SI opval
= frvbf_read_mem_UQI (current_cpu
, pc
, tmp_address
);
4140 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
4141 written
|= (1 << 7);
4142 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
4144 if (NESI (FLD (f_GRi
), FLD (f_GRk
))) {
4147 SI opval
= tmp_address
;
4148 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
4149 written
|= (1 << 6);
4150 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
4152 frvbf_force_update (current_cpu
);
4159 abuf
->written
= written
;
4164 /* nldshu: nldshu$pack @($GRi,$GRj),$GRk */
4167 SEM_FN_NAME (frvbf
,nldshu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4169 #define FLD(f) abuf->fields.sfmt_cldsbu.f
4170 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
4171 int UNUSED written
= 0;
4172 IADDR UNUSED pc
= abuf
->addr
;
4173 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
4177 tmp_do_op
= frvbf_check_non_excepting_load (current_cpu
, FLD (f_GRi
), FLD (f_GRj
), FLD (f_GRk
), 0, 3, 0);
4181 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
4183 SI opval
= frvbf_read_mem_HI (current_cpu
, pc
, tmp_address
);
4184 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
4185 written
|= (1 << 7);
4186 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
4188 if (NESI (FLD (f_GRi
), FLD (f_GRk
))) {
4191 SI opval
= tmp_address
;
4192 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
4193 written
|= (1 << 6);
4194 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
4196 frvbf_force_update (current_cpu
);
4203 abuf
->written
= written
;
4208 /* nlduhu: nlduhu$pack @($GRi,$GRj),$GRk */
4211 SEM_FN_NAME (frvbf
,nlduhu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4213 #define FLD(f) abuf->fields.sfmt_cldsbu.f
4214 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
4215 int UNUSED written
= 0;
4216 IADDR UNUSED pc
= abuf
->addr
;
4217 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
4221 tmp_do_op
= frvbf_check_non_excepting_load (current_cpu
, FLD (f_GRi
), FLD (f_GRj
), FLD (f_GRk
), 0, 2, 0);
4225 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
4227 SI opval
= frvbf_read_mem_UHI (current_cpu
, pc
, tmp_address
);
4228 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
4229 written
|= (1 << 7);
4230 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
4232 if (NESI (FLD (f_GRi
), FLD (f_GRk
))) {
4235 SI opval
= tmp_address
;
4236 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
4237 written
|= (1 << 6);
4238 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
4240 frvbf_force_update (current_cpu
);
4247 abuf
->written
= written
;
4252 /* nldu: nldu$pack @($GRi,$GRj),$GRk */
4255 SEM_FN_NAME (frvbf
,nldu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4257 #define FLD(f) abuf->fields.sfmt_cldsbu.f
4258 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
4259 int UNUSED written
= 0;
4260 IADDR UNUSED pc
= abuf
->addr
;
4261 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
4265 tmp_do_op
= frvbf_check_non_excepting_load (current_cpu
, FLD (f_GRi
), FLD (f_GRj
), FLD (f_GRk
), 0, 4, 0);
4269 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
4271 SI opval
= frvbf_read_mem_SI (current_cpu
, pc
, tmp_address
);
4272 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
4273 written
|= (1 << 7);
4274 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
4276 if (NESI (FLD (f_GRi
), FLD (f_GRk
))) {
4279 SI opval
= tmp_address
;
4280 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
4281 written
|= (1 << 6);
4282 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
4284 frvbf_force_update (current_cpu
);
4291 abuf
->written
= written
;
4296 /* ldbfu: ldbfu$pack @($GRi,$GRj),$FRintk */
4299 SEM_FN_NAME (frvbf
,ldbfu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4301 #define FLD(f) abuf->fields.sfmt_cldbfu.f
4302 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
4303 int UNUSED written
= 0;
4304 IADDR UNUSED pc
= abuf
->addr
;
4305 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
4309 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
4311 SI opval
= frvbf_read_mem_UQI (current_cpu
, pc
, tmp_address
);
4312 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
4313 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
4316 SI opval
= tmp_address
;
4317 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
4318 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
4320 frvbf_force_update (current_cpu
);
4327 /* ldhfu: ldhfu$pack @($GRi,$GRj),$FRintk */
4330 SEM_FN_NAME (frvbf
,ldhfu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4332 #define FLD(f) abuf->fields.sfmt_cldbfu.f
4333 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
4334 int UNUSED written
= 0;
4335 IADDR UNUSED pc
= abuf
->addr
;
4336 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
4340 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
4342 SI opval
= frvbf_read_mem_UHI (current_cpu
, pc
, tmp_address
);
4343 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
4344 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
4347 SI opval
= tmp_address
;
4348 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
4349 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
4351 frvbf_force_update (current_cpu
);
4358 /* ldfu: ldfu$pack @($GRi,$GRj),$FRintk */
4361 SEM_FN_NAME (frvbf
,ldfu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4363 #define FLD(f) abuf->fields.sfmt_cldbfu.f
4364 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
4365 int UNUSED written
= 0;
4366 IADDR UNUSED pc
= abuf
->addr
;
4367 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
4371 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
4373 SI opval
= frvbf_read_mem_SI (current_cpu
, pc
, tmp_address
);
4374 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
4375 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
4378 SI opval
= tmp_address
;
4379 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
4380 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
4382 frvbf_force_update (current_cpu
);
4389 /* ldcu: ldcu$pack @($GRi,$GRj),$CPRk */
4392 SEM_FN_NAME (frvbf
,ldcu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4394 #define FLD(f) abuf->fields.sfmt_ldcu.f
4395 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
4396 int UNUSED written
= 0;
4397 IADDR UNUSED pc
= abuf
->addr
;
4398 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
4402 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
4404 SI opval
= frvbf_read_mem_SI (current_cpu
, pc
, tmp_address
);
4405 sim_queue_si_write (current_cpu
, & CPU (h_cpr
[FLD (f_CPRk
)]), opval
);
4406 TRACE_RESULT (current_cpu
, abuf
, "cpr", 'x', opval
);
4409 SI opval
= tmp_address
;
4410 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
4411 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
4413 frvbf_force_update (current_cpu
);
4420 /* nldbfu: nldbfu$pack @($GRi,$GRj),$FRintk */
4423 SEM_FN_NAME (frvbf
,nldbfu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4425 #define FLD(f) abuf->fields.sfmt_cldbfu.f
4426 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
4427 int UNUSED written
= 0;
4428 IADDR UNUSED pc
= abuf
->addr
;
4429 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
4433 tmp_do_op
= frvbf_check_non_excepting_load (current_cpu
, FLD (f_GRi
), FLD (f_GRj
), FLD (f_FRk
), 0, 0, 1);
4437 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
4439 SI opval
= frvbf_read_mem_UQI (current_cpu
, pc
, tmp_address
);
4440 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
4441 written
|= (1 << 6);
4442 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
4445 SI opval
= tmp_address
;
4446 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
4447 written
|= (1 << 7);
4448 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
4450 frvbf_force_update (current_cpu
);
4455 abuf
->written
= written
;
4460 /* nldhfu: nldhfu$pack @($GRi,$GRj),$FRintk */
4463 SEM_FN_NAME (frvbf
,nldhfu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4465 #define FLD(f) abuf->fields.sfmt_cldbfu.f
4466 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
4467 int UNUSED written
= 0;
4468 IADDR UNUSED pc
= abuf
->addr
;
4469 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
4473 tmp_do_op
= frvbf_check_non_excepting_load (current_cpu
, FLD (f_GRi
), FLD (f_GRj
), FLD (f_FRk
), 0, 2, 1);
4477 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
4479 SI opval
= frvbf_read_mem_UHI (current_cpu
, pc
, tmp_address
);
4480 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
4481 written
|= (1 << 6);
4482 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
4485 SI opval
= tmp_address
;
4486 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
4487 written
|= (1 << 7);
4488 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
4490 frvbf_force_update (current_cpu
);
4495 abuf
->written
= written
;
4500 /* nldfu: nldfu$pack @($GRi,$GRj),$FRintk */
4503 SEM_FN_NAME (frvbf
,nldfu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4505 #define FLD(f) abuf->fields.sfmt_cldbfu.f
4506 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
4507 int UNUSED written
= 0;
4508 IADDR UNUSED pc
= abuf
->addr
;
4509 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
4513 tmp_do_op
= frvbf_check_non_excepting_load (current_cpu
, FLD (f_GRi
), FLD (f_GRj
), FLD (f_FRk
), 0, 4, 1);
4517 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
4519 SI opval
= frvbf_read_mem_SI (current_cpu
, pc
, tmp_address
);
4520 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
4521 written
|= (1 << 6);
4522 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
4525 SI opval
= tmp_address
;
4526 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
4527 written
|= (1 << 7);
4528 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
4530 frvbf_force_update (current_cpu
);
4535 abuf
->written
= written
;
4540 /* lddu: lddu$pack @($GRi,$GRj),$GRdoublek */
4543 SEM_FN_NAME (frvbf
,lddu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4545 #define FLD(f) abuf->fields.sfmt_clddu.f
4546 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
4547 int UNUSED written
= 0;
4548 IADDR UNUSED pc
= abuf
->addr
;
4549 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
4553 if (NESI (FLD (f_GRk
), 0)) {
4555 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
4557 DI opval
= frvbf_read_mem_DI (current_cpu
, pc
, tmp_address
);
4558 sim_queue_fn_di_write (current_cpu
, frvbf_h_gr_double_set
, FLD (f_GRk
), opval
);
4559 written
|= (1 << 5);
4560 TRACE_RESULT (current_cpu
, abuf
, "gr_double", 'D', opval
);
4564 if (NESI (FLD (f_GRi
), FLD (f_GRk
))) {
4567 SI opval
= tmp_address
;
4568 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
4569 written
|= (1 << 6);
4570 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
4572 frvbf_force_update (current_cpu
);
4577 abuf
->written
= written
;
4582 /* nlddu: nlddu$pack @($GRi,$GRj),$GRdoublek */
4585 SEM_FN_NAME (frvbf
,nlddu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4587 #define FLD(f) abuf->fields.sfmt_clddu.f
4588 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
4589 int UNUSED written
= 0;
4590 IADDR UNUSED pc
= abuf
->addr
;
4591 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
4595 tmp_do_op
= frvbf_check_non_excepting_load (current_cpu
, FLD (f_GRi
), FLD (f_GRj
), FLD (f_GRk
), 0, 5, 0);
4599 if (NESI (FLD (f_GRk
), 0)) {
4601 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
4603 DI opval
= frvbf_read_mem_DI (current_cpu
, pc
, tmp_address
);
4604 sim_queue_fn_di_write (current_cpu
, frvbf_h_gr_double_set
, FLD (f_GRk
), opval
);
4605 written
|= (1 << 6);
4606 TRACE_RESULT (current_cpu
, abuf
, "gr_double", 'D', opval
);
4610 if (NESI (FLD (f_GRi
), FLD (f_GRk
))) {
4613 SI opval
= tmp_address
;
4614 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
4615 written
|= (1 << 7);
4616 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
4618 frvbf_force_update (current_cpu
);
4625 abuf
->written
= written
;
4630 /* lddfu: lddfu$pack @($GRi,$GRj),$FRdoublek */
4633 SEM_FN_NAME (frvbf
,lddfu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4635 #define FLD(f) abuf->fields.sfmt_clddfu.f
4636 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
4637 int UNUSED written
= 0;
4638 IADDR UNUSED pc
= abuf
->addr
;
4639 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
4644 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
4646 DF opval
= frvbf_read_mem_DF (current_cpu
, pc
, tmp_address
);
4647 sim_queue_fn_df_write (current_cpu
, frvbf_h_fr_double_set
, FLD (f_FRk
), opval
);
4648 TRACE_RESULT (current_cpu
, abuf
, "fr_double", 'f', opval
);
4652 SI opval
= tmp_address
;
4653 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
4654 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
4656 frvbf_force_update (current_cpu
);
4663 /* lddcu: lddcu$pack @($GRi,$GRj),$CPRdoublek */
4666 SEM_FN_NAME (frvbf
,lddcu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4668 #define FLD(f) abuf->fields.sfmt_lddcu.f
4669 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
4670 int UNUSED written
= 0;
4671 IADDR UNUSED pc
= abuf
->addr
;
4672 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
4677 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
4679 DI opval
= frvbf_read_mem_DI (current_cpu
, pc
, tmp_address
);
4680 sim_queue_fn_di_write (current_cpu
, frvbf_h_cpr_double_set
, FLD (f_CPRk
), opval
);
4681 TRACE_RESULT (current_cpu
, abuf
, "cpr_double", 'D', opval
);
4685 SI opval
= tmp_address
;
4686 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
4687 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
4689 frvbf_force_update (current_cpu
);
4696 /* nlddfu: nlddfu$pack @($GRi,$GRj),$FRdoublek */
4699 SEM_FN_NAME (frvbf
,nlddfu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4701 #define FLD(f) abuf->fields.sfmt_clddfu.f
4702 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
4703 int UNUSED written
= 0;
4704 IADDR UNUSED pc
= abuf
->addr
;
4705 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
4709 tmp_do_op
= frvbf_check_non_excepting_load (current_cpu
, FLD (f_GRi
), FLD (f_GRj
), FLD (f_FRk
), 0, 5, 1);
4714 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
4716 DF opval
= frvbf_read_mem_DF (current_cpu
, pc
, tmp_address
);
4717 sim_queue_fn_df_write (current_cpu
, frvbf_h_fr_double_set
, FLD (f_FRk
), opval
);
4718 written
|= (1 << 6);
4719 TRACE_RESULT (current_cpu
, abuf
, "fr_double", 'f', opval
);
4723 SI opval
= tmp_address
;
4724 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
4725 written
|= (1 << 7);
4726 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
4728 frvbf_force_update (current_cpu
);
4733 abuf
->written
= written
;
4738 /* ldqu: ldqu$pack @($GRi,$GRj),$GRk */
4741 SEM_FN_NAME (frvbf
,ldqu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4743 #define FLD(f) abuf->fields.sfmt_cstdu.f
4744 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
4745 int UNUSED written
= 0;
4746 IADDR UNUSED pc
= abuf
->addr
;
4747 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
4752 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
4753 frvbf_load_quad_GR (current_cpu
, pc
, tmp_address
, FLD (f_GRk
));
4755 if (NESI (FLD (f_GRi
), FLD (f_GRk
))) {
4758 SI opval
= tmp_address
;
4759 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
4760 written
|= (1 << 5);
4761 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
4763 frvbf_force_update (current_cpu
);
4768 abuf
->written
= written
;
4773 /* nldqu: nldqu$pack @($GRi,$GRj),$GRk */
4776 SEM_FN_NAME (frvbf
,nldqu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4778 #define FLD(f) abuf->fields.sfmt_cstdu.f
4779 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
4780 int UNUSED written
= 0;
4781 IADDR UNUSED pc
= abuf
->addr
;
4782 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
4786 tmp_do_op
= frvbf_check_non_excepting_load (current_cpu
, FLD (f_GRi
), FLD (f_GRj
), FLD (f_GRk
), 0, 6, 0);
4791 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
4792 frvbf_load_quad_GR (current_cpu
, pc
, tmp_address
, FLD (f_GRk
));
4794 if (NESI (FLD (f_GRi
), FLD (f_GRk
))) {
4797 SI opval
= tmp_address
;
4798 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
4799 written
|= (1 << 6);
4800 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
4802 frvbf_force_update (current_cpu
);
4809 abuf
->written
= written
;
4814 /* ldqfu: ldqfu$pack @($GRi,$GRj),$FRintk */
4817 SEM_FN_NAME (frvbf
,ldqfu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4819 #define FLD(f) abuf->fields.sfmt_cstdfu.f
4820 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
4821 int UNUSED written
= 0;
4822 IADDR UNUSED pc
= abuf
->addr
;
4823 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
4828 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
4829 frvbf_load_quad_FRint (current_cpu
, pc
, tmp_address
, FLD (f_FRk
));
4832 SI opval
= tmp_address
;
4833 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
4834 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
4836 frvbf_force_update (current_cpu
);
4843 /* ldqcu: ldqcu$pack @($GRi,$GRj),$CPRk */
4846 SEM_FN_NAME (frvbf
,ldqcu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4848 #define FLD(f) abuf->fields.sfmt_stdcu.f
4849 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
4850 int UNUSED written
= 0;
4851 IADDR UNUSED pc
= abuf
->addr
;
4852 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
4857 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
4858 frvbf_load_quad_CPR (current_cpu
, pc
, tmp_address
, FLD (f_CPRk
));
4861 SI opval
= tmp_address
;
4862 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
4863 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
4865 frvbf_force_update (current_cpu
);
4872 /* nldqfu: nldqfu$pack @($GRi,$GRj),$FRintk */
4875 SEM_FN_NAME (frvbf
,nldqfu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4877 #define FLD(f) abuf->fields.sfmt_cstdfu.f
4878 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
4879 int UNUSED written
= 0;
4880 IADDR UNUSED pc
= abuf
->addr
;
4881 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
4885 tmp_do_op
= frvbf_check_non_excepting_load (current_cpu
, FLD (f_GRi
), FLD (f_GRj
), FLD (f_FRk
), 0, 6, 1);
4890 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
4891 frvbf_load_quad_FRint (current_cpu
, pc
, tmp_address
, FLD (f_FRk
));
4894 SI opval
= tmp_address
;
4895 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
4896 written
|= (1 << 6);
4897 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
4899 frvbf_force_update (current_cpu
);
4904 abuf
->written
= written
;
4909 /* ldsbi: ldsbi$pack @($GRi,$d12),$GRk */
4912 SEM_FN_NAME (frvbf
,ldsbi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4914 #define FLD(f) abuf->fields.sfmt_swapi.f
4915 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
4916 int UNUSED written
= 0;
4917 IADDR UNUSED pc
= abuf
->addr
;
4918 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
4921 SI opval
= frvbf_read_mem_QI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), FLD (f_d12
)));
4922 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
4923 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
4930 /* ldshi: ldshi$pack @($GRi,$d12),$GRk */
4933 SEM_FN_NAME (frvbf
,ldshi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4935 #define FLD(f) abuf->fields.sfmt_swapi.f
4936 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
4937 int UNUSED written
= 0;
4938 IADDR UNUSED pc
= abuf
->addr
;
4939 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
4942 SI opval
= frvbf_read_mem_HI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), FLD (f_d12
)));
4943 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
4944 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
4951 /* ldi: ldi$pack @($GRi,$d12),$GRk */
4954 SEM_FN_NAME (frvbf
,ldi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4956 #define FLD(f) abuf->fields.sfmt_swapi.f
4957 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
4958 int UNUSED written
= 0;
4959 IADDR UNUSED pc
= abuf
->addr
;
4960 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
4963 SI opval
= frvbf_read_mem_SI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), FLD (f_d12
)));
4964 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
4965 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
4972 /* ldubi: ldubi$pack @($GRi,$d12),$GRk */
4975 SEM_FN_NAME (frvbf
,ldubi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4977 #define FLD(f) abuf->fields.sfmt_swapi.f
4978 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
4979 int UNUSED written
= 0;
4980 IADDR UNUSED pc
= abuf
->addr
;
4981 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
4984 SI opval
= frvbf_read_mem_UQI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), FLD (f_d12
)));
4985 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
4986 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
4993 /* lduhi: lduhi$pack @($GRi,$d12),$GRk */
4996 SEM_FN_NAME (frvbf
,lduhi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
4998 #define FLD(f) abuf->fields.sfmt_swapi.f
4999 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5000 int UNUSED written
= 0;
5001 IADDR UNUSED pc
= abuf
->addr
;
5002 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5005 SI opval
= frvbf_read_mem_UHI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), FLD (f_d12
)));
5006 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
5007 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
5014 /* ldbfi: ldbfi$pack @($GRi,$d12),$FRintk */
5017 SEM_FN_NAME (frvbf
,ldbfi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5019 #define FLD(f) abuf->fields.sfmt_ldbfi.f
5020 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5021 int UNUSED written
= 0;
5022 IADDR UNUSED pc
= abuf
->addr
;
5023 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5026 SI opval
= frvbf_read_mem_UQI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), FLD (f_d12
)));
5027 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
5028 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
5035 /* ldhfi: ldhfi$pack @($GRi,$d12),$FRintk */
5038 SEM_FN_NAME (frvbf
,ldhfi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5040 #define FLD(f) abuf->fields.sfmt_ldbfi.f
5041 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5042 int UNUSED written
= 0;
5043 IADDR UNUSED pc
= abuf
->addr
;
5044 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5047 SI opval
= frvbf_read_mem_UHI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), FLD (f_d12
)));
5048 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
5049 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
5056 /* ldfi: ldfi$pack @($GRi,$d12),$FRintk */
5059 SEM_FN_NAME (frvbf
,ldfi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5061 #define FLD(f) abuf->fields.sfmt_ldbfi.f
5062 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5063 int UNUSED written
= 0;
5064 IADDR UNUSED pc
= abuf
->addr
;
5065 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5068 SI opval
= frvbf_read_mem_SI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), FLD (f_d12
)));
5069 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
5070 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
5077 /* nldsbi: nldsbi$pack @($GRi,$d12),$GRk */
5080 SEM_FN_NAME (frvbf
,nldsbi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5082 #define FLD(f) abuf->fields.sfmt_swapi.f
5083 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5084 int UNUSED written
= 0;
5085 IADDR UNUSED pc
= abuf
->addr
;
5086 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5090 tmp_do_op
= frvbf_check_non_excepting_load (current_cpu
, FLD (f_GRi
), -1, FLD (f_GRk
), FLD (f_d12
), 1, 0);
5093 SI opval
= frvbf_read_mem_QI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), FLD (f_d12
)));
5094 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
5095 written
|= (1 << 5);
5096 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
5101 abuf
->written
= written
;
5106 /* nldubi: nldubi$pack @($GRi,$d12),$GRk */
5109 SEM_FN_NAME (frvbf
,nldubi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5111 #define FLD(f) abuf->fields.sfmt_swapi.f
5112 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5113 int UNUSED written
= 0;
5114 IADDR UNUSED pc
= abuf
->addr
;
5115 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5119 tmp_do_op
= frvbf_check_non_excepting_load (current_cpu
, FLD (f_GRi
), -1, FLD (f_GRk
), FLD (f_d12
), 0, 0);
5122 SI opval
= frvbf_read_mem_UQI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), FLD (f_d12
)));
5123 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
5124 written
|= (1 << 5);
5125 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
5130 abuf
->written
= written
;
5135 /* nldshi: nldshi$pack @($GRi,$d12),$GRk */
5138 SEM_FN_NAME (frvbf
,nldshi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5140 #define FLD(f) abuf->fields.sfmt_swapi.f
5141 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5142 int UNUSED written
= 0;
5143 IADDR UNUSED pc
= abuf
->addr
;
5144 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5148 tmp_do_op
= frvbf_check_non_excepting_load (current_cpu
, FLD (f_GRi
), -1, FLD (f_GRk
), FLD (f_d12
), 3, 0);
5151 SI opval
= frvbf_read_mem_HI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), FLD (f_d12
)));
5152 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
5153 written
|= (1 << 5);
5154 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
5159 abuf
->written
= written
;
5164 /* nlduhi: nlduhi$pack @($GRi,$d12),$GRk */
5167 SEM_FN_NAME (frvbf
,nlduhi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5169 #define FLD(f) abuf->fields.sfmt_swapi.f
5170 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5171 int UNUSED written
= 0;
5172 IADDR UNUSED pc
= abuf
->addr
;
5173 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5177 tmp_do_op
= frvbf_check_non_excepting_load (current_cpu
, FLD (f_GRi
), -1, FLD (f_GRk
), FLD (f_d12
), 2, 0);
5180 SI opval
= frvbf_read_mem_UHI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), FLD (f_d12
)));
5181 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
5182 written
|= (1 << 5);
5183 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
5188 abuf
->written
= written
;
5193 /* nldi: nldi$pack @($GRi,$d12),$GRk */
5196 SEM_FN_NAME (frvbf
,nldi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5198 #define FLD(f) abuf->fields.sfmt_swapi.f
5199 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5200 int UNUSED written
= 0;
5201 IADDR UNUSED pc
= abuf
->addr
;
5202 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5206 tmp_do_op
= frvbf_check_non_excepting_load (current_cpu
, FLD (f_GRi
), -1, FLD (f_GRk
), FLD (f_d12
), 4, 0);
5209 SI opval
= frvbf_read_mem_SI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), FLD (f_d12
)));
5210 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
5211 written
|= (1 << 5);
5212 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
5217 abuf
->written
= written
;
5222 /* nldbfi: nldbfi$pack @($GRi,$d12),$FRintk */
5225 SEM_FN_NAME (frvbf
,nldbfi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5227 #define FLD(f) abuf->fields.sfmt_ldbfi.f
5228 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5229 int UNUSED written
= 0;
5230 IADDR UNUSED pc
= abuf
->addr
;
5231 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5235 tmp_do_op
= frvbf_check_non_excepting_load (current_cpu
, FLD (f_GRi
), -1, FLD (f_FRk
), FLD (f_d12
), 0, 1);
5238 SI opval
= frvbf_read_mem_UQI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), FLD (f_d12
)));
5239 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
5240 written
|= (1 << 5);
5241 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
5246 abuf
->written
= written
;
5251 /* nldhfi: nldhfi$pack @($GRi,$d12),$FRintk */
5254 SEM_FN_NAME (frvbf
,nldhfi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5256 #define FLD(f) abuf->fields.sfmt_ldbfi.f
5257 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5258 int UNUSED written
= 0;
5259 IADDR UNUSED pc
= abuf
->addr
;
5260 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5264 tmp_do_op
= frvbf_check_non_excepting_load (current_cpu
, FLD (f_GRi
), -1, FLD (f_FRk
), FLD (f_d12
), 2, 1);
5267 SI opval
= frvbf_read_mem_UHI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), FLD (f_d12
)));
5268 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
5269 written
|= (1 << 5);
5270 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
5275 abuf
->written
= written
;
5280 /* nldfi: nldfi$pack @($GRi,$d12),$FRintk */
5283 SEM_FN_NAME (frvbf
,nldfi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5285 #define FLD(f) abuf->fields.sfmt_ldbfi.f
5286 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5287 int UNUSED written
= 0;
5288 IADDR UNUSED pc
= abuf
->addr
;
5289 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5293 tmp_do_op
= frvbf_check_non_excepting_load (current_cpu
, FLD (f_GRi
), -1, FLD (f_FRk
), FLD (f_d12
), 4, 1);
5296 SI opval
= frvbf_read_mem_SI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), FLD (f_d12
)));
5297 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
5298 written
|= (1 << 5);
5299 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
5304 abuf
->written
= written
;
5309 /* lddi: lddi$pack @($GRi,$d12),$GRdoublek */
5312 SEM_FN_NAME (frvbf
,lddi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5314 #define FLD(f) abuf->fields.sfmt_smuli.f
5315 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5316 int UNUSED written
= 0;
5317 IADDR UNUSED pc
= abuf
->addr
;
5318 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5322 if (NESI (FLD (f_GRk
), 0)) {
5324 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
5326 DI opval
= frvbf_read_mem_DI (current_cpu
, pc
, tmp_address
);
5327 sim_queue_fn_di_write (current_cpu
, frvbf_h_gr_double_set
, FLD (f_GRk
), opval
);
5328 written
|= (1 << 4);
5329 TRACE_RESULT (current_cpu
, abuf
, "gr_double", 'D', opval
);
5335 abuf
->written
= written
;
5340 /* lddfi: lddfi$pack @($GRi,$d12),$FRdoublek */
5343 SEM_FN_NAME (frvbf
,lddfi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5345 #define FLD(f) abuf->fields.sfmt_lddfi.f
5346 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5347 int UNUSED written
= 0;
5348 IADDR UNUSED pc
= abuf
->addr
;
5349 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5354 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
5356 DF opval
= frvbf_read_mem_DF (current_cpu
, pc
, tmp_address
);
5357 sim_queue_fn_df_write (current_cpu
, frvbf_h_fr_double_set
, FLD (f_FRk
), opval
);
5358 TRACE_RESULT (current_cpu
, abuf
, "fr_double", 'f', opval
);
5367 /* nlddi: nlddi$pack @($GRi,$d12),$GRdoublek */
5370 SEM_FN_NAME (frvbf
,nlddi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5372 #define FLD(f) abuf->fields.sfmt_smuli.f
5373 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5374 int UNUSED written
= 0;
5375 IADDR UNUSED pc
= abuf
->addr
;
5376 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5382 tmp_do_op
= frvbf_check_non_excepting_load (current_cpu
, FLD (f_GRi
), -1, FLD (f_GRk
), FLD (f_d12
), 5, 0);
5384 if (NESI (FLD (f_GRk
), 0)) {
5386 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
5388 DI opval
= frvbf_read_mem_DI (current_cpu
, pc
, tmp_address
);
5389 sim_queue_fn_di_write (current_cpu
, frvbf_h_gr_double_set
, FLD (f_GRk
), opval
);
5390 written
|= (1 << 5);
5391 TRACE_RESULT (current_cpu
, abuf
, "gr_double", 'D', opval
);
5399 abuf
->written
= written
;
5404 /* nlddfi: nlddfi$pack @($GRi,$d12),$FRdoublek */
5407 SEM_FN_NAME (frvbf
,nlddfi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5409 #define FLD(f) abuf->fields.sfmt_lddfi.f
5410 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5411 int UNUSED written
= 0;
5412 IADDR UNUSED pc
= abuf
->addr
;
5413 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5419 tmp_do_op
= frvbf_check_non_excepting_load (current_cpu
, FLD (f_GRi
), -1, FLD (f_FRk
), FLD (f_d12
), 5, 1);
5422 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
5424 DF opval
= frvbf_read_mem_DF (current_cpu
, pc
, tmp_address
);
5425 sim_queue_fn_df_write (current_cpu
, frvbf_h_fr_double_set
, FLD (f_FRk
), opval
);
5426 written
|= (1 << 5);
5427 TRACE_RESULT (current_cpu
, abuf
, "fr_double", 'f', opval
);
5434 abuf
->written
= written
;
5439 /* ldqi: ldqi$pack @($GRi,$d12),$GRk */
5442 SEM_FN_NAME (frvbf
,ldqi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5444 #define FLD(f) abuf->fields.sfmt_stdi.f
5445 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5446 int UNUSED written
= 0;
5447 IADDR UNUSED pc
= abuf
->addr
;
5448 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5453 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
5454 frvbf_load_quad_GR (current_cpu
, pc
, tmp_address
, FLD (f_GRk
));
5462 /* ldqfi: ldqfi$pack @($GRi,$d12),$FRintk */
5465 SEM_FN_NAME (frvbf
,ldqfi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5467 #define FLD(f) abuf->fields.sfmt_stdfi.f
5468 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5469 int UNUSED written
= 0;
5470 IADDR UNUSED pc
= abuf
->addr
;
5471 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5476 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
5477 frvbf_load_quad_FRint (current_cpu
, pc
, tmp_address
, FLD (f_FRk
));
5485 /* nldqfi: nldqfi$pack @($GRi,$d12),$FRintk */
5488 SEM_FN_NAME (frvbf
,nldqfi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5490 #define FLD(f) abuf->fields.sfmt_stdfi.f
5491 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5492 int UNUSED written
= 0;
5493 IADDR UNUSED pc
= abuf
->addr
;
5494 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5500 tmp_do_op
= frvbf_check_non_excepting_load (current_cpu
, FLD (f_GRi
), -1, FLD (f_FRk
), FLD (f_d12
), 6, 1);
5503 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
5504 frvbf_load_quad_FRint (current_cpu
, pc
, tmp_address
, FLD (f_FRk
));
5514 /* stb: stb$pack $GRk,@($GRi,$GRj) */
5517 SEM_FN_NAME (frvbf
,stb
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5519 #define FLD(f) abuf->fields.sfmt_cswap.f
5520 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5521 int UNUSED written
= 0;
5522 IADDR UNUSED pc
= abuf
->addr
;
5523 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5525 frvbf_write_mem_QI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))), GET_H_GR (FLD (f_GRk
)));
5531 /* sth: sth$pack $GRk,@($GRi,$GRj) */
5534 SEM_FN_NAME (frvbf
,sth
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5536 #define FLD(f) abuf->fields.sfmt_cswap.f
5537 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5538 int UNUSED written
= 0;
5539 IADDR UNUSED pc
= abuf
->addr
;
5540 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5542 frvbf_write_mem_HI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))), GET_H_GR (FLD (f_GRk
)));
5548 /* st: st$pack $GRk,@($GRi,$GRj) */
5551 SEM_FN_NAME (frvbf
,st
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5553 #define FLD(f) abuf->fields.sfmt_cswap.f
5554 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5555 int UNUSED written
= 0;
5556 IADDR UNUSED pc
= abuf
->addr
;
5557 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5559 frvbf_write_mem_SI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))), GET_H_GR (FLD (f_GRk
)));
5565 /* stbf: stbf$pack $FRintk,@($GRi,$GRj) */
5568 SEM_FN_NAME (frvbf
,stbf
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5570 #define FLD(f) abuf->fields.sfmt_cstbfu.f
5571 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5572 int UNUSED written
= 0;
5573 IADDR UNUSED pc
= abuf
->addr
;
5574 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5576 frvbf_write_mem_QI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))), GET_H_FR_INT (FLD (f_FRk
)));
5582 /* sthf: sthf$pack $FRintk,@($GRi,$GRj) */
5585 SEM_FN_NAME (frvbf
,sthf
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5587 #define FLD(f) abuf->fields.sfmt_cstbfu.f
5588 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5589 int UNUSED written
= 0;
5590 IADDR UNUSED pc
= abuf
->addr
;
5591 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5593 frvbf_write_mem_HI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))), GET_H_FR_INT (FLD (f_FRk
)));
5599 /* stf: stf$pack $FRintk,@($GRi,$GRj) */
5602 SEM_FN_NAME (frvbf
,stf
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5604 #define FLD(f) abuf->fields.sfmt_cstbfu.f
5605 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5606 int UNUSED written
= 0;
5607 IADDR UNUSED pc
= abuf
->addr
;
5608 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5610 frvbf_write_mem_SI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))), GET_H_FR_INT (FLD (f_FRk
)));
5616 /* stc: stc$pack $CPRk,@($GRi,$GRj) */
5619 SEM_FN_NAME (frvbf
,stc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5621 #define FLD(f) abuf->fields.sfmt_stcu.f
5622 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5623 int UNUSED written
= 0;
5624 IADDR UNUSED pc
= abuf
->addr
;
5625 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5627 frvbf_write_mem_SI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))), CPU (h_cpr
[FLD (f_CPRk
)]));
5633 /* rstb: rstb$pack $GRk,@($GRi,$GRj) */
5636 SEM_FN_NAME (frvbf
,rstb
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5638 #define FLD(f) abuf->fields.sfmt_cswap.f
5639 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5640 int UNUSED written
= 0;
5641 IADDR UNUSED pc
= abuf
->addr
;
5642 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5646 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
5647 frvbf_write_mem_QI (current_cpu
, pc
, tmp_address
, GET_H_GR (FLD (f_GRk
)));
5648 frvbf_check_recovering_store (current_cpu
, tmp_address
, FLD (f_GRk
), 1, 0);
5655 /* rsth: rsth$pack $GRk,@($GRi,$GRj) */
5658 SEM_FN_NAME (frvbf
,rsth
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5660 #define FLD(f) abuf->fields.sfmt_cswap.f
5661 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5662 int UNUSED written
= 0;
5663 IADDR UNUSED pc
= abuf
->addr
;
5664 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5668 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
5669 frvbf_write_mem_HI (current_cpu
, pc
, tmp_address
, GET_H_GR (FLD (f_GRk
)));
5670 frvbf_check_recovering_store (current_cpu
, tmp_address
, FLD (f_GRk
), 2, 0);
5677 /* rst: rst$pack $GRk,@($GRi,$GRj) */
5680 SEM_FN_NAME (frvbf
,rst
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5682 #define FLD(f) abuf->fields.sfmt_cswap.f
5683 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5684 int UNUSED written
= 0;
5685 IADDR UNUSED pc
= abuf
->addr
;
5686 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5690 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
5691 frvbf_write_mem_SI (current_cpu
, pc
, tmp_address
, GET_H_GR (FLD (f_GRk
)));
5692 frvbf_check_recovering_store (current_cpu
, tmp_address
, FLD (f_GRk
), 4, 0);
5699 /* rstbf: rstbf$pack $FRintk,@($GRi,$GRj) */
5702 SEM_FN_NAME (frvbf
,rstbf
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5704 #define FLD(f) abuf->fields.sfmt_cstbfu.f
5705 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5706 int UNUSED written
= 0;
5707 IADDR UNUSED pc
= abuf
->addr
;
5708 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5712 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
5713 frvbf_write_mem_QI (current_cpu
, pc
, tmp_address
, GET_H_FR_INT (FLD (f_FRk
)));
5714 frvbf_check_recovering_store (current_cpu
, tmp_address
, FLD (f_FRk
), 1, 1);
5721 /* rsthf: rsthf$pack $FRintk,@($GRi,$GRj) */
5724 SEM_FN_NAME (frvbf
,rsthf
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5726 #define FLD(f) abuf->fields.sfmt_cstbfu.f
5727 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5728 int UNUSED written
= 0;
5729 IADDR UNUSED pc
= abuf
->addr
;
5730 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5734 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
5735 frvbf_write_mem_HI (current_cpu
, pc
, tmp_address
, GET_H_FR_INT (FLD (f_FRk
)));
5736 frvbf_check_recovering_store (current_cpu
, tmp_address
, FLD (f_FRk
), 2, 1);
5743 /* rstf: rstf$pack $FRintk,@($GRi,$GRj) */
5746 SEM_FN_NAME (frvbf
,rstf
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5748 #define FLD(f) abuf->fields.sfmt_cstbfu.f
5749 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5750 int UNUSED written
= 0;
5751 IADDR UNUSED pc
= abuf
->addr
;
5752 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5756 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
5757 frvbf_write_mem_SI (current_cpu
, pc
, tmp_address
, GET_H_FR_INT (FLD (f_FRk
)));
5758 frvbf_check_recovering_store (current_cpu
, tmp_address
, FLD (f_FRk
), 4, 1);
5765 /* std: std$pack $GRdoublek,@($GRi,$GRj) */
5768 SEM_FN_NAME (frvbf
,std
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5770 #define FLD(f) abuf->fields.sfmt_cstdu.f
5771 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5772 int UNUSED written
= 0;
5773 IADDR UNUSED pc
= abuf
->addr
;
5774 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5779 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
5780 frvbf_write_mem_DI (current_cpu
, pc
, tmp_address
, GET_H_GR_DOUBLE (FLD (f_GRk
)));
5788 /* stdf: stdf$pack $FRdoublek,@($GRi,$GRj) */
5791 SEM_FN_NAME (frvbf
,stdf
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5793 #define FLD(f) abuf->fields.sfmt_cstdfu.f
5794 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5795 int UNUSED written
= 0;
5796 IADDR UNUSED pc
= abuf
->addr
;
5797 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5802 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
5803 frvbf_write_mem_DF (current_cpu
, pc
, tmp_address
, GET_H_FR_DOUBLE (FLD (f_FRk
)));
5811 /* stdc: stdc$pack $CPRdoublek,@($GRi,$GRj) */
5814 SEM_FN_NAME (frvbf
,stdc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5816 #define FLD(f) abuf->fields.sfmt_stdcu.f
5817 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5818 int UNUSED written
= 0;
5819 IADDR UNUSED pc
= abuf
->addr
;
5820 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5825 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
5826 frvbf_write_mem_DI (current_cpu
, pc
, tmp_address
, GET_H_CPR_DOUBLE (FLD (f_CPRk
)));
5834 /* rstd: rstd$pack $GRdoublek,@($GRi,$GRj) */
5837 SEM_FN_NAME (frvbf
,rstd
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5839 #define FLD(f) abuf->fields.sfmt_cstdu.f
5840 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5841 int UNUSED written
= 0;
5842 IADDR UNUSED pc
= abuf
->addr
;
5843 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5848 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
5849 frvbf_write_mem_DI (current_cpu
, pc
, tmp_address
, GET_H_GR_DOUBLE (FLD (f_GRk
)));
5851 frvbf_check_recovering_store (current_cpu
, tmp_address
, FLD (f_GRk
), 8, 0);
5858 /* rstdf: rstdf$pack $FRdoublek,@($GRi,$GRj) */
5861 SEM_FN_NAME (frvbf
,rstdf
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5863 #define FLD(f) abuf->fields.sfmt_cstdfu.f
5864 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5865 int UNUSED written
= 0;
5866 IADDR UNUSED pc
= abuf
->addr
;
5867 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5872 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
5873 frvbf_write_mem_DF (current_cpu
, pc
, tmp_address
, GET_H_FR_DOUBLE (FLD (f_FRk
)));
5875 frvbf_check_recovering_store (current_cpu
, tmp_address
, FLD (f_FRk
), 8, 1);
5882 /* stq: stq$pack $GRk,@($GRi,$GRj) */
5885 SEM_FN_NAME (frvbf
,stq
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5887 #define FLD(f) abuf->fields.sfmt_smulcc.f
5888 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5889 int UNUSED written
= 0;
5890 IADDR UNUSED pc
= abuf
->addr
;
5891 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5896 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
5897 frvbf_store_quad_GR (current_cpu
, pc
, tmp_address
, FLD (f_GRk
));
5905 /* stqf: stqf$pack $FRintk,@($GRi,$GRj) */
5908 SEM_FN_NAME (frvbf
,stqf
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5910 #define FLD(f) abuf->fields.sfmt_cstdfu.f
5911 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5912 int UNUSED written
= 0;
5913 IADDR UNUSED pc
= abuf
->addr
;
5914 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5919 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
5920 frvbf_store_quad_FRint (current_cpu
, pc
, tmp_address
, FLD (f_FRk
));
5928 /* stqc: stqc$pack $CPRk,@($GRi,$GRj) */
5931 SEM_FN_NAME (frvbf
,stqc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5933 #define FLD(f) abuf->fields.sfmt_stdcu.f
5934 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5935 int UNUSED written
= 0;
5936 IADDR UNUSED pc
= abuf
->addr
;
5937 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5942 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
5943 frvbf_store_quad_CPR (current_cpu
, pc
, tmp_address
, FLD (f_CPRk
));
5951 /* rstq: rstq$pack $GRk,@($GRi,$GRj) */
5954 SEM_FN_NAME (frvbf
,rstq
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5956 #define FLD(f) abuf->fields.sfmt_smulcc.f
5957 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5958 int UNUSED written
= 0;
5959 IADDR UNUSED pc
= abuf
->addr
;
5960 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5965 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
5966 frvbf_store_quad_GR (current_cpu
, pc
, tmp_address
, FLD (f_GRk
));
5968 frvbf_check_recovering_store (current_cpu
, tmp_address
, FLD (f_GRk
), 16, 0);
5975 /* rstqf: rstqf$pack $FRintk,@($GRi,$GRj) */
5978 SEM_FN_NAME (frvbf
,rstqf
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
5980 #define FLD(f) abuf->fields.sfmt_cstdfu.f
5981 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
5982 int UNUSED written
= 0;
5983 IADDR UNUSED pc
= abuf
->addr
;
5984 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
5989 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
5990 frvbf_store_quad_FRint (current_cpu
, pc
, tmp_address
, FLD (f_FRk
));
5992 frvbf_check_recovering_store (current_cpu
, tmp_address
, FLD (f_FRk
), 16, 1);
5999 /* stbu: stbu$pack $GRk,@($GRi,$GRj) */
6002 SEM_FN_NAME (frvbf
,stbu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6004 #define FLD(f) abuf->fields.sfmt_cstbu.f
6005 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6006 int UNUSED written
= 0;
6007 IADDR UNUSED pc
= abuf
->addr
;
6008 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6012 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
6013 frvbf_write_mem_QI (current_cpu
, pc
, tmp_address
, GET_H_GR (FLD (f_GRk
)));
6015 SI opval
= tmp_address
;
6016 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
6017 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
6025 /* sthu: sthu$pack $GRk,@($GRi,$GRj) */
6028 SEM_FN_NAME (frvbf
,sthu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6030 #define FLD(f) abuf->fields.sfmt_cstbu.f
6031 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6032 int UNUSED written
= 0;
6033 IADDR UNUSED pc
= abuf
->addr
;
6034 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6038 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
6039 frvbf_write_mem_HI (current_cpu
, pc
, tmp_address
, GET_H_GR (FLD (f_GRk
)));
6041 SI opval
= tmp_address
;
6042 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
6043 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
6051 /* stu: stu$pack $GRk,@($GRi,$GRj) */
6054 SEM_FN_NAME (frvbf
,stu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6056 #define FLD(f) abuf->fields.sfmt_cstbu.f
6057 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6058 int UNUSED written
= 0;
6059 IADDR UNUSED pc
= abuf
->addr
;
6060 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6064 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
6065 frvbf_write_mem_WI (current_cpu
, pc
, tmp_address
, GET_H_GR (FLD (f_GRk
)));
6067 SI opval
= tmp_address
;
6068 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
6069 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
6077 /* stbfu: stbfu$pack $FRintk,@($GRi,$GRj) */
6080 SEM_FN_NAME (frvbf
,stbfu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6082 #define FLD(f) abuf->fields.sfmt_cstbfu.f
6083 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6084 int UNUSED written
= 0;
6085 IADDR UNUSED pc
= abuf
->addr
;
6086 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6090 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
6091 frvbf_write_mem_QI (current_cpu
, pc
, tmp_address
, GET_H_FR_INT (FLD (f_FRk
)));
6093 SI opval
= tmp_address
;
6094 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
6095 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
6103 /* sthfu: sthfu$pack $FRintk,@($GRi,$GRj) */
6106 SEM_FN_NAME (frvbf
,sthfu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6108 #define FLD(f) abuf->fields.sfmt_cstbfu.f
6109 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6110 int UNUSED written
= 0;
6111 IADDR UNUSED pc
= abuf
->addr
;
6112 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6116 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
6117 frvbf_write_mem_HI (current_cpu
, pc
, tmp_address
, GET_H_FR_INT (FLD (f_FRk
)));
6119 SI opval
= tmp_address
;
6120 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
6121 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
6129 /* stfu: stfu$pack $FRintk,@($GRi,$GRj) */
6132 SEM_FN_NAME (frvbf
,stfu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6134 #define FLD(f) abuf->fields.sfmt_cstbfu.f
6135 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6136 int UNUSED written
= 0;
6137 IADDR UNUSED pc
= abuf
->addr
;
6138 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6142 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
6143 frvbf_write_mem_SI (current_cpu
, pc
, tmp_address
, GET_H_FR_INT (FLD (f_FRk
)));
6145 SI opval
= tmp_address
;
6146 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
6147 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
6155 /* stcu: stcu$pack $CPRk,@($GRi,$GRj) */
6158 SEM_FN_NAME (frvbf
,stcu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6160 #define FLD(f) abuf->fields.sfmt_stcu.f
6161 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6162 int UNUSED written
= 0;
6163 IADDR UNUSED pc
= abuf
->addr
;
6164 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6168 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
6169 frvbf_write_mem_SI (current_cpu
, pc
, tmp_address
, CPU (h_cpr
[FLD (f_CPRk
)]));
6171 SI opval
= tmp_address
;
6172 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
6173 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
6181 /* stdu: stdu$pack $GRdoublek,@($GRi,$GRj) */
6184 SEM_FN_NAME (frvbf
,stdu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6186 #define FLD(f) abuf->fields.sfmt_cstdu.f
6187 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6188 int UNUSED written
= 0;
6189 IADDR UNUSED pc
= abuf
->addr
;
6190 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6195 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
6196 frvbf_write_mem_DI (current_cpu
, pc
, tmp_address
, GET_H_GR_DOUBLE (FLD (f_GRk
)));
6199 SI opval
= tmp_address
;
6200 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
6201 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
6209 /* stdfu: stdfu$pack $FRdoublek,@($GRi,$GRj) */
6212 SEM_FN_NAME (frvbf
,stdfu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6214 #define FLD(f) abuf->fields.sfmt_cstdfu.f
6215 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6216 int UNUSED written
= 0;
6217 IADDR UNUSED pc
= abuf
->addr
;
6218 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6223 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
6224 frvbf_write_mem_DF (current_cpu
, pc
, tmp_address
, GET_H_FR_DOUBLE (FLD (f_FRk
)));
6227 SI opval
= tmp_address
;
6228 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
6229 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
6237 /* stdcu: stdcu$pack $CPRdoublek,@($GRi,$GRj) */
6240 SEM_FN_NAME (frvbf
,stdcu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6242 #define FLD(f) abuf->fields.sfmt_stdcu.f
6243 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6244 int UNUSED written
= 0;
6245 IADDR UNUSED pc
= abuf
->addr
;
6246 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6251 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
6252 frvbf_write_mem_DI (current_cpu
, pc
, tmp_address
, GET_H_CPR_DOUBLE (FLD (f_CPRk
)));
6255 SI opval
= tmp_address
;
6256 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
6257 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
6265 /* stqu: stqu$pack $GRk,@($GRi,$GRj) */
6268 SEM_FN_NAME (frvbf
,stqu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6270 #define FLD(f) abuf->fields.sfmt_cstdu.f
6271 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6272 int UNUSED written
= 0;
6273 IADDR UNUSED pc
= abuf
->addr
;
6274 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6279 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
6280 frvbf_store_quad_GR (current_cpu
, pc
, tmp_address
, FLD (f_GRk
));
6283 SI opval
= tmp_address
;
6284 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
6285 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
6293 /* stqfu: stqfu$pack $FRintk,@($GRi,$GRj) */
6296 SEM_FN_NAME (frvbf
,stqfu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6298 #define FLD(f) abuf->fields.sfmt_cstdfu.f
6299 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6300 int UNUSED written
= 0;
6301 IADDR UNUSED pc
= abuf
->addr
;
6302 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6307 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
6308 frvbf_store_quad_FRint (current_cpu
, pc
, tmp_address
, FLD (f_FRk
));
6311 SI opval
= tmp_address
;
6312 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
6313 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
6321 /* stqcu: stqcu$pack $CPRk,@($GRi,$GRj) */
6324 SEM_FN_NAME (frvbf
,stqcu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6326 #define FLD(f) abuf->fields.sfmt_stdcu.f
6327 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6328 int UNUSED written
= 0;
6329 IADDR UNUSED pc
= abuf
->addr
;
6330 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6335 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
6336 frvbf_store_quad_CPR (current_cpu
, pc
, tmp_address
, FLD (f_CPRk
));
6339 SI opval
= tmp_address
;
6340 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
6341 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
6349 /* cldsb: cldsb$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6352 SEM_FN_NAME (frvbf
,cldsb
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6354 #define FLD(f) abuf->fields.sfmt_cswap.f
6355 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6356 int UNUSED written
= 0;
6357 IADDR UNUSED pc
= abuf
->addr
;
6358 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6360 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
6362 SI opval
= frvbf_read_mem_QI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))));
6363 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
6364 written
|= (1 << 5);
6365 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
6369 abuf
->written
= written
;
6374 /* cldub: cldub$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6377 SEM_FN_NAME (frvbf
,cldub
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6379 #define FLD(f) abuf->fields.sfmt_cswap.f
6380 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6381 int UNUSED written
= 0;
6382 IADDR UNUSED pc
= abuf
->addr
;
6383 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6385 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
6387 SI opval
= frvbf_read_mem_UQI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))));
6388 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
6389 written
|= (1 << 5);
6390 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
6394 abuf
->written
= written
;
6399 /* cldsh: cldsh$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6402 SEM_FN_NAME (frvbf
,cldsh
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6404 #define FLD(f) abuf->fields.sfmt_cswap.f
6405 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6406 int UNUSED written
= 0;
6407 IADDR UNUSED pc
= abuf
->addr
;
6408 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6410 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
6412 SI opval
= frvbf_read_mem_HI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))));
6413 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
6414 written
|= (1 << 5);
6415 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
6419 abuf
->written
= written
;
6424 /* clduh: clduh$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6427 SEM_FN_NAME (frvbf
,clduh
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6429 #define FLD(f) abuf->fields.sfmt_cswap.f
6430 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6431 int UNUSED written
= 0;
6432 IADDR UNUSED pc
= abuf
->addr
;
6433 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6435 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
6437 SI opval
= frvbf_read_mem_UHI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))));
6438 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
6439 written
|= (1 << 5);
6440 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
6444 abuf
->written
= written
;
6449 /* cld: cld$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6452 SEM_FN_NAME (frvbf
,cld
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6454 #define FLD(f) abuf->fields.sfmt_cswap.f
6455 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6456 int UNUSED written
= 0;
6457 IADDR UNUSED pc
= abuf
->addr
;
6458 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6460 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
6462 SI opval
= frvbf_read_mem_SI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))));
6463 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
6464 written
|= (1 << 5);
6465 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
6469 abuf
->written
= written
;
6474 /* cldbf: cldbf$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6477 SEM_FN_NAME (frvbf
,cldbf
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6479 #define FLD(f) abuf->fields.sfmt_cldbfu.f
6480 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6481 int UNUSED written
= 0;
6482 IADDR UNUSED pc
= abuf
->addr
;
6483 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6485 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
6487 SI opval
= frvbf_read_mem_UQI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))));
6488 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
6489 written
|= (1 << 5);
6490 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
6494 abuf
->written
= written
;
6499 /* cldhf: cldhf$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6502 SEM_FN_NAME (frvbf
,cldhf
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6504 #define FLD(f) abuf->fields.sfmt_cldbfu.f
6505 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6506 int UNUSED written
= 0;
6507 IADDR UNUSED pc
= abuf
->addr
;
6508 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6510 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
6512 SI opval
= frvbf_read_mem_UHI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))));
6513 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
6514 written
|= (1 << 5);
6515 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
6519 abuf
->written
= written
;
6524 /* cldf: cldf$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6527 SEM_FN_NAME (frvbf
,cldf
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6529 #define FLD(f) abuf->fields.sfmt_cldbfu.f
6530 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6531 int UNUSED written
= 0;
6532 IADDR UNUSED pc
= abuf
->addr
;
6533 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6535 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
6537 SI opval
= frvbf_read_mem_SI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))));
6538 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
6539 written
|= (1 << 5);
6540 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
6544 abuf
->written
= written
;
6549 /* cldd: cldd$pack @($GRi,$GRj),$GRdoublek,$CCi,$cond */
6552 SEM_FN_NAME (frvbf
,cldd
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6554 #define FLD(f) abuf->fields.sfmt_clddu.f
6555 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6556 int UNUSED written
= 0;
6557 IADDR UNUSED pc
= abuf
->addr
;
6558 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6560 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
6563 if (NESI (FLD (f_GRk
), 0)) {
6565 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
6567 DI opval
= frvbf_read_mem_DI (current_cpu
, pc
, tmp_address
);
6568 sim_queue_fn_di_write (current_cpu
, frvbf_h_gr_double_set
, FLD (f_GRk
), opval
);
6569 written
|= (1 << 6);
6570 TRACE_RESULT (current_cpu
, abuf
, "gr_double", 'D', opval
);
6577 abuf
->written
= written
;
6582 /* clddf: clddf$pack @($GRi,$GRj),$FRdoublek,$CCi,$cond */
6585 SEM_FN_NAME (frvbf
,clddf
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6587 #define FLD(f) abuf->fields.sfmt_clddfu.f
6588 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6589 int UNUSED written
= 0;
6590 IADDR UNUSED pc
= abuf
->addr
;
6591 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6593 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
6597 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
6599 DF opval
= frvbf_read_mem_DF (current_cpu
, pc
, tmp_address
);
6600 sim_queue_fn_df_write (current_cpu
, frvbf_h_fr_double_set
, FLD (f_FRk
), opval
);
6601 written
|= (1 << 5);
6602 TRACE_RESULT (current_cpu
, abuf
, "fr_double", 'f', opval
);
6608 abuf
->written
= written
;
6613 /* cldq: cldq$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6616 SEM_FN_NAME (frvbf
,cldq
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6618 #define FLD(f) abuf->fields.sfmt_cswap.f
6619 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6620 int UNUSED written
= 0;
6621 IADDR UNUSED pc
= abuf
->addr
;
6622 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6624 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
6628 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
6629 frvbf_load_quad_GR (current_cpu
, pc
, tmp_address
, FLD (f_GRk
));
6638 /* cldsbu: cldsbu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6641 SEM_FN_NAME (frvbf
,cldsbu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6643 #define FLD(f) abuf->fields.sfmt_cldsbu.f
6644 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6645 int UNUSED written
= 0;
6646 IADDR UNUSED pc
= abuf
->addr
;
6647 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6649 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
6652 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
6654 SI opval
= frvbf_read_mem_QI (current_cpu
, pc
, tmp_address
);
6655 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
6656 written
|= (1 << 8);
6657 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
6659 if (NESI (FLD (f_GRi
), FLD (f_GRk
))) {
6661 SI opval
= tmp_address
;
6662 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
6663 written
|= (1 << 7);
6664 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
6670 abuf
->written
= written
;
6675 /* cldubu: cldubu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6678 SEM_FN_NAME (frvbf
,cldubu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6680 #define FLD(f) abuf->fields.sfmt_cldsbu.f
6681 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6682 int UNUSED written
= 0;
6683 IADDR UNUSED pc
= abuf
->addr
;
6684 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6686 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
6689 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
6691 SI opval
= frvbf_read_mem_UQI (current_cpu
, pc
, tmp_address
);
6692 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
6693 written
|= (1 << 8);
6694 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
6696 if (NESI (FLD (f_GRi
), FLD (f_GRk
))) {
6698 SI opval
= tmp_address
;
6699 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
6700 written
|= (1 << 7);
6701 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
6707 abuf
->written
= written
;
6712 /* cldshu: cldshu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6715 SEM_FN_NAME (frvbf
,cldshu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6717 #define FLD(f) abuf->fields.sfmt_cldsbu.f
6718 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6719 int UNUSED written
= 0;
6720 IADDR UNUSED pc
= abuf
->addr
;
6721 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6723 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
6726 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
6728 SI opval
= frvbf_read_mem_HI (current_cpu
, pc
, tmp_address
);
6729 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
6730 written
|= (1 << 8);
6731 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
6733 if (NESI (FLD (f_GRi
), FLD (f_GRk
))) {
6735 SI opval
= tmp_address
;
6736 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
6737 written
|= (1 << 7);
6738 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
6744 abuf
->written
= written
;
6749 /* clduhu: clduhu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6752 SEM_FN_NAME (frvbf
,clduhu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6754 #define FLD(f) abuf->fields.sfmt_cldsbu.f
6755 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6756 int UNUSED written
= 0;
6757 IADDR UNUSED pc
= abuf
->addr
;
6758 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6760 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
6763 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
6765 SI opval
= frvbf_read_mem_UHI (current_cpu
, pc
, tmp_address
);
6766 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
6767 written
|= (1 << 8);
6768 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
6770 if (NESI (FLD (f_GRi
), FLD (f_GRk
))) {
6772 SI opval
= tmp_address
;
6773 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
6774 written
|= (1 << 7);
6775 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
6781 abuf
->written
= written
;
6786 /* cldu: cldu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6789 SEM_FN_NAME (frvbf
,cldu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6791 #define FLD(f) abuf->fields.sfmt_cldsbu.f
6792 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6793 int UNUSED written
= 0;
6794 IADDR UNUSED pc
= abuf
->addr
;
6795 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6797 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
6800 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
6802 SI opval
= frvbf_read_mem_SI (current_cpu
, pc
, tmp_address
);
6803 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
6804 written
|= (1 << 8);
6805 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
6807 if (NESI (FLD (f_GRi
), FLD (f_GRk
))) {
6809 SI opval
= tmp_address
;
6810 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
6811 written
|= (1 << 7);
6812 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
6818 abuf
->written
= written
;
6823 /* cldbfu: cldbfu$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6826 SEM_FN_NAME (frvbf
,cldbfu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6828 #define FLD(f) abuf->fields.sfmt_cldbfu.f
6829 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6830 int UNUSED written
= 0;
6831 IADDR UNUSED pc
= abuf
->addr
;
6832 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6834 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
6837 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
6839 SI opval
= frvbf_read_mem_UQI (current_cpu
, pc
, tmp_address
);
6840 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
6841 written
|= (1 << 5);
6842 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
6845 SI opval
= tmp_address
;
6846 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
6847 written
|= (1 << 6);
6848 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
6853 abuf
->written
= written
;
6858 /* cldhfu: cldhfu$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6861 SEM_FN_NAME (frvbf
,cldhfu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6863 #define FLD(f) abuf->fields.sfmt_cldbfu.f
6864 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6865 int UNUSED written
= 0;
6866 IADDR UNUSED pc
= abuf
->addr
;
6867 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6869 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
6872 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
6874 SI opval
= frvbf_read_mem_UHI (current_cpu
, pc
, tmp_address
);
6875 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
6876 written
|= (1 << 5);
6877 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
6880 SI opval
= tmp_address
;
6881 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
6882 written
|= (1 << 6);
6883 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
6888 abuf
->written
= written
;
6893 /* cldfu: cldfu$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6896 SEM_FN_NAME (frvbf
,cldfu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6898 #define FLD(f) abuf->fields.sfmt_cldbfu.f
6899 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6900 int UNUSED written
= 0;
6901 IADDR UNUSED pc
= abuf
->addr
;
6902 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6904 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
6907 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
6909 SI opval
= frvbf_read_mem_SI (current_cpu
, pc
, tmp_address
);
6910 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
6911 written
|= (1 << 5);
6912 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
6915 SI opval
= tmp_address
;
6916 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
6917 written
|= (1 << 6);
6918 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
6923 abuf
->written
= written
;
6928 /* clddu: clddu$pack @($GRi,$GRj),$GRdoublek,$CCi,$cond */
6931 SEM_FN_NAME (frvbf
,clddu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6933 #define FLD(f) abuf->fields.sfmt_clddu.f
6934 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6935 int UNUSED written
= 0;
6936 IADDR UNUSED pc
= abuf
->addr
;
6937 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6939 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
6942 if (NESI (FLD (f_GRk
), 0)) {
6944 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
6946 DI opval
= frvbf_read_mem_DI (current_cpu
, pc
, tmp_address
);
6947 sim_queue_fn_di_write (current_cpu
, frvbf_h_gr_double_set
, FLD (f_GRk
), opval
);
6948 written
|= (1 << 7);
6949 TRACE_RESULT (current_cpu
, abuf
, "gr_double", 'D', opval
);
6953 if (NESI (FLD (f_GRi
), FLD (f_GRk
))) {
6955 SI opval
= tmp_address
;
6956 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
6957 written
|= (1 << 8);
6958 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
6964 abuf
->written
= written
;
6969 /* clddfu: clddfu$pack @($GRi,$GRj),$FRdoublek,$CCi,$cond */
6972 SEM_FN_NAME (frvbf
,clddfu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
6974 #define FLD(f) abuf->fields.sfmt_clddfu.f
6975 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
6976 int UNUSED written
= 0;
6977 IADDR UNUSED pc
= abuf
->addr
;
6978 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
6980 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
6984 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
6986 DF opval
= frvbf_read_mem_DF (current_cpu
, pc
, tmp_address
);
6987 sim_queue_fn_df_write (current_cpu
, frvbf_h_fr_double_set
, FLD (f_FRk
), opval
);
6988 written
|= (1 << 5);
6989 TRACE_RESULT (current_cpu
, abuf
, "fr_double", 'f', opval
);
6993 SI opval
= tmp_address
;
6994 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
6995 written
|= (1 << 6);
6996 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
7001 abuf
->written
= written
;
7006 /* cldqu: cldqu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
7009 SEM_FN_NAME (frvbf
,cldqu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7011 #define FLD(f) abuf->fields.sfmt_cstdu.f
7012 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7013 int UNUSED written
= 0;
7014 IADDR UNUSED pc
= abuf
->addr
;
7015 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
7017 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
7021 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
7022 frvbf_load_quad_GR (current_cpu
, pc
, tmp_address
, FLD (f_GRk
));
7024 if (NESI (FLD (f_GRi
), FLD (f_GRk
))) {
7026 SI opval
= tmp_address
;
7027 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
7028 written
|= (1 << 7);
7029 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
7035 abuf
->written
= written
;
7040 /* cstb: cstb$pack $GRk,@($GRi,$GRj),$CCi,$cond */
7043 SEM_FN_NAME (frvbf
,cstb
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7045 #define FLD(f) abuf->fields.sfmt_cswap.f
7046 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7047 int UNUSED written
= 0;
7048 IADDR UNUSED pc
= abuf
->addr
;
7049 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
7051 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
7052 frvbf_write_mem_QI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))), GET_H_GR (FLD (f_GRk
)));
7059 /* csth: csth$pack $GRk,@($GRi,$GRj),$CCi,$cond */
7062 SEM_FN_NAME (frvbf
,csth
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7064 #define FLD(f) abuf->fields.sfmt_cswap.f
7065 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7066 int UNUSED written
= 0;
7067 IADDR UNUSED pc
= abuf
->addr
;
7068 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
7070 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
7071 frvbf_write_mem_HI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))), GET_H_GR (FLD (f_GRk
)));
7078 /* cst: cst$pack $GRk,@($GRi,$GRj),$CCi,$cond */
7081 SEM_FN_NAME (frvbf
,cst
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7083 #define FLD(f) abuf->fields.sfmt_cswap.f
7084 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7085 int UNUSED written
= 0;
7086 IADDR UNUSED pc
= abuf
->addr
;
7087 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
7089 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
7090 frvbf_write_mem_SI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))), GET_H_GR (FLD (f_GRk
)));
7097 /* cstbf: cstbf$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
7100 SEM_FN_NAME (frvbf
,cstbf
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7102 #define FLD(f) abuf->fields.sfmt_cstbfu.f
7103 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7104 int UNUSED written
= 0;
7105 IADDR UNUSED pc
= abuf
->addr
;
7106 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
7108 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
7109 frvbf_write_mem_QI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))), GET_H_FR_INT (FLD (f_FRk
)));
7116 /* csthf: csthf$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
7119 SEM_FN_NAME (frvbf
,csthf
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7121 #define FLD(f) abuf->fields.sfmt_cstbfu.f
7122 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7123 int UNUSED written
= 0;
7124 IADDR UNUSED pc
= abuf
->addr
;
7125 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
7127 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
7128 frvbf_write_mem_HI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))), GET_H_FR_INT (FLD (f_FRk
)));
7135 /* cstf: cstf$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
7138 SEM_FN_NAME (frvbf
,cstf
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7140 #define FLD(f) abuf->fields.sfmt_cstbfu.f
7141 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7142 int UNUSED written
= 0;
7143 IADDR UNUSED pc
= abuf
->addr
;
7144 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
7146 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
7147 frvbf_write_mem_SI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))), GET_H_FR_INT (FLD (f_FRk
)));
7154 /* cstd: cstd$pack $GRdoublek,@($GRi,$GRj),$CCi,$cond */
7157 SEM_FN_NAME (frvbf
,cstd
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7159 #define FLD(f) abuf->fields.sfmt_cstdu.f
7160 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7161 int UNUSED written
= 0;
7162 IADDR UNUSED pc
= abuf
->addr
;
7163 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
7165 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
7169 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
7170 frvbf_write_mem_DI (current_cpu
, pc
, tmp_address
, GET_H_GR_DOUBLE (FLD (f_GRk
)));
7179 /* cstdf: cstdf$pack $FRdoublek,@($GRi,$GRj),$CCi,$cond */
7182 SEM_FN_NAME (frvbf
,cstdf
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7184 #define FLD(f) abuf->fields.sfmt_cstdfu.f
7185 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7186 int UNUSED written
= 0;
7187 IADDR UNUSED pc
= abuf
->addr
;
7188 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
7190 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
7194 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
7195 frvbf_write_mem_DF (current_cpu
, pc
, tmp_address
, GET_H_FR_DOUBLE (FLD (f_FRk
)));
7204 /* cstq: cstq$pack $GRk,@($GRi,$GRj),$CCi,$cond */
7207 SEM_FN_NAME (frvbf
,cstq
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7209 #define FLD(f) abuf->fields.sfmt_cswap.f
7210 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7211 int UNUSED written
= 0;
7212 IADDR UNUSED pc
= abuf
->addr
;
7213 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
7215 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
7219 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
7220 frvbf_store_quad_GR (current_cpu
, pc
, tmp_address
, FLD (f_GRk
));
7229 /* cstbu: cstbu$pack $GRk,@($GRi,$GRj),$CCi,$cond */
7232 SEM_FN_NAME (frvbf
,cstbu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7234 #define FLD(f) abuf->fields.sfmt_cstbu.f
7235 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7236 int UNUSED written
= 0;
7237 IADDR UNUSED pc
= abuf
->addr
;
7238 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
7240 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
7243 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
7244 frvbf_write_mem_QI (current_cpu
, pc
, tmp_address
, GET_H_GR (FLD (f_GRk
)));
7246 SI opval
= tmp_address
;
7247 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
7248 written
|= (1 << 6);
7249 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
7254 abuf
->written
= written
;
7259 /* csthu: csthu$pack $GRk,@($GRi,$GRj),$CCi,$cond */
7262 SEM_FN_NAME (frvbf
,csthu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7264 #define FLD(f) abuf->fields.sfmt_cstbu.f
7265 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7266 int UNUSED written
= 0;
7267 IADDR UNUSED pc
= abuf
->addr
;
7268 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
7270 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
7273 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
7274 frvbf_write_mem_HI (current_cpu
, pc
, tmp_address
, GET_H_GR (FLD (f_GRk
)));
7276 SI opval
= tmp_address
;
7277 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
7278 written
|= (1 << 6);
7279 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
7284 abuf
->written
= written
;
7289 /* cstu: cstu$pack $GRk,@($GRi,$GRj),$CCi,$cond */
7292 SEM_FN_NAME (frvbf
,cstu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7294 #define FLD(f) abuf->fields.sfmt_cstbu.f
7295 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7296 int UNUSED written
= 0;
7297 IADDR UNUSED pc
= abuf
->addr
;
7298 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
7300 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
7303 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
7304 frvbf_write_mem_SI (current_cpu
, pc
, tmp_address
, GET_H_GR (FLD (f_GRk
)));
7306 SI opval
= tmp_address
;
7307 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
7308 written
|= (1 << 6);
7309 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
7314 abuf
->written
= written
;
7319 /* cstbfu: cstbfu$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
7322 SEM_FN_NAME (frvbf
,cstbfu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7324 #define FLD(f) abuf->fields.sfmt_cstbfu.f
7325 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7326 int UNUSED written
= 0;
7327 IADDR UNUSED pc
= abuf
->addr
;
7328 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
7330 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
7333 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
7334 frvbf_write_mem_QI (current_cpu
, pc
, tmp_address
, GET_H_FR_INT (FLD (f_FRk
)));
7336 SI opval
= tmp_address
;
7337 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
7338 written
|= (1 << 6);
7339 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
7344 abuf
->written
= written
;
7349 /* csthfu: csthfu$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
7352 SEM_FN_NAME (frvbf
,csthfu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7354 #define FLD(f) abuf->fields.sfmt_cstbfu.f
7355 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7356 int UNUSED written
= 0;
7357 IADDR UNUSED pc
= abuf
->addr
;
7358 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
7360 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
7363 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
7364 frvbf_write_mem_HI (current_cpu
, pc
, tmp_address
, GET_H_FR_INT (FLD (f_FRk
)));
7366 SI opval
= tmp_address
;
7367 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
7368 written
|= (1 << 6);
7369 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
7374 abuf
->written
= written
;
7379 /* cstfu: cstfu$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
7382 SEM_FN_NAME (frvbf
,cstfu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7384 #define FLD(f) abuf->fields.sfmt_cstbfu.f
7385 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7386 int UNUSED written
= 0;
7387 IADDR UNUSED pc
= abuf
->addr
;
7388 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
7390 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
7393 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
7394 frvbf_write_mem_SI (current_cpu
, pc
, tmp_address
, GET_H_FR_INT (FLD (f_FRk
)));
7396 SI opval
= tmp_address
;
7397 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
7398 written
|= (1 << 6);
7399 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
7404 abuf
->written
= written
;
7409 /* cstdu: cstdu$pack $GRdoublek,@($GRi,$GRj),$CCi,$cond */
7412 SEM_FN_NAME (frvbf
,cstdu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7414 #define FLD(f) abuf->fields.sfmt_cstdu.f
7415 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7416 int UNUSED written
= 0;
7417 IADDR UNUSED pc
= abuf
->addr
;
7418 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
7420 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
7424 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
7425 frvbf_write_mem_DI (current_cpu
, pc
, tmp_address
, GET_H_GR_DOUBLE (FLD (f_GRk
)));
7428 SI opval
= tmp_address
;
7429 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
7430 written
|= (1 << 6);
7431 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
7436 abuf
->written
= written
;
7441 /* cstdfu: cstdfu$pack $FRdoublek,@($GRi,$GRj),$CCi,$cond */
7444 SEM_FN_NAME (frvbf
,cstdfu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7446 #define FLD(f) abuf->fields.sfmt_cstdfu.f
7447 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7448 int UNUSED written
= 0;
7449 IADDR UNUSED pc
= abuf
->addr
;
7450 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
7452 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
7456 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
7457 frvbf_write_mem_DF (current_cpu
, pc
, tmp_address
, GET_H_FR_DOUBLE (FLD (f_FRk
)));
7460 SI opval
= tmp_address
;
7461 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRi
), opval
);
7462 written
|= (1 << 6);
7463 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
7468 abuf
->written
= written
;
7473 /* stbi: stbi$pack $GRk,@($GRi,$d12) */
7476 SEM_FN_NAME (frvbf
,stbi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7478 #define FLD(f) abuf->fields.sfmt_swapi.f
7479 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7480 int UNUSED written
= 0;
7481 IADDR UNUSED pc
= abuf
->addr
;
7482 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
7484 frvbf_write_mem_QI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), FLD (f_d12
)), GET_H_GR (FLD (f_GRk
)));
7490 /* sthi: sthi$pack $GRk,@($GRi,$d12) */
7493 SEM_FN_NAME (frvbf
,sthi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7495 #define FLD(f) abuf->fields.sfmt_swapi.f
7496 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7497 int UNUSED written
= 0;
7498 IADDR UNUSED pc
= abuf
->addr
;
7499 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
7501 frvbf_write_mem_HI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), FLD (f_d12
)), GET_H_GR (FLD (f_GRk
)));
7507 /* sti: sti$pack $GRk,@($GRi,$d12) */
7510 SEM_FN_NAME (frvbf
,sti
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7512 #define FLD(f) abuf->fields.sfmt_swapi.f
7513 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7514 int UNUSED written
= 0;
7515 IADDR UNUSED pc
= abuf
->addr
;
7516 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
7518 frvbf_write_mem_SI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), FLD (f_d12
)), GET_H_GR (FLD (f_GRk
)));
7524 /* stbfi: stbfi$pack $FRintk,@($GRi,$d12) */
7527 SEM_FN_NAME (frvbf
,stbfi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7529 #define FLD(f) abuf->fields.sfmt_stbfi.f
7530 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7531 int UNUSED written
= 0;
7532 IADDR UNUSED pc
= abuf
->addr
;
7533 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
7535 frvbf_write_mem_QI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), FLD (f_d12
)), GET_H_FR_INT (FLD (f_FRk
)));
7541 /* sthfi: sthfi$pack $FRintk,@($GRi,$d12) */
7544 SEM_FN_NAME (frvbf
,sthfi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7546 #define FLD(f) abuf->fields.sfmt_stbfi.f
7547 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7548 int UNUSED written
= 0;
7549 IADDR UNUSED pc
= abuf
->addr
;
7550 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
7552 frvbf_write_mem_HI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), FLD (f_d12
)), GET_H_FR_INT (FLD (f_FRk
)));
7558 /* stfi: stfi$pack $FRintk,@($GRi,$d12) */
7561 SEM_FN_NAME (frvbf
,stfi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7563 #define FLD(f) abuf->fields.sfmt_stbfi.f
7564 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7565 int UNUSED written
= 0;
7566 IADDR UNUSED pc
= abuf
->addr
;
7567 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
7569 frvbf_write_mem_SI (current_cpu
, pc
, ADDSI (GET_H_GR (FLD (f_GRi
)), FLD (f_d12
)), GET_H_FR_INT (FLD (f_FRk
)));
7575 /* stdi: stdi$pack $GRdoublek,@($GRi,$d12) */
7578 SEM_FN_NAME (frvbf
,stdi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7580 #define FLD(f) abuf->fields.sfmt_stdi.f
7581 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7582 int UNUSED written
= 0;
7583 IADDR UNUSED pc
= abuf
->addr
;
7584 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
7589 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
7590 frvbf_write_mem_DI (current_cpu
, pc
, tmp_address
, GET_H_GR_DOUBLE (FLD (f_GRk
)));
7598 /* stdfi: stdfi$pack $FRdoublek,@($GRi,$d12) */
7601 SEM_FN_NAME (frvbf
,stdfi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7603 #define FLD(f) abuf->fields.sfmt_stdfi.f
7604 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7605 int UNUSED written
= 0;
7606 IADDR UNUSED pc
= abuf
->addr
;
7607 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
7612 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
7613 frvbf_write_mem_DF (current_cpu
, pc
, tmp_address
, GET_H_FR_DOUBLE (FLD (f_FRk
)));
7621 /* stqi: stqi$pack $GRk,@($GRi,$d12) */
7624 SEM_FN_NAME (frvbf
,stqi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7626 #define FLD(f) abuf->fields.sfmt_stdi.f
7627 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7628 int UNUSED written
= 0;
7629 IADDR UNUSED pc
= abuf
->addr
;
7630 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
7635 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
7636 frvbf_store_quad_GR (current_cpu
, pc
, tmp_address
, FLD (f_GRk
));
7644 /* stqfi: stqfi$pack $FRintk,@($GRi,$d12) */
7647 SEM_FN_NAME (frvbf
,stqfi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7649 #define FLD(f) abuf->fields.sfmt_stdfi.f
7650 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7651 int UNUSED written
= 0;
7652 IADDR UNUSED pc
= abuf
->addr
;
7653 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
7658 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
7659 frvbf_store_quad_FRint (current_cpu
, pc
, tmp_address
, FLD (f_FRk
));
7667 /* swap: swap$pack @($GRi,$GRj),$GRk */
7670 SEM_FN_NAME (frvbf
,swap
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7672 #define FLD(f) abuf->fields.sfmt_cswap.f
7673 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7674 int UNUSED written
= 0;
7675 IADDR UNUSED pc
= abuf
->addr
;
7676 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
7681 tmp_tmp
= GET_H_GR (FLD (f_GRk
));
7682 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
7683 frvbf_check_swap_address (current_cpu
, tmp_address
);
7685 SI opval
= frvbf_read_mem_WI (current_cpu
, pc
, tmp_address
);
7686 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
7687 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
7689 frvbf_write_mem_WI (current_cpu
, pc
, tmp_address
, tmp_tmp
);
7696 /* swapi: swapi$pack @($GRi,$d12),$GRk */
7699 SEM_FN_NAME (frvbf
,swapi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7701 #define FLD(f) abuf->fields.sfmt_swapi.f
7702 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7703 int UNUSED written
= 0;
7704 IADDR UNUSED pc
= abuf
->addr
;
7705 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
7710 tmp_tmp
= GET_H_GR (FLD (f_GRk
));
7711 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
7712 frvbf_check_swap_address (current_cpu
, tmp_address
);
7714 SI opval
= frvbf_read_mem_WI (current_cpu
, pc
, tmp_address
);
7715 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
7716 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
7718 frvbf_write_mem_WI (current_cpu
, pc
, tmp_address
, tmp_tmp
);
7725 /* cswap: cswap$pack @($GRi,$GRj),$GRk,$CCi,$cond */
7728 SEM_FN_NAME (frvbf
,cswap
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7730 #define FLD(f) abuf->fields.sfmt_cswap.f
7731 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7732 int UNUSED written
= 0;
7733 IADDR UNUSED pc
= abuf
->addr
;
7734 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
7736 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
7740 tmp_tmp
= GET_H_GR (FLD (f_GRk
));
7741 tmp_address
= ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
7742 frvbf_check_swap_address (current_cpu
, tmp_address
);
7744 SI opval
= frvbf_read_mem_WI (current_cpu
, pc
, tmp_address
);
7745 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRk
), opval
);
7746 written
|= (1 << 6);
7747 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
7749 frvbf_write_mem_WI (current_cpu
, pc
, tmp_address
, tmp_tmp
);
7753 abuf
->written
= written
;
7758 /* movgf: movgf$pack $GRj,$FRintk */
7761 SEM_FN_NAME (frvbf
,movgf
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7763 #define FLD(f) abuf->fields.sfmt_cmovgfd.f
7764 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7765 int UNUSED written
= 0;
7766 IADDR UNUSED pc
= abuf
->addr
;
7767 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
7770 SI opval
= GET_H_GR (FLD (f_GRj
));
7771 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
7772 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
7779 /* movfg: movfg$pack $FRintk,$GRj */
7782 SEM_FN_NAME (frvbf
,movfg
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7784 #define FLD(f) abuf->fields.sfmt_cmovfgd.f
7785 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7786 int UNUSED written
= 0;
7787 IADDR UNUSED pc
= abuf
->addr
;
7788 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
7791 SI opval
= GET_H_FR_INT (FLD (f_FRk
));
7792 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRj
), opval
);
7793 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
7800 /* movgfd: movgfd$pack $GRj,$FRintk */
7803 SEM_FN_NAME (frvbf
,movgfd
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7805 #define FLD(f) abuf->fields.sfmt_cmovgfd.f
7806 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7807 int UNUSED written
= 0;
7808 IADDR UNUSED pc
= abuf
->addr
;
7809 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
7811 if (EQSI (FLD (f_GRj
), 0)) {
7815 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
7816 written
|= (1 << 4);
7817 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
7821 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, ((FLD (f_FRk
)) + (1)), opval
);
7822 written
|= (1 << 5);
7823 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
7829 SI opval
= GET_H_GR (FLD (f_GRj
));
7830 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
7831 written
|= (1 << 4);
7832 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
7835 USI opval
= GET_H_GR (((FLD (f_GRj
)) + (1)));
7836 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, ((FLD (f_FRk
)) + (1)), opval
);
7837 written
|= (1 << 5);
7838 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
7843 abuf
->written
= written
;
7848 /* movfgd: movfgd$pack $FRintk,$GRj */
7851 SEM_FN_NAME (frvbf
,movfgd
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7853 #define FLD(f) abuf->fields.sfmt_cmovfgd.f
7854 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7855 int UNUSED written
= 0;
7856 IADDR UNUSED pc
= abuf
->addr
;
7857 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
7859 if (NESI (FLD (f_GRj
), 0)) {
7862 SI opval
= GET_H_FR_INT (FLD (f_FRk
));
7863 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRj
), opval
);
7864 written
|= (1 << 4);
7865 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
7868 USI opval
= GET_H_FR_INT (((FLD (f_FRk
)) + (1)));
7869 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, ((FLD (f_GRj
)) + (1)), opval
);
7870 written
|= (1 << 5);
7871 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
7876 abuf
->written
= written
;
7881 /* movgfq: movgfq$pack $GRj,$FRintk */
7884 SEM_FN_NAME (frvbf
,movgfq
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7886 #define FLD(f) abuf->fields.sfmt_movgfq.f
7887 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7888 int UNUSED written
= 0;
7889 IADDR UNUSED pc
= abuf
->addr
;
7890 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
7892 if (EQSI (FLD (f_GRj
), 0)) {
7896 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
7897 written
|= (1 << 6);
7898 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
7902 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, ((FLD (f_FRk
)) + (1)), opval
);
7903 written
|= (1 << 7);
7904 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
7908 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, ((FLD (f_FRk
)) + (2)), opval
);
7909 written
|= (1 << 8);
7910 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
7914 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, ((FLD (f_FRk
)) + (3)), opval
);
7915 written
|= (1 << 9);
7916 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
7922 SI opval
= GET_H_GR (FLD (f_GRj
));
7923 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
7924 written
|= (1 << 6);
7925 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
7928 USI opval
= GET_H_GR (((FLD (f_GRj
)) + (1)));
7929 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, ((FLD (f_FRk
)) + (1)), opval
);
7930 written
|= (1 << 7);
7931 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
7934 USI opval
= GET_H_GR (((FLD (f_GRj
)) + (2)));
7935 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, ((FLD (f_FRk
)) + (2)), opval
);
7936 written
|= (1 << 8);
7937 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
7940 USI opval
= GET_H_GR (((FLD (f_GRj
)) + (3)));
7941 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, ((FLD (f_FRk
)) + (3)), opval
);
7942 written
|= (1 << 9);
7943 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
7948 abuf
->written
= written
;
7953 /* movfgq: movfgq$pack $FRintk,$GRj */
7956 SEM_FN_NAME (frvbf
,movfgq
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
7958 #define FLD(f) abuf->fields.sfmt_movfgq.f
7959 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
7960 int UNUSED written
= 0;
7961 IADDR UNUSED pc
= abuf
->addr
;
7962 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
7964 if (NESI (FLD (f_GRj
), 0)) {
7967 SI opval
= GET_H_FR_INT (FLD (f_FRk
));
7968 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRj
), opval
);
7969 written
|= (1 << 6);
7970 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
7973 USI opval
= GET_H_FR_INT (((FLD (f_FRk
)) + (1)));
7974 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, ((FLD (f_GRj
)) + (1)), opval
);
7975 written
|= (1 << 7);
7976 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
7979 USI opval
= GET_H_FR_INT (((FLD (f_FRk
)) + (2)));
7980 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, ((FLD (f_GRj
)) + (2)), opval
);
7981 written
|= (1 << 8);
7982 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
7985 USI opval
= GET_H_FR_INT (((FLD (f_FRk
)) + (3)));
7986 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, ((FLD (f_GRj
)) + (3)), opval
);
7987 written
|= (1 << 9);
7988 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
7993 abuf
->written
= written
;
7998 /* cmovgf: cmovgf$pack $GRj,$FRintk,$CCi,$cond */
8001 SEM_FN_NAME (frvbf
,cmovgf
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
8003 #define FLD(f) abuf->fields.sfmt_cmovgfd.f
8004 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
8005 int UNUSED written
= 0;
8006 IADDR UNUSED pc
= abuf
->addr
;
8007 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
8009 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
8011 SI opval
= GET_H_GR (FLD (f_GRj
));
8012 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
8013 written
|= (1 << 3);
8014 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
8018 abuf
->written
= written
;
8023 /* cmovfg: cmovfg$pack $FRintk,$GRj,$CCi,$cond */
8026 SEM_FN_NAME (frvbf
,cmovfg
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
8028 #define FLD(f) abuf->fields.sfmt_cmovfgd.f
8029 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
8030 int UNUSED written
= 0;
8031 IADDR UNUSED pc
= abuf
->addr
;
8032 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
8034 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
8036 SI opval
= GET_H_FR_INT (FLD (f_FRk
));
8037 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRj
), opval
);
8038 written
|= (1 << 3);
8039 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
8043 abuf
->written
= written
;
8048 /* cmovgfd: cmovgfd$pack $GRj,$FRintk,$CCi,$cond */
8051 SEM_FN_NAME (frvbf
,cmovgfd
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
8053 #define FLD(f) abuf->fields.sfmt_cmovgfd.f
8054 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
8055 int UNUSED written
= 0;
8056 IADDR UNUSED pc
= abuf
->addr
;
8057 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
8059 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
8060 if (EQSI (FLD (f_GRj
), 0)) {
8064 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
8065 written
|= (1 << 6);
8066 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
8070 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, ((FLD (f_FRk
)) + (1)), opval
);
8071 written
|= (1 << 7);
8072 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
8078 SI opval
= GET_H_GR (FLD (f_GRj
));
8079 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
8080 written
|= (1 << 6);
8081 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
8084 USI opval
= GET_H_GR (((FLD (f_GRj
)) + (1)));
8085 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, ((FLD (f_FRk
)) + (1)), opval
);
8086 written
|= (1 << 7);
8087 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
8093 abuf
->written
= written
;
8098 /* cmovfgd: cmovfgd$pack $FRintk,$GRj,$CCi,$cond */
8101 SEM_FN_NAME (frvbf
,cmovfgd
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
8103 #define FLD(f) abuf->fields.sfmt_cmovfgd.f
8104 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
8105 int UNUSED written
= 0;
8106 IADDR UNUSED pc
= abuf
->addr
;
8107 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
8109 if (ANDIF (NESI (FLD (f_GRj
), 0), EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2)))) {
8112 SI opval
= GET_H_FR_INT (FLD (f_FRk
));
8113 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRj
), opval
);
8114 written
|= (1 << 6);
8115 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
8118 USI opval
= GET_H_FR_INT (((FLD (f_FRk
)) + (1)));
8119 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, ((FLD (f_GRj
)) + (1)), opval
);
8120 written
|= (1 << 7);
8121 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
8126 abuf
->written
= written
;
8131 /* movgs: movgs$pack $GRj,$spr */
8134 SEM_FN_NAME (frvbf
,movgs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
8136 #define FLD(f) abuf->fields.sfmt_movgs.f
8137 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
8138 int UNUSED written
= 0;
8139 IADDR UNUSED pc
= abuf
->addr
;
8140 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
8143 USI opval
= GET_H_GR (FLD (f_GRj
));
8144 sim_queue_fn_si_write (current_cpu
, frvbf_h_spr_set
, FLD (f_spr
), opval
);
8145 TRACE_RESULT (current_cpu
, abuf
, "spr", 'x', opval
);
8152 /* movsg: movsg$pack $spr,$GRj */
8155 SEM_FN_NAME (frvbf
,movsg
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
8157 #define FLD(f) abuf->fields.sfmt_movsg.f
8158 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
8159 int UNUSED written
= 0;
8160 IADDR UNUSED pc
= abuf
->addr
;
8161 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
8164 SI opval
= GET_H_SPR (FLD (f_spr
));
8165 sim_queue_fn_si_write (current_cpu
, frvbf_h_gr_set
, FLD (f_GRj
), opval
);
8166 TRACE_RESULT (current_cpu
, abuf
, "gr", 'x', opval
);
8173 /* bra: bra$pack $hint_taken$label16 */
8176 SEM_FN_NAME (frvbf
,bra
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
8178 #define FLD(f) abuf->fields.sfmt_fbne.f
8179 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
8180 int UNUSED written
= 0;
8181 IADDR UNUSED pc
= abuf
->addr
;
8182 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
8185 frvbf_model_branch (current_cpu
, FLD (i_label16
), FLD (f_hint
));
8187 USI opval
= FLD (i_label16
);
8188 sim_queue_pc_write (current_cpu
, opval
);
8189 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
8197 /* bno: bno$pack$hint_not_taken */
8200 SEM_FN_NAME (frvbf
,bno
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
8202 #define FLD(f) abuf->fields.sfmt_fbne.f
8203 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
8204 int UNUSED written
= 0;
8205 IADDR UNUSED pc
= abuf
->addr
;
8206 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
8208 frvbf_model_branch (current_cpu
, FLD (i_label16
), FLD (f_hint
));
8214 /* beq: beq$pack $ICCi_2,$hint,$label16 */
8217 SEM_FN_NAME (frvbf
,beq
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
8219 #define FLD(f) abuf->fields.sfmt_beq.f
8220 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
8221 int UNUSED written
= 0;
8222 IADDR UNUSED pc
= abuf
->addr
;
8223 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
8226 frvbf_model_branch (current_cpu
, FLD (i_label16
), FLD (f_hint
));
8227 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 4), 2))) {
8229 USI opval
= FLD (i_label16
);
8230 sim_queue_pc_write (current_cpu
, opval
);
8231 written
|= (1 << 3);
8232 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
8237 abuf
->written
= written
;
8242 /* bne: bne$pack $ICCi_2,$hint,$label16 */
8245 SEM_FN_NAME (frvbf
,bne
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
8247 #define FLD(f) abuf->fields.sfmt_beq.f
8248 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
8249 int UNUSED written
= 0;
8250 IADDR UNUSED pc
= abuf
->addr
;
8251 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
8254 frvbf_model_branch (current_cpu
, FLD (i_label16
), FLD (f_hint
));
8255 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 4), 2)))) {
8257 USI opval
= FLD (i_label16
);
8258 sim_queue_pc_write (current_cpu
, opval
);
8259 written
|= (1 << 3);
8260 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
8265 abuf
->written
= written
;
8270 /* ble: ble$pack $ICCi_2,$hint,$label16 */
8273 SEM_FN_NAME (frvbf
,ble
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
8275 #define FLD(f) abuf->fields.sfmt_beq.f
8276 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
8277 int UNUSED written
= 0;
8278 IADDR UNUSED pc
= abuf
->addr
;
8279 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
8282 frvbf_model_branch (current_cpu
, FLD (i_label16
), FLD (f_hint
));
8283 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 4), 2)), XORBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 2), 1))))) {
8285 USI opval
= FLD (i_label16
);
8286 sim_queue_pc_write (current_cpu
, opval
);
8287 written
|= (1 << 3);
8288 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
8293 abuf
->written
= written
;
8298 /* bgt: bgt$pack $ICCi_2,$hint,$label16 */
8301 SEM_FN_NAME (frvbf
,bgt
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
8303 #define FLD(f) abuf->fields.sfmt_beq.f
8304 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
8305 int UNUSED written
= 0;
8306 IADDR UNUSED pc
= abuf
->addr
;
8307 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
8310 frvbf_model_branch (current_cpu
, FLD (i_label16
), FLD (f_hint
));
8311 if (NOTBI (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 4), 2)), XORBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 2), 1)))))) {
8313 USI opval
= FLD (i_label16
);
8314 sim_queue_pc_write (current_cpu
, opval
);
8315 written
|= (1 << 3);
8316 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
8321 abuf
->written
= written
;
8326 /* blt: blt$pack $ICCi_2,$hint,$label16 */
8329 SEM_FN_NAME (frvbf
,blt
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
8331 #define FLD(f) abuf->fields.sfmt_beq.f
8332 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
8333 int UNUSED written
= 0;
8334 IADDR UNUSED pc
= abuf
->addr
;
8335 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
8338 frvbf_model_branch (current_cpu
, FLD (i_label16
), FLD (f_hint
));
8339 if (XORBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 2), 1)))) {
8341 USI opval
= FLD (i_label16
);
8342 sim_queue_pc_write (current_cpu
, opval
);
8343 written
|= (1 << 3);
8344 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
8349 abuf
->written
= written
;
8354 /* bge: bge$pack $ICCi_2,$hint,$label16 */
8357 SEM_FN_NAME (frvbf
,bge
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
8359 #define FLD(f) abuf->fields.sfmt_beq.f
8360 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
8361 int UNUSED written
= 0;
8362 IADDR UNUSED pc
= abuf
->addr
;
8363 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
8366 frvbf_model_branch (current_cpu
, FLD (i_label16
), FLD (f_hint
));
8367 if (NOTBI (XORBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 2), 1))))) {
8369 USI opval
= FLD (i_label16
);
8370 sim_queue_pc_write (current_cpu
, opval
);
8371 written
|= (1 << 3);
8372 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
8377 abuf
->written
= written
;
8382 /* bls: bls$pack $ICCi_2,$hint,$label16 */
8385 SEM_FN_NAME (frvbf
,bls
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
8387 #define FLD(f) abuf->fields.sfmt_beq.f
8388 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
8389 int UNUSED written
= 0;
8390 IADDR UNUSED pc
= abuf
->addr
;
8391 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
8394 frvbf_model_branch (current_cpu
, FLD (i_label16
), FLD (f_hint
));
8395 if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 4), 2)))) {
8397 USI opval
= FLD (i_label16
);
8398 sim_queue_pc_write (current_cpu
, opval
);
8399 written
|= (1 << 3);
8400 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
8405 abuf
->written
= written
;
8410 /* bhi: bhi$pack $ICCi_2,$hint,$label16 */
8413 SEM_FN_NAME (frvbf
,bhi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
8415 #define FLD(f) abuf->fields.sfmt_beq.f
8416 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
8417 int UNUSED written
= 0;
8418 IADDR UNUSED pc
= abuf
->addr
;
8419 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
8422 frvbf_model_branch (current_cpu
, FLD (i_label16
), FLD (f_hint
));
8423 if (NOTBI (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 4), 2))))) {
8425 USI opval
= FLD (i_label16
);
8426 sim_queue_pc_write (current_cpu
, opval
);
8427 written
|= (1 << 3);
8428 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
8433 abuf
->written
= written
;
8438 /* bc: bc$pack $ICCi_2,$hint,$label16 */
8441 SEM_FN_NAME (frvbf
,bc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
8443 #define FLD(f) abuf->fields.sfmt_beq.f
8444 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
8445 int UNUSED written
= 0;
8446 IADDR UNUSED pc
= abuf
->addr
;
8447 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
8450 frvbf_model_branch (current_cpu
, FLD (i_label16
), FLD (f_hint
));
8451 if (TRUNCQIBI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 1))) {
8453 USI opval
= FLD (i_label16
);
8454 sim_queue_pc_write (current_cpu
, opval
);
8455 written
|= (1 << 3);
8456 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
8461 abuf
->written
= written
;
8466 /* bnc: bnc$pack $ICCi_2,$hint,$label16 */
8469 SEM_FN_NAME (frvbf
,bnc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
8471 #define FLD(f) abuf->fields.sfmt_beq.f
8472 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
8473 int UNUSED written
= 0;
8474 IADDR UNUSED pc
= abuf
->addr
;
8475 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
8478 frvbf_model_branch (current_cpu
, FLD (i_label16
), FLD (f_hint
));
8479 if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 1)))) {
8481 USI opval
= FLD (i_label16
);
8482 sim_queue_pc_write (current_cpu
, opval
);
8483 written
|= (1 << 3);
8484 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
8489 abuf
->written
= written
;
8494 /* bn: bn$pack $ICCi_2,$hint,$label16 */
8497 SEM_FN_NAME (frvbf
,bn
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
8499 #define FLD(f) abuf->fields.sfmt_beq.f
8500 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
8501 int UNUSED written
= 0;
8502 IADDR UNUSED pc
= abuf
->addr
;
8503 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
8506 frvbf_model_branch (current_cpu
, FLD (i_label16
), FLD (f_hint
));
8507 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 8), 3))) {
8509 USI opval
= FLD (i_label16
);
8510 sim_queue_pc_write (current_cpu
, opval
);
8511 written
|= (1 << 3);
8512 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
8517 abuf
->written
= written
;
8522 /* bp: bp$pack $ICCi_2,$hint,$label16 */
8525 SEM_FN_NAME (frvbf
,bp
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
8527 #define FLD(f) abuf->fields.sfmt_beq.f
8528 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
8529 int UNUSED written
= 0;
8530 IADDR UNUSED pc
= abuf
->addr
;
8531 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
8534 frvbf_model_branch (current_cpu
, FLD (i_label16
), FLD (f_hint
));
8535 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 8), 3)))) {
8537 USI opval
= FLD (i_label16
);
8538 sim_queue_pc_write (current_cpu
, opval
);
8539 written
|= (1 << 3);
8540 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
8545 abuf
->written
= written
;
8550 /* bv: bv$pack $ICCi_2,$hint,$label16 */
8553 SEM_FN_NAME (frvbf
,bv
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
8555 #define FLD(f) abuf->fields.sfmt_beq.f
8556 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
8557 int UNUSED written
= 0;
8558 IADDR UNUSED pc
= abuf
->addr
;
8559 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
8562 frvbf_model_branch (current_cpu
, FLD (i_label16
), FLD (f_hint
));
8563 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 2), 1))) {
8565 USI opval
= FLD (i_label16
);
8566 sim_queue_pc_write (current_cpu
, opval
);
8567 written
|= (1 << 3);
8568 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
8573 abuf
->written
= written
;
8578 /* bnv: bnv$pack $ICCi_2,$hint,$label16 */
8581 SEM_FN_NAME (frvbf
,bnv
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
8583 #define FLD(f) abuf->fields.sfmt_beq.f
8584 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
8585 int UNUSED written
= 0;
8586 IADDR UNUSED pc
= abuf
->addr
;
8587 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
8590 frvbf_model_branch (current_cpu
, FLD (i_label16
), FLD (f_hint
));
8591 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 2), 1)))) {
8593 USI opval
= FLD (i_label16
);
8594 sim_queue_pc_write (current_cpu
, opval
);
8595 written
|= (1 << 3);
8596 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
8601 abuf
->written
= written
;
8606 /* fbra: fbra$pack $hint_taken$label16 */
8609 SEM_FN_NAME (frvbf
,fbra
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
8611 #define FLD(f) abuf->fields.sfmt_fbne.f
8612 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
8613 int UNUSED written
= 0;
8614 IADDR UNUSED pc
= abuf
->addr
;
8615 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
8618 frvbf_model_branch (current_cpu
, FLD (i_label16
), FLD (f_hint
));
8620 USI opval
= FLD (i_label16
);
8621 sim_queue_pc_write (current_cpu
, opval
);
8622 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
8630 /* fbno: fbno$pack$hint_not_taken */
8633 SEM_FN_NAME (frvbf
,fbno
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
8635 #define FLD(f) abuf->fields.sfmt_fbne.f
8636 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
8637 int UNUSED written
= 0;
8638 IADDR UNUSED pc
= abuf
->addr
;
8639 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
8641 frvbf_model_branch (current_cpu
, FLD (i_label16
), FLD (f_hint
));
8647 /* fbne: fbne$pack $FCCi_2,$hint,$label16 */
8650 SEM_FN_NAME (frvbf
,fbne
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
8652 #define FLD(f) abuf->fields.sfmt_fbne.f
8653 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
8654 int UNUSED written
= 0;
8655 IADDR UNUSED pc
= abuf
->addr
;
8656 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
8659 frvbf_model_branch (current_cpu
, FLD (i_label16
), FLD (f_hint
));
8660 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 4), 2)), ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 1))))) {
8662 USI opval
= FLD (i_label16
);
8663 sim_queue_pc_write (current_cpu
, opval
);
8664 written
|= (1 << 3);
8665 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
8670 abuf
->written
= written
;
8675 /* fbeq: fbeq$pack $FCCi_2,$hint,$label16 */
8678 SEM_FN_NAME (frvbf
,fbeq
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
8680 #define FLD(f) abuf->fields.sfmt_fbne.f
8681 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
8682 int UNUSED written
= 0;
8683 IADDR UNUSED pc
= abuf
->addr
;
8684 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
8687 frvbf_model_branch (current_cpu
, FLD (i_label16
), FLD (f_hint
));
8688 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 8), 3))) {
8690 USI opval
= FLD (i_label16
);
8691 sim_queue_pc_write (current_cpu
, opval
);
8692 written
|= (1 << 3);
8693 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
8698 abuf
->written
= written
;
8703 /* fblg: fblg$pack $FCCi_2,$hint,$label16 */
8706 SEM_FN_NAME (frvbf
,fblg
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
8708 #define FLD(f) abuf->fields.sfmt_fbne.f
8709 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
8710 int UNUSED written
= 0;
8711 IADDR UNUSED pc
= abuf
->addr
;
8712 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
8715 frvbf_model_branch (current_cpu
, FLD (i_label16
), FLD (f_hint
));
8716 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 4), 2)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 2), 1)))) {
8718 USI opval
= FLD (i_label16
);
8719 sim_queue_pc_write (current_cpu
, opval
);
8720 written
|= (1 << 3);
8721 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
8726 abuf
->written
= written
;
8731 /* fbue: fbue$pack $FCCi_2,$hint,$label16 */
8734 SEM_FN_NAME (frvbf
,fbue
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
8736 #define FLD(f) abuf->fields.sfmt_fbne.f
8737 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
8738 int UNUSED written
= 0;
8739 IADDR UNUSED pc
= abuf
->addr
;
8740 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
8743 frvbf_model_branch (current_cpu
, FLD (i_label16
), FLD (f_hint
));
8744 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 1)))) {
8746 USI opval
= FLD (i_label16
);
8747 sim_queue_pc_write (current_cpu
, opval
);
8748 written
|= (1 << 3);
8749 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
8754 abuf
->written
= written
;
8759 /* fbul: fbul$pack $FCCi_2,$hint,$label16 */
8762 SEM_FN_NAME (frvbf
,fbul
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
8764 #define FLD(f) abuf->fields.sfmt_fbne.f
8765 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
8766 int UNUSED written
= 0;
8767 IADDR UNUSED pc
= abuf
->addr
;
8768 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
8771 frvbf_model_branch (current_cpu
, FLD (i_label16
), FLD (f_hint
));
8772 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 1)))) {
8774 USI opval
= FLD (i_label16
);
8775 sim_queue_pc_write (current_cpu
, opval
);
8776 written
|= (1 << 3);
8777 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
8782 abuf
->written
= written
;
8787 /* fbge: fbge$pack $FCCi_2,$hint,$label16 */
8790 SEM_FN_NAME (frvbf
,fbge
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
8792 #define FLD(f) abuf->fields.sfmt_fbne.f
8793 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
8794 int UNUSED written
= 0;
8795 IADDR UNUSED pc
= abuf
->addr
;
8796 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
8799 frvbf_model_branch (current_cpu
, FLD (i_label16
), FLD (f_hint
));
8800 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 2), 1)))) {
8802 USI opval
= FLD (i_label16
);
8803 sim_queue_pc_write (current_cpu
, opval
);
8804 written
|= (1 << 3);
8805 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
8810 abuf
->written
= written
;
8815 /* fblt: fblt$pack $FCCi_2,$hint,$label16 */
8818 SEM_FN_NAME (frvbf
,fblt
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
8820 #define FLD(f) abuf->fields.sfmt_fbne.f
8821 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
8822 int UNUSED written
= 0;
8823 IADDR UNUSED pc
= abuf
->addr
;
8824 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
8827 frvbf_model_branch (current_cpu
, FLD (i_label16
), FLD (f_hint
));
8828 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 4), 2))) {
8830 USI opval
= FLD (i_label16
);
8831 sim_queue_pc_write (current_cpu
, opval
);
8832 written
|= (1 << 3);
8833 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
8838 abuf
->written
= written
;
8843 /* fbuge: fbuge$pack $FCCi_2,$hint,$label16 */
8846 SEM_FN_NAME (frvbf
,fbuge
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
8848 #define FLD(f) abuf->fields.sfmt_fbne.f
8849 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
8850 int UNUSED written
= 0;
8851 IADDR UNUSED pc
= abuf
->addr
;
8852 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
8855 frvbf_model_branch (current_cpu
, FLD (i_label16
), FLD (f_hint
));
8856 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 8), 3)), ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 1))))) {
8858 USI opval
= FLD (i_label16
);
8859 sim_queue_pc_write (current_cpu
, opval
);
8860 written
|= (1 << 3);
8861 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
8866 abuf
->written
= written
;
8871 /* fbug: fbug$pack $FCCi_2,$hint,$label16 */
8874 SEM_FN_NAME (frvbf
,fbug
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
8876 #define FLD(f) abuf->fields.sfmt_fbne.f
8877 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
8878 int UNUSED written
= 0;
8879 IADDR UNUSED pc
= abuf
->addr
;
8880 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
8883 frvbf_model_branch (current_cpu
, FLD (i_label16
), FLD (f_hint
));
8884 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 1)))) {
8886 USI opval
= FLD (i_label16
);
8887 sim_queue_pc_write (current_cpu
, opval
);
8888 written
|= (1 << 3);
8889 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
8894 abuf
->written
= written
;
8899 /* fble: fble$pack $FCCi_2,$hint,$label16 */
8902 SEM_FN_NAME (frvbf
,fble
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
8904 #define FLD(f) abuf->fields.sfmt_fbne.f
8905 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
8906 int UNUSED written
= 0;
8907 IADDR UNUSED pc
= abuf
->addr
;
8908 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
8911 frvbf_model_branch (current_cpu
, FLD (i_label16
), FLD (f_hint
));
8912 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 4), 2)))) {
8914 USI opval
= FLD (i_label16
);
8915 sim_queue_pc_write (current_cpu
, opval
);
8916 written
|= (1 << 3);
8917 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
8922 abuf
->written
= written
;
8927 /* fbgt: fbgt$pack $FCCi_2,$hint,$label16 */
8930 SEM_FN_NAME (frvbf
,fbgt
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
8932 #define FLD(f) abuf->fields.sfmt_fbne.f
8933 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
8934 int UNUSED written
= 0;
8935 IADDR UNUSED pc
= abuf
->addr
;
8936 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
8939 frvbf_model_branch (current_cpu
, FLD (i_label16
), FLD (f_hint
));
8940 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 2), 1))) {
8942 USI opval
= FLD (i_label16
);
8943 sim_queue_pc_write (current_cpu
, opval
);
8944 written
|= (1 << 3);
8945 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
8950 abuf
->written
= written
;
8955 /* fbule: fbule$pack $FCCi_2,$hint,$label16 */
8958 SEM_FN_NAME (frvbf
,fbule
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
8960 #define FLD(f) abuf->fields.sfmt_fbne.f
8961 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
8962 int UNUSED written
= 0;
8963 IADDR UNUSED pc
= abuf
->addr
;
8964 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
8967 frvbf_model_branch (current_cpu
, FLD (i_label16
), FLD (f_hint
));
8968 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 8), 3)), ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 1))))) {
8970 USI opval
= FLD (i_label16
);
8971 sim_queue_pc_write (current_cpu
, opval
);
8972 written
|= (1 << 3);
8973 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
8978 abuf
->written
= written
;
8983 /* fbu: fbu$pack $FCCi_2,$hint,$label16 */
8986 SEM_FN_NAME (frvbf
,fbu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
8988 #define FLD(f) abuf->fields.sfmt_fbne.f
8989 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
8990 int UNUSED written
= 0;
8991 IADDR UNUSED pc
= abuf
->addr
;
8992 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
8995 frvbf_model_branch (current_cpu
, FLD (i_label16
), FLD (f_hint
));
8996 if (TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 1))) {
8998 USI opval
= FLD (i_label16
);
8999 sim_queue_pc_write (current_cpu
, opval
);
9000 written
|= (1 << 3);
9001 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
9006 abuf
->written
= written
;
9011 /* fbo: fbo$pack $FCCi_2,$hint,$label16 */
9014 SEM_FN_NAME (frvbf
,fbo
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
9016 #define FLD(f) abuf->fields.sfmt_fbne.f
9017 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
9018 int UNUSED written
= 0;
9019 IADDR UNUSED pc
= abuf
->addr
;
9020 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
9023 frvbf_model_branch (current_cpu
, FLD (i_label16
), FLD (f_hint
));
9024 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 8), 3)), ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 4), 2)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 2), 1))))) {
9026 USI opval
= FLD (i_label16
);
9027 sim_queue_pc_write (current_cpu
, opval
);
9028 written
|= (1 << 3);
9029 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
9034 abuf
->written
= written
;
9039 /* bctrlr: bctrlr$pack $ccond,$hint */
9042 SEM_FN_NAME (frvbf
,bctrlr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
9044 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9045 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
9046 int UNUSED written
= 0;
9047 IADDR UNUSED pc
= abuf
->addr
;
9048 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
9051 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
9054 tmp_tmp
= SUBSI (GET_H_SPR (((UINT
) 273)), 1);
9056 USI opval
= tmp_tmp
;
9057 sim_queue_fn_si_write (current_cpu
, frvbf_h_spr_set
, ((UINT
) 273), opval
);
9058 TRACE_RESULT (current_cpu
, abuf
, "spr", 'x', opval
);
9060 if (EQSI (FLD (f_ccond
), 0)) {
9061 if (NESI (tmp_tmp
, 0)) {
9063 USI opval
= GET_H_SPR (((UINT
) 272));
9064 sim_queue_pc_write (current_cpu
, opval
);
9065 written
|= (1 << 5);
9066 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
9070 if (EQSI (tmp_tmp
, 0)) {
9072 USI opval
= GET_H_SPR (((UINT
) 272));
9073 sim_queue_pc_write (current_cpu
, opval
);
9074 written
|= (1 << 5);
9075 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
9082 abuf
->written
= written
;
9087 /* bralr: bralr$pack$hint_taken */
9090 SEM_FN_NAME (frvbf
,bralr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
9092 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9093 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
9094 int UNUSED written
= 0;
9095 IADDR UNUSED pc
= abuf
->addr
;
9096 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
9099 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
9101 USI opval
= GET_H_SPR (((UINT
) 272));
9102 sim_queue_pc_write (current_cpu
, opval
);
9103 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
9111 /* bnolr: bnolr$pack$hint_not_taken */
9114 SEM_FN_NAME (frvbf
,bnolr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
9116 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9117 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
9118 int UNUSED written
= 0;
9119 IADDR UNUSED pc
= abuf
->addr
;
9120 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
9122 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
9128 /* beqlr: beqlr$pack $ICCi_2,$hint */
9131 SEM_FN_NAME (frvbf
,beqlr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
9133 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9134 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
9135 int UNUSED written
= 0;
9136 IADDR UNUSED pc
= abuf
->addr
;
9137 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
9140 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
9141 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 4), 2))) {
9143 USI opval
= GET_H_SPR (((UINT
) 272));
9144 sim_queue_pc_write (current_cpu
, opval
);
9145 written
|= (1 << 3);
9146 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
9151 abuf
->written
= written
;
9156 /* bnelr: bnelr$pack $ICCi_2,$hint */
9159 SEM_FN_NAME (frvbf
,bnelr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
9161 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9162 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
9163 int UNUSED written
= 0;
9164 IADDR UNUSED pc
= abuf
->addr
;
9165 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
9168 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
9169 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 4), 2)))) {
9171 USI opval
= GET_H_SPR (((UINT
) 272));
9172 sim_queue_pc_write (current_cpu
, opval
);
9173 written
|= (1 << 3);
9174 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
9179 abuf
->written
= written
;
9184 /* blelr: blelr$pack $ICCi_2,$hint */
9187 SEM_FN_NAME (frvbf
,blelr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
9189 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9190 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
9191 int UNUSED written
= 0;
9192 IADDR UNUSED pc
= abuf
->addr
;
9193 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
9196 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
9197 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 4), 2)), XORBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 2), 1))))) {
9199 USI opval
= GET_H_SPR (((UINT
) 272));
9200 sim_queue_pc_write (current_cpu
, opval
);
9201 written
|= (1 << 3);
9202 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
9207 abuf
->written
= written
;
9212 /* bgtlr: bgtlr$pack $ICCi_2,$hint */
9215 SEM_FN_NAME (frvbf
,bgtlr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
9217 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9218 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
9219 int UNUSED written
= 0;
9220 IADDR UNUSED pc
= abuf
->addr
;
9221 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
9224 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
9225 if (NOTBI (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 4), 2)), XORBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 2), 1)))))) {
9227 USI opval
= GET_H_SPR (((UINT
) 272));
9228 sim_queue_pc_write (current_cpu
, opval
);
9229 written
|= (1 << 3);
9230 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
9235 abuf
->written
= written
;
9240 /* bltlr: bltlr$pack $ICCi_2,$hint */
9243 SEM_FN_NAME (frvbf
,bltlr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
9245 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9246 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
9247 int UNUSED written
= 0;
9248 IADDR UNUSED pc
= abuf
->addr
;
9249 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
9252 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
9253 if (XORBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 2), 1)))) {
9255 USI opval
= GET_H_SPR (((UINT
) 272));
9256 sim_queue_pc_write (current_cpu
, opval
);
9257 written
|= (1 << 3);
9258 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
9263 abuf
->written
= written
;
9268 /* bgelr: bgelr$pack $ICCi_2,$hint */
9271 SEM_FN_NAME (frvbf
,bgelr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
9273 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9274 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
9275 int UNUSED written
= 0;
9276 IADDR UNUSED pc
= abuf
->addr
;
9277 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
9280 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
9281 if (NOTBI (XORBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 2), 1))))) {
9283 USI opval
= GET_H_SPR (((UINT
) 272));
9284 sim_queue_pc_write (current_cpu
, opval
);
9285 written
|= (1 << 3);
9286 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
9291 abuf
->written
= written
;
9296 /* blslr: blslr$pack $ICCi_2,$hint */
9299 SEM_FN_NAME (frvbf
,blslr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
9301 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9302 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
9303 int UNUSED written
= 0;
9304 IADDR UNUSED pc
= abuf
->addr
;
9305 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
9308 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
9309 if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 4), 2)))) {
9311 USI opval
= GET_H_SPR (((UINT
) 272));
9312 sim_queue_pc_write (current_cpu
, opval
);
9313 written
|= (1 << 3);
9314 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
9319 abuf
->written
= written
;
9324 /* bhilr: bhilr$pack $ICCi_2,$hint */
9327 SEM_FN_NAME (frvbf
,bhilr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
9329 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9330 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
9331 int UNUSED written
= 0;
9332 IADDR UNUSED pc
= abuf
->addr
;
9333 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
9336 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
9337 if (NOTBI (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 4), 2))))) {
9339 USI opval
= GET_H_SPR (((UINT
) 272));
9340 sim_queue_pc_write (current_cpu
, opval
);
9341 written
|= (1 << 3);
9342 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
9347 abuf
->written
= written
;
9352 /* bclr: bclr$pack $ICCi_2,$hint */
9355 SEM_FN_NAME (frvbf
,bclr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
9357 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9358 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
9359 int UNUSED written
= 0;
9360 IADDR UNUSED pc
= abuf
->addr
;
9361 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
9364 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
9365 if (TRUNCQIBI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 1))) {
9367 USI opval
= GET_H_SPR (((UINT
) 272));
9368 sim_queue_pc_write (current_cpu
, opval
);
9369 written
|= (1 << 3);
9370 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
9375 abuf
->written
= written
;
9380 /* bnclr: bnclr$pack $ICCi_2,$hint */
9383 SEM_FN_NAME (frvbf
,bnclr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
9385 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9386 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
9387 int UNUSED written
= 0;
9388 IADDR UNUSED pc
= abuf
->addr
;
9389 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
9392 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
9393 if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 1)))) {
9395 USI opval
= GET_H_SPR (((UINT
) 272));
9396 sim_queue_pc_write (current_cpu
, opval
);
9397 written
|= (1 << 3);
9398 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
9403 abuf
->written
= written
;
9408 /* bnlr: bnlr$pack $ICCi_2,$hint */
9411 SEM_FN_NAME (frvbf
,bnlr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
9413 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9414 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
9415 int UNUSED written
= 0;
9416 IADDR UNUSED pc
= abuf
->addr
;
9417 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
9420 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
9421 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 8), 3))) {
9423 USI opval
= GET_H_SPR (((UINT
) 272));
9424 sim_queue_pc_write (current_cpu
, opval
);
9425 written
|= (1 << 3);
9426 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
9431 abuf
->written
= written
;
9436 /* bplr: bplr$pack $ICCi_2,$hint */
9439 SEM_FN_NAME (frvbf
,bplr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
9441 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9442 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
9443 int UNUSED written
= 0;
9444 IADDR UNUSED pc
= abuf
->addr
;
9445 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
9448 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
9449 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 8), 3)))) {
9451 USI opval
= GET_H_SPR (((UINT
) 272));
9452 sim_queue_pc_write (current_cpu
, opval
);
9453 written
|= (1 << 3);
9454 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
9459 abuf
->written
= written
;
9464 /* bvlr: bvlr$pack $ICCi_2,$hint */
9467 SEM_FN_NAME (frvbf
,bvlr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
9469 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9470 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
9471 int UNUSED written
= 0;
9472 IADDR UNUSED pc
= abuf
->addr
;
9473 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
9476 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
9477 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 2), 1))) {
9479 USI opval
= GET_H_SPR (((UINT
) 272));
9480 sim_queue_pc_write (current_cpu
, opval
);
9481 written
|= (1 << 3);
9482 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
9487 abuf
->written
= written
;
9492 /* bnvlr: bnvlr$pack $ICCi_2,$hint */
9495 SEM_FN_NAME (frvbf
,bnvlr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
9497 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9498 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
9499 int UNUSED written
= 0;
9500 IADDR UNUSED pc
= abuf
->addr
;
9501 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
9504 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
9505 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 2), 1)))) {
9507 USI opval
= GET_H_SPR (((UINT
) 272));
9508 sim_queue_pc_write (current_cpu
, opval
);
9509 written
|= (1 << 3);
9510 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
9515 abuf
->written
= written
;
9520 /* fbralr: fbralr$pack$hint_taken */
9523 SEM_FN_NAME (frvbf
,fbralr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
9525 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9526 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
9527 int UNUSED written
= 0;
9528 IADDR UNUSED pc
= abuf
->addr
;
9529 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
9532 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
9534 USI opval
= GET_H_SPR (((UINT
) 272));
9535 sim_queue_pc_write (current_cpu
, opval
);
9536 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
9544 /* fbnolr: fbnolr$pack$hint_not_taken */
9547 SEM_FN_NAME (frvbf
,fbnolr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
9549 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9550 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
9551 int UNUSED written
= 0;
9552 IADDR UNUSED pc
= abuf
->addr
;
9553 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
9555 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
9561 /* fbeqlr: fbeqlr$pack $FCCi_2,$hint */
9564 SEM_FN_NAME (frvbf
,fbeqlr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
9566 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9567 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
9568 int UNUSED written
= 0;
9569 IADDR UNUSED pc
= abuf
->addr
;
9570 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
9573 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
9574 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 8), 3))) {
9576 USI opval
= GET_H_SPR (((UINT
) 272));
9577 sim_queue_pc_write (current_cpu
, opval
);
9578 written
|= (1 << 3);
9579 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
9584 abuf
->written
= written
;
9589 /* fbnelr: fbnelr$pack $FCCi_2,$hint */
9592 SEM_FN_NAME (frvbf
,fbnelr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
9594 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9595 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
9596 int UNUSED written
= 0;
9597 IADDR UNUSED pc
= abuf
->addr
;
9598 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
9601 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
9602 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 4), 2)), ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 1))))) {
9604 USI opval
= GET_H_SPR (((UINT
) 272));
9605 sim_queue_pc_write (current_cpu
, opval
);
9606 written
|= (1 << 3);
9607 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
9612 abuf
->written
= written
;
9617 /* fblglr: fblglr$pack $FCCi_2,$hint */
9620 SEM_FN_NAME (frvbf
,fblglr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
9622 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9623 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
9624 int UNUSED written
= 0;
9625 IADDR UNUSED pc
= abuf
->addr
;
9626 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
9629 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
9630 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 4), 2)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 2), 1)))) {
9632 USI opval
= GET_H_SPR (((UINT
) 272));
9633 sim_queue_pc_write (current_cpu
, opval
);
9634 written
|= (1 << 3);
9635 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
9640 abuf
->written
= written
;
9645 /* fbuelr: fbuelr$pack $FCCi_2,$hint */
9648 SEM_FN_NAME (frvbf
,fbuelr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
9650 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9651 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
9652 int UNUSED written
= 0;
9653 IADDR UNUSED pc
= abuf
->addr
;
9654 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
9657 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
9658 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 1)))) {
9660 USI opval
= GET_H_SPR (((UINT
) 272));
9661 sim_queue_pc_write (current_cpu
, opval
);
9662 written
|= (1 << 3);
9663 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
9668 abuf
->written
= written
;
9673 /* fbullr: fbullr$pack $FCCi_2,$hint */
9676 SEM_FN_NAME (frvbf
,fbullr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
9678 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9679 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
9680 int UNUSED written
= 0;
9681 IADDR UNUSED pc
= abuf
->addr
;
9682 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
9685 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
9686 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 1)))) {
9688 USI opval
= GET_H_SPR (((UINT
) 272));
9689 sim_queue_pc_write (current_cpu
, opval
);
9690 written
|= (1 << 3);
9691 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
9696 abuf
->written
= written
;
9701 /* fbgelr: fbgelr$pack $FCCi_2,$hint */
9704 SEM_FN_NAME (frvbf
,fbgelr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
9706 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9707 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
9708 int UNUSED written
= 0;
9709 IADDR UNUSED pc
= abuf
->addr
;
9710 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
9713 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
9714 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 2), 1)))) {
9716 USI opval
= GET_H_SPR (((UINT
) 272));
9717 sim_queue_pc_write (current_cpu
, opval
);
9718 written
|= (1 << 3);
9719 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
9724 abuf
->written
= written
;
9729 /* fbltlr: fbltlr$pack $FCCi_2,$hint */
9732 SEM_FN_NAME (frvbf
,fbltlr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
9734 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9735 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
9736 int UNUSED written
= 0;
9737 IADDR UNUSED pc
= abuf
->addr
;
9738 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
9741 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
9742 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 4), 2))) {
9744 USI opval
= GET_H_SPR (((UINT
) 272));
9745 sim_queue_pc_write (current_cpu
, opval
);
9746 written
|= (1 << 3);
9747 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
9752 abuf
->written
= written
;
9757 /* fbugelr: fbugelr$pack $FCCi_2,$hint */
9760 SEM_FN_NAME (frvbf
,fbugelr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
9762 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9763 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
9764 int UNUSED written
= 0;
9765 IADDR UNUSED pc
= abuf
->addr
;
9766 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
9769 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
9770 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 8), 3)), ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 1))))) {
9772 USI opval
= GET_H_SPR (((UINT
) 272));
9773 sim_queue_pc_write (current_cpu
, opval
);
9774 written
|= (1 << 3);
9775 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
9780 abuf
->written
= written
;
9785 /* fbuglr: fbuglr$pack $FCCi_2,$hint */
9788 SEM_FN_NAME (frvbf
,fbuglr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
9790 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9791 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
9792 int UNUSED written
= 0;
9793 IADDR UNUSED pc
= abuf
->addr
;
9794 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
9797 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
9798 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 1)))) {
9800 USI opval
= GET_H_SPR (((UINT
) 272));
9801 sim_queue_pc_write (current_cpu
, opval
);
9802 written
|= (1 << 3);
9803 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
9808 abuf
->written
= written
;
9813 /* fblelr: fblelr$pack $FCCi_2,$hint */
9816 SEM_FN_NAME (frvbf
,fblelr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
9818 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9819 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
9820 int UNUSED written
= 0;
9821 IADDR UNUSED pc
= abuf
->addr
;
9822 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
9825 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
9826 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 4), 2)))) {
9828 USI opval
= GET_H_SPR (((UINT
) 272));
9829 sim_queue_pc_write (current_cpu
, opval
);
9830 written
|= (1 << 3);
9831 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
9836 abuf
->written
= written
;
9841 /* fbgtlr: fbgtlr$pack $FCCi_2,$hint */
9844 SEM_FN_NAME (frvbf
,fbgtlr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
9846 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9847 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
9848 int UNUSED written
= 0;
9849 IADDR UNUSED pc
= abuf
->addr
;
9850 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
9853 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
9854 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 2), 1))) {
9856 USI opval
= GET_H_SPR (((UINT
) 272));
9857 sim_queue_pc_write (current_cpu
, opval
);
9858 written
|= (1 << 3);
9859 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
9864 abuf
->written
= written
;
9869 /* fbulelr: fbulelr$pack $FCCi_2,$hint */
9872 SEM_FN_NAME (frvbf
,fbulelr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
9874 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9875 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
9876 int UNUSED written
= 0;
9877 IADDR UNUSED pc
= abuf
->addr
;
9878 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
9881 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
9882 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 8), 3)), ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 1))))) {
9884 USI opval
= GET_H_SPR (((UINT
) 272));
9885 sim_queue_pc_write (current_cpu
, opval
);
9886 written
|= (1 << 3);
9887 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
9892 abuf
->written
= written
;
9897 /* fbulr: fbulr$pack $FCCi_2,$hint */
9900 SEM_FN_NAME (frvbf
,fbulr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
9902 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9903 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
9904 int UNUSED written
= 0;
9905 IADDR UNUSED pc
= abuf
->addr
;
9906 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
9909 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
9910 if (TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 1))) {
9912 USI opval
= GET_H_SPR (((UINT
) 272));
9913 sim_queue_pc_write (current_cpu
, opval
);
9914 written
|= (1 << 3);
9915 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
9920 abuf
->written
= written
;
9925 /* fbolr: fbolr$pack $FCCi_2,$hint */
9928 SEM_FN_NAME (frvbf
,fbolr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
9930 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9931 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
9932 int UNUSED written
= 0;
9933 IADDR UNUSED pc
= abuf
->addr
;
9934 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
9937 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
9938 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 8), 3)), ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 4), 2)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 2), 1))))) {
9940 USI opval
= GET_H_SPR (((UINT
) 272));
9941 sim_queue_pc_write (current_cpu
, opval
);
9942 written
|= (1 << 3);
9943 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
9948 abuf
->written
= written
;
9953 /* bcralr: bcralr$pack $ccond$hint_taken */
9956 SEM_FN_NAME (frvbf
,bcralr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
9958 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9959 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
9960 int UNUSED written
= 0;
9961 IADDR UNUSED pc
= abuf
->addr
;
9962 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
9965 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
9968 tmp_tmp
= SUBSI (GET_H_SPR (((UINT
) 273)), 1);
9970 USI opval
= tmp_tmp
;
9971 sim_queue_fn_si_write (current_cpu
, frvbf_h_spr_set
, ((UINT
) 273), opval
);
9972 TRACE_RESULT (current_cpu
, abuf
, "spr", 'x', opval
);
9974 if (EQSI (FLD (f_ccond
), 0)) {
9975 if (NESI (tmp_tmp
, 0)) {
9977 USI opval
= GET_H_SPR (((UINT
) 272));
9978 sim_queue_pc_write (current_cpu
, opval
);
9979 written
|= (1 << 5);
9980 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
9984 if (EQSI (tmp_tmp
, 0)) {
9986 USI opval
= GET_H_SPR (((UINT
) 272));
9987 sim_queue_pc_write (current_cpu
, opval
);
9988 written
|= (1 << 5);
9989 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
9996 abuf
->written
= written
;
10001 /* bcnolr: bcnolr$pack$hint_not_taken */
10004 SEM_FN_NAME (frvbf
,bcnolr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
10006 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10007 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
10008 int UNUSED written
= 0;
10009 IADDR UNUSED pc
= abuf
->addr
;
10010 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
10013 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
10016 tmp_tmp
= SUBSI (GET_H_SPR (((UINT
) 273)), 1);
10018 USI opval
= tmp_tmp
;
10019 sim_queue_fn_si_write (current_cpu
, frvbf_h_spr_set
, ((UINT
) 273), opval
);
10020 TRACE_RESULT (current_cpu
, abuf
, "spr", 'x', opval
);
10022 ((void) 0); /*nop*/
10030 /* bceqlr: bceqlr$pack $ICCi_2,$ccond,$hint */
10033 SEM_FN_NAME (frvbf
,bceqlr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
10035 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10036 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
10037 int UNUSED written
= 0;
10038 IADDR UNUSED pc
= abuf
->addr
;
10039 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
10042 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
10045 tmp_tmp
= SUBSI (GET_H_SPR (((UINT
) 273)), 1);
10047 USI opval
= tmp_tmp
;
10048 sim_queue_fn_si_write (current_cpu
, frvbf_h_spr_set
, ((UINT
) 273), opval
);
10049 TRACE_RESULT (current_cpu
, abuf
, "spr", 'x', opval
);
10051 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 4), 2))) {
10052 if (EQSI (FLD (f_ccond
), 0)) {
10053 if (NESI (tmp_tmp
, 0)) {
10055 USI opval
= GET_H_SPR (((UINT
) 272));
10056 sim_queue_pc_write (current_cpu
, opval
);
10057 written
|= (1 << 6);
10058 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
10062 if (EQSI (tmp_tmp
, 0)) {
10064 USI opval
= GET_H_SPR (((UINT
) 272));
10065 sim_queue_pc_write (current_cpu
, opval
);
10066 written
|= (1 << 6);
10067 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
10075 abuf
->written
= written
;
10080 /* bcnelr: bcnelr$pack $ICCi_2,$ccond,$hint */
10083 SEM_FN_NAME (frvbf
,bcnelr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
10085 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10086 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
10087 int UNUSED written
= 0;
10088 IADDR UNUSED pc
= abuf
->addr
;
10089 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
10092 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
10095 tmp_tmp
= SUBSI (GET_H_SPR (((UINT
) 273)), 1);
10097 USI opval
= tmp_tmp
;
10098 sim_queue_fn_si_write (current_cpu
, frvbf_h_spr_set
, ((UINT
) 273), opval
);
10099 TRACE_RESULT (current_cpu
, abuf
, "spr", 'x', opval
);
10101 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 4), 2)))) {
10102 if (EQSI (FLD (f_ccond
), 0)) {
10103 if (NESI (tmp_tmp
, 0)) {
10105 USI opval
= GET_H_SPR (((UINT
) 272));
10106 sim_queue_pc_write (current_cpu
, opval
);
10107 written
|= (1 << 6);
10108 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
10112 if (EQSI (tmp_tmp
, 0)) {
10114 USI opval
= GET_H_SPR (((UINT
) 272));
10115 sim_queue_pc_write (current_cpu
, opval
);
10116 written
|= (1 << 6);
10117 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
10125 abuf
->written
= written
;
10130 /* bclelr: bclelr$pack $ICCi_2,$ccond,$hint */
10133 SEM_FN_NAME (frvbf
,bclelr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
10135 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10136 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
10137 int UNUSED written
= 0;
10138 IADDR UNUSED pc
= abuf
->addr
;
10139 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
10142 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
10145 tmp_tmp
= SUBSI (GET_H_SPR (((UINT
) 273)), 1);
10147 USI opval
= tmp_tmp
;
10148 sim_queue_fn_si_write (current_cpu
, frvbf_h_spr_set
, ((UINT
) 273), opval
);
10149 TRACE_RESULT (current_cpu
, abuf
, "spr", 'x', opval
);
10151 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 4), 2)), XORBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 2), 1))))) {
10152 if (EQSI (FLD (f_ccond
), 0)) {
10153 if (NESI (tmp_tmp
, 0)) {
10155 USI opval
= GET_H_SPR (((UINT
) 272));
10156 sim_queue_pc_write (current_cpu
, opval
);
10157 written
|= (1 << 6);
10158 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
10162 if (EQSI (tmp_tmp
, 0)) {
10164 USI opval
= GET_H_SPR (((UINT
) 272));
10165 sim_queue_pc_write (current_cpu
, opval
);
10166 written
|= (1 << 6);
10167 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
10175 abuf
->written
= written
;
10180 /* bcgtlr: bcgtlr$pack $ICCi_2,$ccond,$hint */
10183 SEM_FN_NAME (frvbf
,bcgtlr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
10185 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10186 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
10187 int UNUSED written
= 0;
10188 IADDR UNUSED pc
= abuf
->addr
;
10189 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
10192 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
10195 tmp_tmp
= SUBSI (GET_H_SPR (((UINT
) 273)), 1);
10197 USI opval
= tmp_tmp
;
10198 sim_queue_fn_si_write (current_cpu
, frvbf_h_spr_set
, ((UINT
) 273), opval
);
10199 TRACE_RESULT (current_cpu
, abuf
, "spr", 'x', opval
);
10201 if (NOTBI (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 4), 2)), XORBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 2), 1)))))) {
10202 if (EQSI (FLD (f_ccond
), 0)) {
10203 if (NESI (tmp_tmp
, 0)) {
10205 USI opval
= GET_H_SPR (((UINT
) 272));
10206 sim_queue_pc_write (current_cpu
, opval
);
10207 written
|= (1 << 6);
10208 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
10212 if (EQSI (tmp_tmp
, 0)) {
10214 USI opval
= GET_H_SPR (((UINT
) 272));
10215 sim_queue_pc_write (current_cpu
, opval
);
10216 written
|= (1 << 6);
10217 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
10225 abuf
->written
= written
;
10230 /* bcltlr: bcltlr$pack $ICCi_2,$ccond,$hint */
10233 SEM_FN_NAME (frvbf
,bcltlr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
10235 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10236 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
10237 int UNUSED written
= 0;
10238 IADDR UNUSED pc
= abuf
->addr
;
10239 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
10242 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
10245 tmp_tmp
= SUBSI (GET_H_SPR (((UINT
) 273)), 1);
10247 USI opval
= tmp_tmp
;
10248 sim_queue_fn_si_write (current_cpu
, frvbf_h_spr_set
, ((UINT
) 273), opval
);
10249 TRACE_RESULT (current_cpu
, abuf
, "spr", 'x', opval
);
10251 if (XORBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 2), 1)))) {
10252 if (EQSI (FLD (f_ccond
), 0)) {
10253 if (NESI (tmp_tmp
, 0)) {
10255 USI opval
= GET_H_SPR (((UINT
) 272));
10256 sim_queue_pc_write (current_cpu
, opval
);
10257 written
|= (1 << 6);
10258 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
10262 if (EQSI (tmp_tmp
, 0)) {
10264 USI opval
= GET_H_SPR (((UINT
) 272));
10265 sim_queue_pc_write (current_cpu
, opval
);
10266 written
|= (1 << 6);
10267 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
10275 abuf
->written
= written
;
10280 /* bcgelr: bcgelr$pack $ICCi_2,$ccond,$hint */
10283 SEM_FN_NAME (frvbf
,bcgelr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
10285 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10286 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
10287 int UNUSED written
= 0;
10288 IADDR UNUSED pc
= abuf
->addr
;
10289 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
10292 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
10295 tmp_tmp
= SUBSI (GET_H_SPR (((UINT
) 273)), 1);
10297 USI opval
= tmp_tmp
;
10298 sim_queue_fn_si_write (current_cpu
, frvbf_h_spr_set
, ((UINT
) 273), opval
);
10299 TRACE_RESULT (current_cpu
, abuf
, "spr", 'x', opval
);
10301 if (NOTBI (XORBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 2), 1))))) {
10302 if (EQSI (FLD (f_ccond
), 0)) {
10303 if (NESI (tmp_tmp
, 0)) {
10305 USI opval
= GET_H_SPR (((UINT
) 272));
10306 sim_queue_pc_write (current_cpu
, opval
);
10307 written
|= (1 << 6);
10308 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
10312 if (EQSI (tmp_tmp
, 0)) {
10314 USI opval
= GET_H_SPR (((UINT
) 272));
10315 sim_queue_pc_write (current_cpu
, opval
);
10316 written
|= (1 << 6);
10317 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
10325 abuf
->written
= written
;
10330 /* bclslr: bclslr$pack $ICCi_2,$ccond,$hint */
10333 SEM_FN_NAME (frvbf
,bclslr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
10335 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10336 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
10337 int UNUSED written
= 0;
10338 IADDR UNUSED pc
= abuf
->addr
;
10339 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
10342 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
10345 tmp_tmp
= SUBSI (GET_H_SPR (((UINT
) 273)), 1);
10347 USI opval
= tmp_tmp
;
10348 sim_queue_fn_si_write (current_cpu
, frvbf_h_spr_set
, ((UINT
) 273), opval
);
10349 TRACE_RESULT (current_cpu
, abuf
, "spr", 'x', opval
);
10351 if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 4), 2)))) {
10352 if (EQSI (FLD (f_ccond
), 0)) {
10353 if (NESI (tmp_tmp
, 0)) {
10355 USI opval
= GET_H_SPR (((UINT
) 272));
10356 sim_queue_pc_write (current_cpu
, opval
);
10357 written
|= (1 << 6);
10358 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
10362 if (EQSI (tmp_tmp
, 0)) {
10364 USI opval
= GET_H_SPR (((UINT
) 272));
10365 sim_queue_pc_write (current_cpu
, opval
);
10366 written
|= (1 << 6);
10367 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
10375 abuf
->written
= written
;
10380 /* bchilr: bchilr$pack $ICCi_2,$ccond,$hint */
10383 SEM_FN_NAME (frvbf
,bchilr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
10385 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10386 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
10387 int UNUSED written
= 0;
10388 IADDR UNUSED pc
= abuf
->addr
;
10389 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
10392 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
10395 tmp_tmp
= SUBSI (GET_H_SPR (((UINT
) 273)), 1);
10397 USI opval
= tmp_tmp
;
10398 sim_queue_fn_si_write (current_cpu
, frvbf_h_spr_set
, ((UINT
) 273), opval
);
10399 TRACE_RESULT (current_cpu
, abuf
, "spr", 'x', opval
);
10401 if (NOTBI (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 4), 2))))) {
10402 if (EQSI (FLD (f_ccond
), 0)) {
10403 if (NESI (tmp_tmp
, 0)) {
10405 USI opval
= GET_H_SPR (((UINT
) 272));
10406 sim_queue_pc_write (current_cpu
, opval
);
10407 written
|= (1 << 6);
10408 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
10412 if (EQSI (tmp_tmp
, 0)) {
10414 USI opval
= GET_H_SPR (((UINT
) 272));
10415 sim_queue_pc_write (current_cpu
, opval
);
10416 written
|= (1 << 6);
10417 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
10425 abuf
->written
= written
;
10430 /* bcclr: bcclr$pack $ICCi_2,$ccond,$hint */
10433 SEM_FN_NAME (frvbf
,bcclr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
10435 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10436 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
10437 int UNUSED written
= 0;
10438 IADDR UNUSED pc
= abuf
->addr
;
10439 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
10442 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
10445 tmp_tmp
= SUBSI (GET_H_SPR (((UINT
) 273)), 1);
10447 USI opval
= tmp_tmp
;
10448 sim_queue_fn_si_write (current_cpu
, frvbf_h_spr_set
, ((UINT
) 273), opval
);
10449 TRACE_RESULT (current_cpu
, abuf
, "spr", 'x', opval
);
10451 if (TRUNCQIBI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 1))) {
10452 if (EQSI (FLD (f_ccond
), 0)) {
10453 if (NESI (tmp_tmp
, 0)) {
10455 USI opval
= GET_H_SPR (((UINT
) 272));
10456 sim_queue_pc_write (current_cpu
, opval
);
10457 written
|= (1 << 6);
10458 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
10462 if (EQSI (tmp_tmp
, 0)) {
10464 USI opval
= GET_H_SPR (((UINT
) 272));
10465 sim_queue_pc_write (current_cpu
, opval
);
10466 written
|= (1 << 6);
10467 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
10475 abuf
->written
= written
;
10480 /* bcnclr: bcnclr$pack $ICCi_2,$ccond,$hint */
10483 SEM_FN_NAME (frvbf
,bcnclr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
10485 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10486 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
10487 int UNUSED written
= 0;
10488 IADDR UNUSED pc
= abuf
->addr
;
10489 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
10492 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
10495 tmp_tmp
= SUBSI (GET_H_SPR (((UINT
) 273)), 1);
10497 USI opval
= tmp_tmp
;
10498 sim_queue_fn_si_write (current_cpu
, frvbf_h_spr_set
, ((UINT
) 273), opval
);
10499 TRACE_RESULT (current_cpu
, abuf
, "spr", 'x', opval
);
10501 if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 1)))) {
10502 if (EQSI (FLD (f_ccond
), 0)) {
10503 if (NESI (tmp_tmp
, 0)) {
10505 USI opval
= GET_H_SPR (((UINT
) 272));
10506 sim_queue_pc_write (current_cpu
, opval
);
10507 written
|= (1 << 6);
10508 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
10512 if (EQSI (tmp_tmp
, 0)) {
10514 USI opval
= GET_H_SPR (((UINT
) 272));
10515 sim_queue_pc_write (current_cpu
, opval
);
10516 written
|= (1 << 6);
10517 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
10525 abuf
->written
= written
;
10530 /* bcnlr: bcnlr$pack $ICCi_2,$ccond,$hint */
10533 SEM_FN_NAME (frvbf
,bcnlr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
10535 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10536 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
10537 int UNUSED written
= 0;
10538 IADDR UNUSED pc
= abuf
->addr
;
10539 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
10542 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
10545 tmp_tmp
= SUBSI (GET_H_SPR (((UINT
) 273)), 1);
10547 USI opval
= tmp_tmp
;
10548 sim_queue_fn_si_write (current_cpu
, frvbf_h_spr_set
, ((UINT
) 273), opval
);
10549 TRACE_RESULT (current_cpu
, abuf
, "spr", 'x', opval
);
10551 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 8), 3))) {
10552 if (EQSI (FLD (f_ccond
), 0)) {
10553 if (NESI (tmp_tmp
, 0)) {
10555 USI opval
= GET_H_SPR (((UINT
) 272));
10556 sim_queue_pc_write (current_cpu
, opval
);
10557 written
|= (1 << 6);
10558 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
10562 if (EQSI (tmp_tmp
, 0)) {
10564 USI opval
= GET_H_SPR (((UINT
) 272));
10565 sim_queue_pc_write (current_cpu
, opval
);
10566 written
|= (1 << 6);
10567 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
10575 abuf
->written
= written
;
10580 /* bcplr: bcplr$pack $ICCi_2,$ccond,$hint */
10583 SEM_FN_NAME (frvbf
,bcplr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
10585 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10586 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
10587 int UNUSED written
= 0;
10588 IADDR UNUSED pc
= abuf
->addr
;
10589 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
10592 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
10595 tmp_tmp
= SUBSI (GET_H_SPR (((UINT
) 273)), 1);
10597 USI opval
= tmp_tmp
;
10598 sim_queue_fn_si_write (current_cpu
, frvbf_h_spr_set
, ((UINT
) 273), opval
);
10599 TRACE_RESULT (current_cpu
, abuf
, "spr", 'x', opval
);
10601 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 8), 3)))) {
10602 if (EQSI (FLD (f_ccond
), 0)) {
10603 if (NESI (tmp_tmp
, 0)) {
10605 USI opval
= GET_H_SPR (((UINT
) 272));
10606 sim_queue_pc_write (current_cpu
, opval
);
10607 written
|= (1 << 6);
10608 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
10612 if (EQSI (tmp_tmp
, 0)) {
10614 USI opval
= GET_H_SPR (((UINT
) 272));
10615 sim_queue_pc_write (current_cpu
, opval
);
10616 written
|= (1 << 6);
10617 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
10625 abuf
->written
= written
;
10630 /* bcvlr: bcvlr$pack $ICCi_2,$ccond,$hint */
10633 SEM_FN_NAME (frvbf
,bcvlr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
10635 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10636 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
10637 int UNUSED written
= 0;
10638 IADDR UNUSED pc
= abuf
->addr
;
10639 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
10642 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
10645 tmp_tmp
= SUBSI (GET_H_SPR (((UINT
) 273)), 1);
10647 USI opval
= tmp_tmp
;
10648 sim_queue_fn_si_write (current_cpu
, frvbf_h_spr_set
, ((UINT
) 273), opval
);
10649 TRACE_RESULT (current_cpu
, abuf
, "spr", 'x', opval
);
10651 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 2), 1))) {
10652 if (EQSI (FLD (f_ccond
), 0)) {
10653 if (NESI (tmp_tmp
, 0)) {
10655 USI opval
= GET_H_SPR (((UINT
) 272));
10656 sim_queue_pc_write (current_cpu
, opval
);
10657 written
|= (1 << 6);
10658 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
10662 if (EQSI (tmp_tmp
, 0)) {
10664 USI opval
= GET_H_SPR (((UINT
) 272));
10665 sim_queue_pc_write (current_cpu
, opval
);
10666 written
|= (1 << 6);
10667 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
10675 abuf
->written
= written
;
10680 /* bcnvlr: bcnvlr$pack $ICCi_2,$ccond,$hint */
10683 SEM_FN_NAME (frvbf
,bcnvlr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
10685 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10686 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
10687 int UNUSED written
= 0;
10688 IADDR UNUSED pc
= abuf
->addr
;
10689 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
10692 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
10695 tmp_tmp
= SUBSI (GET_H_SPR (((UINT
) 273)), 1);
10697 USI opval
= tmp_tmp
;
10698 sim_queue_fn_si_write (current_cpu
, frvbf_h_spr_set
, ((UINT
) 273), opval
);
10699 TRACE_RESULT (current_cpu
, abuf
, "spr", 'x', opval
);
10701 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 2), 1)))) {
10702 if (EQSI (FLD (f_ccond
), 0)) {
10703 if (NESI (tmp_tmp
, 0)) {
10705 USI opval
= GET_H_SPR (((UINT
) 272));
10706 sim_queue_pc_write (current_cpu
, opval
);
10707 written
|= (1 << 6);
10708 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
10712 if (EQSI (tmp_tmp
, 0)) {
10714 USI opval
= GET_H_SPR (((UINT
) 272));
10715 sim_queue_pc_write (current_cpu
, opval
);
10716 written
|= (1 << 6);
10717 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
10725 abuf
->written
= written
;
10730 /* fcbralr: fcbralr$pack $ccond$hint_taken */
10733 SEM_FN_NAME (frvbf
,fcbralr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
10735 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10736 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
10737 int UNUSED written
= 0;
10738 IADDR UNUSED pc
= abuf
->addr
;
10739 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
10742 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
10745 tmp_tmp
= SUBSI (GET_H_SPR (((UINT
) 273)), 1);
10747 USI opval
= tmp_tmp
;
10748 sim_queue_fn_si_write (current_cpu
, frvbf_h_spr_set
, ((UINT
) 273), opval
);
10749 TRACE_RESULT (current_cpu
, abuf
, "spr", 'x', opval
);
10751 if (EQSI (FLD (f_ccond
), 0)) {
10752 if (NESI (tmp_tmp
, 0)) {
10754 USI opval
= GET_H_SPR (((UINT
) 272));
10755 sim_queue_pc_write (current_cpu
, opval
);
10756 written
|= (1 << 5);
10757 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
10761 if (EQSI (tmp_tmp
, 0)) {
10763 USI opval
= GET_H_SPR (((UINT
) 272));
10764 sim_queue_pc_write (current_cpu
, opval
);
10765 written
|= (1 << 5);
10766 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
10773 abuf
->written
= written
;
10778 /* fcbnolr: fcbnolr$pack$hint_not_taken */
10781 SEM_FN_NAME (frvbf
,fcbnolr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
10783 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10784 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
10785 int UNUSED written
= 0;
10786 IADDR UNUSED pc
= abuf
->addr
;
10787 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
10790 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
10793 tmp_tmp
= SUBSI (GET_H_SPR (((UINT
) 273)), 1);
10795 USI opval
= tmp_tmp
;
10796 sim_queue_fn_si_write (current_cpu
, frvbf_h_spr_set
, ((UINT
) 273), opval
);
10797 TRACE_RESULT (current_cpu
, abuf
, "spr", 'x', opval
);
10799 ((void) 0); /*nop*/
10807 /* fcbeqlr: fcbeqlr$pack $FCCi_2,$ccond,$hint */
10810 SEM_FN_NAME (frvbf
,fcbeqlr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
10812 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10813 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
10814 int UNUSED written
= 0;
10815 IADDR UNUSED pc
= abuf
->addr
;
10816 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
10819 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
10822 tmp_tmp
= SUBSI (GET_H_SPR (((UINT
) 273)), 1);
10824 USI opval
= tmp_tmp
;
10825 sim_queue_fn_si_write (current_cpu
, frvbf_h_spr_set
, ((UINT
) 273), opval
);
10826 TRACE_RESULT (current_cpu
, abuf
, "spr", 'x', opval
);
10828 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 8), 3))) {
10829 if (EQSI (FLD (f_ccond
), 0)) {
10830 if (NESI (tmp_tmp
, 0)) {
10832 USI opval
= GET_H_SPR (((UINT
) 272));
10833 sim_queue_pc_write (current_cpu
, opval
);
10834 written
|= (1 << 6);
10835 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
10839 if (EQSI (tmp_tmp
, 0)) {
10841 USI opval
= GET_H_SPR (((UINT
) 272));
10842 sim_queue_pc_write (current_cpu
, opval
);
10843 written
|= (1 << 6);
10844 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
10852 abuf
->written
= written
;
10857 /* fcbnelr: fcbnelr$pack $FCCi_2,$ccond,$hint */
10860 SEM_FN_NAME (frvbf
,fcbnelr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
10862 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10863 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
10864 int UNUSED written
= 0;
10865 IADDR UNUSED pc
= abuf
->addr
;
10866 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
10869 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
10872 tmp_tmp
= SUBSI (GET_H_SPR (((UINT
) 273)), 1);
10874 USI opval
= tmp_tmp
;
10875 sim_queue_fn_si_write (current_cpu
, frvbf_h_spr_set
, ((UINT
) 273), opval
);
10876 TRACE_RESULT (current_cpu
, abuf
, "spr", 'x', opval
);
10878 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 4), 2)), ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 1))))) {
10879 if (EQSI (FLD (f_ccond
), 0)) {
10880 if (NESI (tmp_tmp
, 0)) {
10882 USI opval
= GET_H_SPR (((UINT
) 272));
10883 sim_queue_pc_write (current_cpu
, opval
);
10884 written
|= (1 << 6);
10885 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
10889 if (EQSI (tmp_tmp
, 0)) {
10891 USI opval
= GET_H_SPR (((UINT
) 272));
10892 sim_queue_pc_write (current_cpu
, opval
);
10893 written
|= (1 << 6);
10894 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
10902 abuf
->written
= written
;
10907 /* fcblglr: fcblglr$pack $FCCi_2,$ccond,$hint */
10910 SEM_FN_NAME (frvbf
,fcblglr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
10912 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10913 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
10914 int UNUSED written
= 0;
10915 IADDR UNUSED pc
= abuf
->addr
;
10916 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
10919 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
10922 tmp_tmp
= SUBSI (GET_H_SPR (((UINT
) 273)), 1);
10924 USI opval
= tmp_tmp
;
10925 sim_queue_fn_si_write (current_cpu
, frvbf_h_spr_set
, ((UINT
) 273), opval
);
10926 TRACE_RESULT (current_cpu
, abuf
, "spr", 'x', opval
);
10928 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 4), 2)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 2), 1)))) {
10929 if (EQSI (FLD (f_ccond
), 0)) {
10930 if (NESI (tmp_tmp
, 0)) {
10932 USI opval
= GET_H_SPR (((UINT
) 272));
10933 sim_queue_pc_write (current_cpu
, opval
);
10934 written
|= (1 << 6);
10935 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
10939 if (EQSI (tmp_tmp
, 0)) {
10941 USI opval
= GET_H_SPR (((UINT
) 272));
10942 sim_queue_pc_write (current_cpu
, opval
);
10943 written
|= (1 << 6);
10944 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
10952 abuf
->written
= written
;
10957 /* fcbuelr: fcbuelr$pack $FCCi_2,$ccond,$hint */
10960 SEM_FN_NAME (frvbf
,fcbuelr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
10962 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10963 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
10964 int UNUSED written
= 0;
10965 IADDR UNUSED pc
= abuf
->addr
;
10966 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
10969 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
10972 tmp_tmp
= SUBSI (GET_H_SPR (((UINT
) 273)), 1);
10974 USI opval
= tmp_tmp
;
10975 sim_queue_fn_si_write (current_cpu
, frvbf_h_spr_set
, ((UINT
) 273), opval
);
10976 TRACE_RESULT (current_cpu
, abuf
, "spr", 'x', opval
);
10978 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 1)))) {
10979 if (EQSI (FLD (f_ccond
), 0)) {
10980 if (NESI (tmp_tmp
, 0)) {
10982 USI opval
= GET_H_SPR (((UINT
) 272));
10983 sim_queue_pc_write (current_cpu
, opval
);
10984 written
|= (1 << 6);
10985 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
10989 if (EQSI (tmp_tmp
, 0)) {
10991 USI opval
= GET_H_SPR (((UINT
) 272));
10992 sim_queue_pc_write (current_cpu
, opval
);
10993 written
|= (1 << 6);
10994 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
11002 abuf
->written
= written
;
11007 /* fcbullr: fcbullr$pack $FCCi_2,$ccond,$hint */
11010 SEM_FN_NAME (frvbf
,fcbullr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
11012 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11013 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
11014 int UNUSED written
= 0;
11015 IADDR UNUSED pc
= abuf
->addr
;
11016 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
11019 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
11022 tmp_tmp
= SUBSI (GET_H_SPR (((UINT
) 273)), 1);
11024 USI opval
= tmp_tmp
;
11025 sim_queue_fn_si_write (current_cpu
, frvbf_h_spr_set
, ((UINT
) 273), opval
);
11026 TRACE_RESULT (current_cpu
, abuf
, "spr", 'x', opval
);
11028 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 1)))) {
11029 if (EQSI (FLD (f_ccond
), 0)) {
11030 if (NESI (tmp_tmp
, 0)) {
11032 USI opval
= GET_H_SPR (((UINT
) 272));
11033 sim_queue_pc_write (current_cpu
, opval
);
11034 written
|= (1 << 6);
11035 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
11039 if (EQSI (tmp_tmp
, 0)) {
11041 USI opval
= GET_H_SPR (((UINT
) 272));
11042 sim_queue_pc_write (current_cpu
, opval
);
11043 written
|= (1 << 6);
11044 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
11052 abuf
->written
= written
;
11057 /* fcbgelr: fcbgelr$pack $FCCi_2,$ccond,$hint */
11060 SEM_FN_NAME (frvbf
,fcbgelr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
11062 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11063 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
11064 int UNUSED written
= 0;
11065 IADDR UNUSED pc
= abuf
->addr
;
11066 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
11069 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
11072 tmp_tmp
= SUBSI (GET_H_SPR (((UINT
) 273)), 1);
11074 USI opval
= tmp_tmp
;
11075 sim_queue_fn_si_write (current_cpu
, frvbf_h_spr_set
, ((UINT
) 273), opval
);
11076 TRACE_RESULT (current_cpu
, abuf
, "spr", 'x', opval
);
11078 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 2), 1)))) {
11079 if (EQSI (FLD (f_ccond
), 0)) {
11080 if (NESI (tmp_tmp
, 0)) {
11082 USI opval
= GET_H_SPR (((UINT
) 272));
11083 sim_queue_pc_write (current_cpu
, opval
);
11084 written
|= (1 << 6);
11085 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
11089 if (EQSI (tmp_tmp
, 0)) {
11091 USI opval
= GET_H_SPR (((UINT
) 272));
11092 sim_queue_pc_write (current_cpu
, opval
);
11093 written
|= (1 << 6);
11094 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
11102 abuf
->written
= written
;
11107 /* fcbltlr: fcbltlr$pack $FCCi_2,$ccond,$hint */
11110 SEM_FN_NAME (frvbf
,fcbltlr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
11112 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11113 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
11114 int UNUSED written
= 0;
11115 IADDR UNUSED pc
= abuf
->addr
;
11116 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
11119 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
11122 tmp_tmp
= SUBSI (GET_H_SPR (((UINT
) 273)), 1);
11124 USI opval
= tmp_tmp
;
11125 sim_queue_fn_si_write (current_cpu
, frvbf_h_spr_set
, ((UINT
) 273), opval
);
11126 TRACE_RESULT (current_cpu
, abuf
, "spr", 'x', opval
);
11128 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 4), 2))) {
11129 if (EQSI (FLD (f_ccond
), 0)) {
11130 if (NESI (tmp_tmp
, 0)) {
11132 USI opval
= GET_H_SPR (((UINT
) 272));
11133 sim_queue_pc_write (current_cpu
, opval
);
11134 written
|= (1 << 6);
11135 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
11139 if (EQSI (tmp_tmp
, 0)) {
11141 USI opval
= GET_H_SPR (((UINT
) 272));
11142 sim_queue_pc_write (current_cpu
, opval
);
11143 written
|= (1 << 6);
11144 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
11152 abuf
->written
= written
;
11157 /* fcbugelr: fcbugelr$pack $FCCi_2,$ccond,$hint */
11160 SEM_FN_NAME (frvbf
,fcbugelr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
11162 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11163 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
11164 int UNUSED written
= 0;
11165 IADDR UNUSED pc
= abuf
->addr
;
11166 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
11169 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
11172 tmp_tmp
= SUBSI (GET_H_SPR (((UINT
) 273)), 1);
11174 USI opval
= tmp_tmp
;
11175 sim_queue_fn_si_write (current_cpu
, frvbf_h_spr_set
, ((UINT
) 273), opval
);
11176 TRACE_RESULT (current_cpu
, abuf
, "spr", 'x', opval
);
11178 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 8), 3)), ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 1))))) {
11179 if (EQSI (FLD (f_ccond
), 0)) {
11180 if (NESI (tmp_tmp
, 0)) {
11182 USI opval
= GET_H_SPR (((UINT
) 272));
11183 sim_queue_pc_write (current_cpu
, opval
);
11184 written
|= (1 << 6);
11185 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
11189 if (EQSI (tmp_tmp
, 0)) {
11191 USI opval
= GET_H_SPR (((UINT
) 272));
11192 sim_queue_pc_write (current_cpu
, opval
);
11193 written
|= (1 << 6);
11194 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
11202 abuf
->written
= written
;
11207 /* fcbuglr: fcbuglr$pack $FCCi_2,$ccond,$hint */
11210 SEM_FN_NAME (frvbf
,fcbuglr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
11212 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11213 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
11214 int UNUSED written
= 0;
11215 IADDR UNUSED pc
= abuf
->addr
;
11216 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
11219 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
11222 tmp_tmp
= SUBSI (GET_H_SPR (((UINT
) 273)), 1);
11224 USI opval
= tmp_tmp
;
11225 sim_queue_fn_si_write (current_cpu
, frvbf_h_spr_set
, ((UINT
) 273), opval
);
11226 TRACE_RESULT (current_cpu
, abuf
, "spr", 'x', opval
);
11228 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 1)))) {
11229 if (EQSI (FLD (f_ccond
), 0)) {
11230 if (NESI (tmp_tmp
, 0)) {
11232 USI opval
= GET_H_SPR (((UINT
) 272));
11233 sim_queue_pc_write (current_cpu
, opval
);
11234 written
|= (1 << 6);
11235 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
11239 if (EQSI (tmp_tmp
, 0)) {
11241 USI opval
= GET_H_SPR (((UINT
) 272));
11242 sim_queue_pc_write (current_cpu
, opval
);
11243 written
|= (1 << 6);
11244 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
11252 abuf
->written
= written
;
11257 /* fcblelr: fcblelr$pack $FCCi_2,$ccond,$hint */
11260 SEM_FN_NAME (frvbf
,fcblelr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
11262 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11263 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
11264 int UNUSED written
= 0;
11265 IADDR UNUSED pc
= abuf
->addr
;
11266 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
11269 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
11272 tmp_tmp
= SUBSI (GET_H_SPR (((UINT
) 273)), 1);
11274 USI opval
= tmp_tmp
;
11275 sim_queue_fn_si_write (current_cpu
, frvbf_h_spr_set
, ((UINT
) 273), opval
);
11276 TRACE_RESULT (current_cpu
, abuf
, "spr", 'x', opval
);
11278 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 4), 2)))) {
11279 if (EQSI (FLD (f_ccond
), 0)) {
11280 if (NESI (tmp_tmp
, 0)) {
11282 USI opval
= GET_H_SPR (((UINT
) 272));
11283 sim_queue_pc_write (current_cpu
, opval
);
11284 written
|= (1 << 6);
11285 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
11289 if (EQSI (tmp_tmp
, 0)) {
11291 USI opval
= GET_H_SPR (((UINT
) 272));
11292 sim_queue_pc_write (current_cpu
, opval
);
11293 written
|= (1 << 6);
11294 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
11302 abuf
->written
= written
;
11307 /* fcbgtlr: fcbgtlr$pack $FCCi_2,$ccond,$hint */
11310 SEM_FN_NAME (frvbf
,fcbgtlr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
11312 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11313 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
11314 int UNUSED written
= 0;
11315 IADDR UNUSED pc
= abuf
->addr
;
11316 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
11319 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
11322 tmp_tmp
= SUBSI (GET_H_SPR (((UINT
) 273)), 1);
11324 USI opval
= tmp_tmp
;
11325 sim_queue_fn_si_write (current_cpu
, frvbf_h_spr_set
, ((UINT
) 273), opval
);
11326 TRACE_RESULT (current_cpu
, abuf
, "spr", 'x', opval
);
11328 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 2), 1))) {
11329 if (EQSI (FLD (f_ccond
), 0)) {
11330 if (NESI (tmp_tmp
, 0)) {
11332 USI opval
= GET_H_SPR (((UINT
) 272));
11333 sim_queue_pc_write (current_cpu
, opval
);
11334 written
|= (1 << 6);
11335 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
11339 if (EQSI (tmp_tmp
, 0)) {
11341 USI opval
= GET_H_SPR (((UINT
) 272));
11342 sim_queue_pc_write (current_cpu
, opval
);
11343 written
|= (1 << 6);
11344 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
11352 abuf
->written
= written
;
11357 /* fcbulelr: fcbulelr$pack $FCCi_2,$ccond,$hint */
11360 SEM_FN_NAME (frvbf
,fcbulelr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
11362 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11363 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
11364 int UNUSED written
= 0;
11365 IADDR UNUSED pc
= abuf
->addr
;
11366 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
11369 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
11372 tmp_tmp
= SUBSI (GET_H_SPR (((UINT
) 273)), 1);
11374 USI opval
= tmp_tmp
;
11375 sim_queue_fn_si_write (current_cpu
, frvbf_h_spr_set
, ((UINT
) 273), opval
);
11376 TRACE_RESULT (current_cpu
, abuf
, "spr", 'x', opval
);
11378 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 8), 3)), ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 1))))) {
11379 if (EQSI (FLD (f_ccond
), 0)) {
11380 if (NESI (tmp_tmp
, 0)) {
11382 USI opval
= GET_H_SPR (((UINT
) 272));
11383 sim_queue_pc_write (current_cpu
, opval
);
11384 written
|= (1 << 6);
11385 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
11389 if (EQSI (tmp_tmp
, 0)) {
11391 USI opval
= GET_H_SPR (((UINT
) 272));
11392 sim_queue_pc_write (current_cpu
, opval
);
11393 written
|= (1 << 6);
11394 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
11402 abuf
->written
= written
;
11407 /* fcbulr: fcbulr$pack $FCCi_2,$ccond,$hint */
11410 SEM_FN_NAME (frvbf
,fcbulr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
11412 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11413 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
11414 int UNUSED written
= 0;
11415 IADDR UNUSED pc
= abuf
->addr
;
11416 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
11419 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
11422 tmp_tmp
= SUBSI (GET_H_SPR (((UINT
) 273)), 1);
11424 USI opval
= tmp_tmp
;
11425 sim_queue_fn_si_write (current_cpu
, frvbf_h_spr_set
, ((UINT
) 273), opval
);
11426 TRACE_RESULT (current_cpu
, abuf
, "spr", 'x', opval
);
11428 if (TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 1))) {
11429 if (EQSI (FLD (f_ccond
), 0)) {
11430 if (NESI (tmp_tmp
, 0)) {
11432 USI opval
= GET_H_SPR (((UINT
) 272));
11433 sim_queue_pc_write (current_cpu
, opval
);
11434 written
|= (1 << 6);
11435 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
11439 if (EQSI (tmp_tmp
, 0)) {
11441 USI opval
= GET_H_SPR (((UINT
) 272));
11442 sim_queue_pc_write (current_cpu
, opval
);
11443 written
|= (1 << 6);
11444 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
11452 abuf
->written
= written
;
11457 /* fcbolr: fcbolr$pack $FCCi_2,$ccond,$hint */
11460 SEM_FN_NAME (frvbf
,fcbolr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
11462 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11463 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
11464 int UNUSED written
= 0;
11465 IADDR UNUSED pc
= abuf
->addr
;
11466 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
11469 frvbf_model_branch (current_cpu
, GET_H_SPR (((UINT
) 272)), FLD (f_hint
));
11472 tmp_tmp
= SUBSI (GET_H_SPR (((UINT
) 273)), 1);
11474 USI opval
= tmp_tmp
;
11475 sim_queue_fn_si_write (current_cpu
, frvbf_h_spr_set
, ((UINT
) 273), opval
);
11476 TRACE_RESULT (current_cpu
, abuf
, "spr", 'x', opval
);
11478 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 8), 3)), ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 4), 2)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 2), 1))))) {
11479 if (EQSI (FLD (f_ccond
), 0)) {
11480 if (NESI (tmp_tmp
, 0)) {
11482 USI opval
= GET_H_SPR (((UINT
) 272));
11483 sim_queue_pc_write (current_cpu
, opval
);
11484 written
|= (1 << 6);
11485 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
11489 if (EQSI (tmp_tmp
, 0)) {
11491 USI opval
= GET_H_SPR (((UINT
) 272));
11492 sim_queue_pc_write (current_cpu
, opval
);
11493 written
|= (1 << 6);
11494 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
11502 abuf
->written
= written
;
11507 /* jmpl: jmpl$pack @($GRi,$GRj) */
11510 SEM_FN_NAME (frvbf
,jmpl
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
11512 #define FLD(f) abuf->fields.sfmt_cjmpl.f
11513 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
11514 int UNUSED written
= 0;
11515 IADDR UNUSED pc
= abuf
->addr
;
11516 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
11519 if (EQSI (FLD (f_LI
), 1)) {
11520 frvbf_set_write_next_vliw_addr_to_LR (current_cpu
, 1);
11523 USI opval
= ANDSI (ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))), 0xfffffffc);
11524 sim_queue_pc_write (current_cpu
, opval
);
11525 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
11527 frvbf_model_branch (current_cpu
, pc
, 2);
11534 /* calll: calll$pack @($GRi,$GRj) */
11537 SEM_FN_NAME (frvbf
,calll
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
11539 #define FLD(f) abuf->fields.sfmt_cjmpl.f
11540 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
11541 int UNUSED written
= 0;
11542 IADDR UNUSED pc
= abuf
->addr
;
11543 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
11546 if (EQSI (FLD (f_LI
), 1)) {
11547 frvbf_set_write_next_vliw_addr_to_LR (current_cpu
, 1);
11550 USI opval
= ANDSI (ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))), 0xfffffffc);
11551 sim_queue_pc_write (current_cpu
, opval
);
11552 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
11554 frvbf_model_branch (current_cpu
, pc
, 2);
11561 /* jmpil: jmpil$pack @($GRi,$s12) */
11564 SEM_FN_NAME (frvbf
,jmpil
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
11566 #define FLD(f) abuf->fields.sfmt_jmpil.f
11567 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
11568 int UNUSED written
= 0;
11569 IADDR UNUSED pc
= abuf
->addr
;
11570 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
11573 if (EQSI (FLD (f_LI
), 1)) {
11574 frvbf_set_write_next_vliw_addr_to_LR (current_cpu
, 1);
11577 USI opval
= ANDSI (ADDSI (GET_H_GR (FLD (f_GRi
)), FLD (f_d12
)), 0xfffffffc);
11578 sim_queue_pc_write (current_cpu
, opval
);
11579 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
11581 frvbf_model_branch (current_cpu
, pc
, 2);
11588 /* callil: callil$pack @($GRi,$s12) */
11591 SEM_FN_NAME (frvbf
,callil
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
11593 #define FLD(f) abuf->fields.sfmt_jmpil.f
11594 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
11595 int UNUSED written
= 0;
11596 IADDR UNUSED pc
= abuf
->addr
;
11597 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
11600 if (EQSI (FLD (f_LI
), 1)) {
11601 frvbf_set_write_next_vliw_addr_to_LR (current_cpu
, 1);
11604 USI opval
= ANDSI (ADDSI (GET_H_GR (FLD (f_GRi
)), FLD (f_d12
)), 0xfffffffc);
11605 sim_queue_pc_write (current_cpu
, opval
);
11606 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
11608 frvbf_model_branch (current_cpu
, pc
, 2);
11615 /* call: call$pack $label24 */
11618 SEM_FN_NAME (frvbf
,call
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
11620 #define FLD(f) abuf->fields.sfmt_call.f
11621 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
11622 int UNUSED written
= 0;
11623 IADDR UNUSED pc
= abuf
->addr
;
11624 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
11627 frvbf_set_write_next_vliw_addr_to_LR (current_cpu
, 1);
11629 USI opval
= FLD (i_label24
);
11630 sim_queue_pc_write (current_cpu
, opval
);
11631 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
11633 frvbf_model_branch (current_cpu
, pc
, 2);
11640 /* rett: rett$pack $debug */
11643 SEM_FN_NAME (frvbf
,rett
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
11645 #define FLD(f) abuf->fields.sfmt_rett.f
11646 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
11647 int UNUSED written
= 0;
11648 IADDR UNUSED pc
= abuf
->addr
;
11649 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
11653 USI opval
= frv_rett (current_cpu
, pc
, FLD (f_debug
));
11654 sim_queue_pc_write (current_cpu
, opval
);
11655 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
11657 frvbf_model_branch (current_cpu
, pc
, 2);
11664 /* rei: rei$pack $eir */
11667 SEM_FN_NAME (frvbf
,rei
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
11669 #define FLD(f) abuf->fields.fmt_empty.f
11670 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
11671 int UNUSED written
= 0;
11672 IADDR UNUSED pc
= abuf
->addr
;
11673 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
11675 ((void) 0); /*nop*/
11681 /* tra: tra$pack $GRi,$GRj */
11684 SEM_FN_NAME (frvbf
,tra
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
11686 #define FLD(f) abuf->fields.sfmt_ftne.f
11687 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
11688 int UNUSED written
= 0;
11689 IADDR UNUSED pc
= abuf
->addr
;
11690 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
11697 if (NEBI (CPU (h_psr_esr
), 0)) {
11705 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
11708 abuf
->written
= written
;
11713 /* tno: tno$pack */
11716 SEM_FN_NAME (frvbf
,tno
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
11718 #define FLD(f) abuf->fields.fmt_empty.f
11719 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
11720 int UNUSED written
= 0;
11721 IADDR UNUSED pc
= abuf
->addr
;
11722 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
11724 ((void) 0); /*nop*/
11730 /* teq: teq$pack $ICCi_2,$GRi,$GRj */
11733 SEM_FN_NAME (frvbf
,teq
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
11735 #define FLD(f) abuf->fields.sfmt_teq.f
11736 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
11737 int UNUSED written
= 0;
11738 IADDR UNUSED pc
= abuf
->addr
;
11739 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
11741 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 4), 2))) {
11747 if (NEBI (CPU (h_psr_esr
), 0)) {
11755 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
11759 abuf
->written
= written
;
11764 /* tne: tne$pack $ICCi_2,$GRi,$GRj */
11767 SEM_FN_NAME (frvbf
,tne
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
11769 #define FLD(f) abuf->fields.sfmt_teq.f
11770 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
11771 int UNUSED written
= 0;
11772 IADDR UNUSED pc
= abuf
->addr
;
11773 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
11775 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 4), 2)))) {
11781 if (NEBI (CPU (h_psr_esr
), 0)) {
11789 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
11793 abuf
->written
= written
;
11798 /* tle: tle$pack $ICCi_2,$GRi,$GRj */
11801 SEM_FN_NAME (frvbf
,tle
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
11803 #define FLD(f) abuf->fields.sfmt_teq.f
11804 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
11805 int UNUSED written
= 0;
11806 IADDR UNUSED pc
= abuf
->addr
;
11807 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
11809 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 4), 2)), XORBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 2), 1))))) {
11815 if (NEBI (CPU (h_psr_esr
), 0)) {
11823 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
11827 abuf
->written
= written
;
11832 /* tgt: tgt$pack $ICCi_2,$GRi,$GRj */
11835 SEM_FN_NAME (frvbf
,tgt
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
11837 #define FLD(f) abuf->fields.sfmt_teq.f
11838 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
11839 int UNUSED written
= 0;
11840 IADDR UNUSED pc
= abuf
->addr
;
11841 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
11843 if (NOTBI (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 4), 2)), XORBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 2), 1)))))) {
11849 if (NEBI (CPU (h_psr_esr
), 0)) {
11857 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
11861 abuf
->written
= written
;
11866 /* tlt: tlt$pack $ICCi_2,$GRi,$GRj */
11869 SEM_FN_NAME (frvbf
,tlt
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
11871 #define FLD(f) abuf->fields.sfmt_teq.f
11872 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
11873 int UNUSED written
= 0;
11874 IADDR UNUSED pc
= abuf
->addr
;
11875 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
11877 if (XORBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 2), 1)))) {
11883 if (NEBI (CPU (h_psr_esr
), 0)) {
11891 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
11895 abuf
->written
= written
;
11900 /* tge: tge$pack $ICCi_2,$GRi,$GRj */
11903 SEM_FN_NAME (frvbf
,tge
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
11905 #define FLD(f) abuf->fields.sfmt_teq.f
11906 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
11907 int UNUSED written
= 0;
11908 IADDR UNUSED pc
= abuf
->addr
;
11909 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
11911 if (NOTBI (XORBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 2), 1))))) {
11917 if (NEBI (CPU (h_psr_esr
), 0)) {
11925 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
11929 abuf
->written
= written
;
11934 /* tls: tls$pack $ICCi_2,$GRi,$GRj */
11937 SEM_FN_NAME (frvbf
,tls
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
11939 #define FLD(f) abuf->fields.sfmt_teq.f
11940 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
11941 int UNUSED written
= 0;
11942 IADDR UNUSED pc
= abuf
->addr
;
11943 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
11945 if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 4), 2)))) {
11951 if (NEBI (CPU (h_psr_esr
), 0)) {
11959 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
11963 abuf
->written
= written
;
11968 /* thi: thi$pack $ICCi_2,$GRi,$GRj */
11971 SEM_FN_NAME (frvbf
,thi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
11973 #define FLD(f) abuf->fields.sfmt_teq.f
11974 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
11975 int UNUSED written
= 0;
11976 IADDR UNUSED pc
= abuf
->addr
;
11977 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
11979 if (NOTBI (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 4), 2))))) {
11985 if (NEBI (CPU (h_psr_esr
), 0)) {
11993 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
11997 abuf
->written
= written
;
12002 /* tc: tc$pack $ICCi_2,$GRi,$GRj */
12005 SEM_FN_NAME (frvbf
,tc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
12007 #define FLD(f) abuf->fields.sfmt_teq.f
12008 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
12009 int UNUSED written
= 0;
12010 IADDR UNUSED pc
= abuf
->addr
;
12011 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
12013 if (TRUNCQIBI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 1))) {
12019 if (NEBI (CPU (h_psr_esr
), 0)) {
12027 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
12031 abuf
->written
= written
;
12036 /* tnc: tnc$pack $ICCi_2,$GRi,$GRj */
12039 SEM_FN_NAME (frvbf
,tnc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
12041 #define FLD(f) abuf->fields.sfmt_teq.f
12042 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
12043 int UNUSED written
= 0;
12044 IADDR UNUSED pc
= abuf
->addr
;
12045 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
12047 if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 1)))) {
12053 if (NEBI (CPU (h_psr_esr
), 0)) {
12061 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
12065 abuf
->written
= written
;
12070 /* tn: tn$pack $ICCi_2,$GRi,$GRj */
12073 SEM_FN_NAME (frvbf
,tn
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
12075 #define FLD(f) abuf->fields.sfmt_teq.f
12076 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
12077 int UNUSED written
= 0;
12078 IADDR UNUSED pc
= abuf
->addr
;
12079 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
12081 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 8), 3))) {
12087 if (NEBI (CPU (h_psr_esr
), 0)) {
12095 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
12099 abuf
->written
= written
;
12104 /* tp: tp$pack $ICCi_2,$GRi,$GRj */
12107 SEM_FN_NAME (frvbf
,tp
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
12109 #define FLD(f) abuf->fields.sfmt_teq.f
12110 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
12111 int UNUSED written
= 0;
12112 IADDR UNUSED pc
= abuf
->addr
;
12113 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
12115 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 8), 3)))) {
12121 if (NEBI (CPU (h_psr_esr
), 0)) {
12129 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
12133 abuf
->written
= written
;
12138 /* tv: tv$pack $ICCi_2,$GRi,$GRj */
12141 SEM_FN_NAME (frvbf
,tv
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
12143 #define FLD(f) abuf->fields.sfmt_teq.f
12144 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
12145 int UNUSED written
= 0;
12146 IADDR UNUSED pc
= abuf
->addr
;
12147 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
12149 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 2), 1))) {
12155 if (NEBI (CPU (h_psr_esr
), 0)) {
12163 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
12167 abuf
->written
= written
;
12172 /* tnv: tnv$pack $ICCi_2,$GRi,$GRj */
12175 SEM_FN_NAME (frvbf
,tnv
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
12177 #define FLD(f) abuf->fields.sfmt_teq.f
12178 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
12179 int UNUSED written
= 0;
12180 IADDR UNUSED pc
= abuf
->addr
;
12181 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
12183 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 2), 1)))) {
12189 if (NEBI (CPU (h_psr_esr
), 0)) {
12197 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
12201 abuf
->written
= written
;
12206 /* ftra: ftra$pack $GRi,$GRj */
12209 SEM_FN_NAME (frvbf
,ftra
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
12211 #define FLD(f) abuf->fields.sfmt_ftne.f
12212 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
12213 int UNUSED written
= 0;
12214 IADDR UNUSED pc
= abuf
->addr
;
12215 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
12222 if (NEBI (CPU (h_psr_esr
), 0)) {
12230 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
12233 abuf
->written
= written
;
12238 /* ftno: ftno$pack */
12241 SEM_FN_NAME (frvbf
,ftno
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
12243 #define FLD(f) abuf->fields.fmt_empty.f
12244 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
12245 int UNUSED written
= 0;
12246 IADDR UNUSED pc
= abuf
->addr
;
12247 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
12249 ((void) 0); /*nop*/
12255 /* ftne: ftne$pack $FCCi_2,$GRi,$GRj */
12258 SEM_FN_NAME (frvbf
,ftne
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
12260 #define FLD(f) abuf->fields.sfmt_ftne.f
12261 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
12262 int UNUSED written
= 0;
12263 IADDR UNUSED pc
= abuf
->addr
;
12264 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
12266 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 4), 2)), ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 1))))) {
12272 if (NEBI (CPU (h_psr_esr
), 0)) {
12280 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
12284 abuf
->written
= written
;
12289 /* fteq: fteq$pack $FCCi_2,$GRi,$GRj */
12292 SEM_FN_NAME (frvbf
,fteq
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
12294 #define FLD(f) abuf->fields.sfmt_ftne.f
12295 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
12296 int UNUSED written
= 0;
12297 IADDR UNUSED pc
= abuf
->addr
;
12298 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
12300 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 8), 3))) {
12306 if (NEBI (CPU (h_psr_esr
), 0)) {
12314 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
12318 abuf
->written
= written
;
12323 /* ftlg: ftlg$pack $FCCi_2,$GRi,$GRj */
12326 SEM_FN_NAME (frvbf
,ftlg
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
12328 #define FLD(f) abuf->fields.sfmt_ftne.f
12329 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
12330 int UNUSED written
= 0;
12331 IADDR UNUSED pc
= abuf
->addr
;
12332 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
12334 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 4), 2)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 2), 1)))) {
12340 if (NEBI (CPU (h_psr_esr
), 0)) {
12348 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
12352 abuf
->written
= written
;
12357 /* ftue: ftue$pack $FCCi_2,$GRi,$GRj */
12360 SEM_FN_NAME (frvbf
,ftue
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
12362 #define FLD(f) abuf->fields.sfmt_ftne.f
12363 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
12364 int UNUSED written
= 0;
12365 IADDR UNUSED pc
= abuf
->addr
;
12366 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
12368 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 1)))) {
12374 if (NEBI (CPU (h_psr_esr
), 0)) {
12382 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
12386 abuf
->written
= written
;
12391 /* ftul: ftul$pack $FCCi_2,$GRi,$GRj */
12394 SEM_FN_NAME (frvbf
,ftul
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
12396 #define FLD(f) abuf->fields.sfmt_ftne.f
12397 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
12398 int UNUSED written
= 0;
12399 IADDR UNUSED pc
= abuf
->addr
;
12400 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
12402 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 1)))) {
12408 if (NEBI (CPU (h_psr_esr
), 0)) {
12416 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
12420 abuf
->written
= written
;
12425 /* ftge: ftge$pack $FCCi_2,$GRi,$GRj */
12428 SEM_FN_NAME (frvbf
,ftge
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
12430 #define FLD(f) abuf->fields.sfmt_ftne.f
12431 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
12432 int UNUSED written
= 0;
12433 IADDR UNUSED pc
= abuf
->addr
;
12434 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
12436 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 2), 1)))) {
12442 if (NEBI (CPU (h_psr_esr
), 0)) {
12450 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
12454 abuf
->written
= written
;
12459 /* ftlt: ftlt$pack $FCCi_2,$GRi,$GRj */
12462 SEM_FN_NAME (frvbf
,ftlt
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
12464 #define FLD(f) abuf->fields.sfmt_ftne.f
12465 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
12466 int UNUSED written
= 0;
12467 IADDR UNUSED pc
= abuf
->addr
;
12468 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
12470 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 4), 2))) {
12476 if (NEBI (CPU (h_psr_esr
), 0)) {
12484 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
12488 abuf
->written
= written
;
12493 /* ftuge: ftuge$pack $FCCi_2,$GRi,$GRj */
12496 SEM_FN_NAME (frvbf
,ftuge
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
12498 #define FLD(f) abuf->fields.sfmt_ftne.f
12499 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
12500 int UNUSED written
= 0;
12501 IADDR UNUSED pc
= abuf
->addr
;
12502 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
12504 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 8), 3)), ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 1))))) {
12510 if (NEBI (CPU (h_psr_esr
), 0)) {
12518 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
12522 abuf
->written
= written
;
12527 /* ftug: ftug$pack $FCCi_2,$GRi,$GRj */
12530 SEM_FN_NAME (frvbf
,ftug
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
12532 #define FLD(f) abuf->fields.sfmt_ftne.f
12533 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
12534 int UNUSED written
= 0;
12535 IADDR UNUSED pc
= abuf
->addr
;
12536 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
12538 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 1)))) {
12544 if (NEBI (CPU (h_psr_esr
), 0)) {
12552 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
12556 abuf
->written
= written
;
12561 /* ftle: ftle$pack $FCCi_2,$GRi,$GRj */
12564 SEM_FN_NAME (frvbf
,ftle
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
12566 #define FLD(f) abuf->fields.sfmt_ftne.f
12567 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
12568 int UNUSED written
= 0;
12569 IADDR UNUSED pc
= abuf
->addr
;
12570 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
12572 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 4), 2)))) {
12578 if (NEBI (CPU (h_psr_esr
), 0)) {
12586 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
12590 abuf
->written
= written
;
12595 /* ftgt: ftgt$pack $FCCi_2,$GRi,$GRj */
12598 SEM_FN_NAME (frvbf
,ftgt
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
12600 #define FLD(f) abuf->fields.sfmt_ftne.f
12601 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
12602 int UNUSED written
= 0;
12603 IADDR UNUSED pc
= abuf
->addr
;
12604 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
12606 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 2), 1))) {
12612 if (NEBI (CPU (h_psr_esr
), 0)) {
12620 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
12624 abuf
->written
= written
;
12629 /* ftule: ftule$pack $FCCi_2,$GRi,$GRj */
12632 SEM_FN_NAME (frvbf
,ftule
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
12634 #define FLD(f) abuf->fields.sfmt_ftne.f
12635 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
12636 int UNUSED written
= 0;
12637 IADDR UNUSED pc
= abuf
->addr
;
12638 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
12640 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 8), 3)), ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 1))))) {
12646 if (NEBI (CPU (h_psr_esr
), 0)) {
12654 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
12658 abuf
->written
= written
;
12663 /* ftu: ftu$pack $FCCi_2,$GRi,$GRj */
12666 SEM_FN_NAME (frvbf
,ftu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
12668 #define FLD(f) abuf->fields.sfmt_ftne.f
12669 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
12670 int UNUSED written
= 0;
12671 IADDR UNUSED pc
= abuf
->addr
;
12672 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
12674 if (TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 1))) {
12680 if (NEBI (CPU (h_psr_esr
), 0)) {
12688 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
12692 abuf
->written
= written
;
12697 /* fto: fto$pack $FCCi_2,$GRi,$GRj */
12700 SEM_FN_NAME (frvbf
,fto
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
12702 #define FLD(f) abuf->fields.sfmt_ftne.f
12703 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
12704 int UNUSED written
= 0;
12705 IADDR UNUSED pc
= abuf
->addr
;
12706 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
12708 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 8), 3)), ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 4), 2)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 2), 1))))) {
12714 if (NEBI (CPU (h_psr_esr
), 0)) {
12722 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)));
12726 abuf
->written
= written
;
12731 /* tira: tira$pack $GRi,$s12 */
12734 SEM_FN_NAME (frvbf
,tira
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
12736 #define FLD(f) abuf->fields.sfmt_ftine.f
12737 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
12738 int UNUSED written
= 0;
12739 IADDR UNUSED pc
= abuf
->addr
;
12740 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
12747 if (NEBI (CPU (h_psr_esr
), 0)) {
12755 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
12758 abuf
->written
= written
;
12763 /* tino: tino$pack */
12766 SEM_FN_NAME (frvbf
,tino
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
12768 #define FLD(f) abuf->fields.fmt_empty.f
12769 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
12770 int UNUSED written
= 0;
12771 IADDR UNUSED pc
= abuf
->addr
;
12772 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
12774 ((void) 0); /*nop*/
12780 /* tieq: tieq$pack $ICCi_2,$GRi,$s12 */
12783 SEM_FN_NAME (frvbf
,tieq
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
12785 #define FLD(f) abuf->fields.sfmt_tieq.f
12786 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
12787 int UNUSED written
= 0;
12788 IADDR UNUSED pc
= abuf
->addr
;
12789 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
12791 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 4), 2))) {
12797 if (NEBI (CPU (h_psr_esr
), 0)) {
12805 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
12809 abuf
->written
= written
;
12814 /* tine: tine$pack $ICCi_2,$GRi,$s12 */
12817 SEM_FN_NAME (frvbf
,tine
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
12819 #define FLD(f) abuf->fields.sfmt_tieq.f
12820 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
12821 int UNUSED written
= 0;
12822 IADDR UNUSED pc
= abuf
->addr
;
12823 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
12825 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 4), 2)))) {
12831 if (NEBI (CPU (h_psr_esr
), 0)) {
12839 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
12843 abuf
->written
= written
;
12848 /* tile: tile$pack $ICCi_2,$GRi,$s12 */
12851 SEM_FN_NAME (frvbf
,tile
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
12853 #define FLD(f) abuf->fields.sfmt_tieq.f
12854 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
12855 int UNUSED written
= 0;
12856 IADDR UNUSED pc
= abuf
->addr
;
12857 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
12859 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 4), 2)), XORBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 2), 1))))) {
12865 if (NEBI (CPU (h_psr_esr
), 0)) {
12873 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
12877 abuf
->written
= written
;
12882 /* tigt: tigt$pack $ICCi_2,$GRi,$s12 */
12885 SEM_FN_NAME (frvbf
,tigt
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
12887 #define FLD(f) abuf->fields.sfmt_tieq.f
12888 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
12889 int UNUSED written
= 0;
12890 IADDR UNUSED pc
= abuf
->addr
;
12891 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
12893 if (NOTBI (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 4), 2)), XORBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 2), 1)))))) {
12899 if (NEBI (CPU (h_psr_esr
), 0)) {
12907 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
12911 abuf
->written
= written
;
12916 /* tilt: tilt$pack $ICCi_2,$GRi,$s12 */
12919 SEM_FN_NAME (frvbf
,tilt
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
12921 #define FLD(f) abuf->fields.sfmt_tieq.f
12922 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
12923 int UNUSED written
= 0;
12924 IADDR UNUSED pc
= abuf
->addr
;
12925 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
12927 if (XORBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 2), 1)))) {
12933 if (NEBI (CPU (h_psr_esr
), 0)) {
12941 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
12945 abuf
->written
= written
;
12950 /* tige: tige$pack $ICCi_2,$GRi,$s12 */
12953 SEM_FN_NAME (frvbf
,tige
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
12955 #define FLD(f) abuf->fields.sfmt_tieq.f
12956 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
12957 int UNUSED written
= 0;
12958 IADDR UNUSED pc
= abuf
->addr
;
12959 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
12961 if (NOTBI (XORBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 2), 1))))) {
12967 if (NEBI (CPU (h_psr_esr
), 0)) {
12975 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
12979 abuf
->written
= written
;
12984 /* tils: tils$pack $ICCi_2,$GRi,$s12 */
12987 SEM_FN_NAME (frvbf
,tils
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
12989 #define FLD(f) abuf->fields.sfmt_tieq.f
12990 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
12991 int UNUSED written
= 0;
12992 IADDR UNUSED pc
= abuf
->addr
;
12993 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
12995 if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 4), 2)))) {
13001 if (NEBI (CPU (h_psr_esr
), 0)) {
13009 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
13013 abuf
->written
= written
;
13018 /* tihi: tihi$pack $ICCi_2,$GRi,$s12 */
13021 SEM_FN_NAME (frvbf
,tihi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
13023 #define FLD(f) abuf->fields.sfmt_tieq.f
13024 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
13025 int UNUSED written
= 0;
13026 IADDR UNUSED pc
= abuf
->addr
;
13027 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
13029 if (NOTBI (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 4), 2))))) {
13035 if (NEBI (CPU (h_psr_esr
), 0)) {
13043 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
13047 abuf
->written
= written
;
13052 /* tic: tic$pack $ICCi_2,$GRi,$s12 */
13055 SEM_FN_NAME (frvbf
,tic
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
13057 #define FLD(f) abuf->fields.sfmt_tieq.f
13058 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
13059 int UNUSED written
= 0;
13060 IADDR UNUSED pc
= abuf
->addr
;
13061 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
13063 if (TRUNCQIBI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 1))) {
13069 if (NEBI (CPU (h_psr_esr
), 0)) {
13077 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
13081 abuf
->written
= written
;
13086 /* tinc: tinc$pack $ICCi_2,$GRi,$s12 */
13089 SEM_FN_NAME (frvbf
,tinc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
13091 #define FLD(f) abuf->fields.sfmt_tieq.f
13092 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
13093 int UNUSED written
= 0;
13094 IADDR UNUSED pc
= abuf
->addr
;
13095 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
13097 if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 1)))) {
13103 if (NEBI (CPU (h_psr_esr
), 0)) {
13111 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
13115 abuf
->written
= written
;
13120 /* tin: tin$pack $ICCi_2,$GRi,$s12 */
13123 SEM_FN_NAME (frvbf
,tin
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
13125 #define FLD(f) abuf->fields.sfmt_tieq.f
13126 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
13127 int UNUSED written
= 0;
13128 IADDR UNUSED pc
= abuf
->addr
;
13129 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
13131 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 8), 3))) {
13137 if (NEBI (CPU (h_psr_esr
), 0)) {
13145 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
13149 abuf
->written
= written
;
13154 /* tip: tip$pack $ICCi_2,$GRi,$s12 */
13157 SEM_FN_NAME (frvbf
,tip
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
13159 #define FLD(f) abuf->fields.sfmt_tieq.f
13160 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
13161 int UNUSED written
= 0;
13162 IADDR UNUSED pc
= abuf
->addr
;
13163 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
13165 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 8), 3)))) {
13171 if (NEBI (CPU (h_psr_esr
), 0)) {
13179 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
13183 abuf
->written
= written
;
13188 /* tiv: tiv$pack $ICCi_2,$GRi,$s12 */
13191 SEM_FN_NAME (frvbf
,tiv
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
13193 #define FLD(f) abuf->fields.sfmt_tieq.f
13194 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
13195 int UNUSED written
= 0;
13196 IADDR UNUSED pc
= abuf
->addr
;
13197 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
13199 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 2), 1))) {
13205 if (NEBI (CPU (h_psr_esr
), 0)) {
13213 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
13217 abuf
->written
= written
;
13222 /* tinv: tinv$pack $ICCi_2,$GRi,$s12 */
13225 SEM_FN_NAME (frvbf
,tinv
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
13227 #define FLD(f) abuf->fields.sfmt_tieq.f
13228 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
13229 int UNUSED written
= 0;
13230 IADDR UNUSED pc
= abuf
->addr
;
13231 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
13233 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_2
)]), 2), 1)))) {
13239 if (NEBI (CPU (h_psr_esr
), 0)) {
13247 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
13251 abuf
->written
= written
;
13256 /* ftira: ftira$pack $GRi,$s12 */
13259 SEM_FN_NAME (frvbf
,ftira
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
13261 #define FLD(f) abuf->fields.sfmt_ftine.f
13262 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
13263 int UNUSED written
= 0;
13264 IADDR UNUSED pc
= abuf
->addr
;
13265 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
13272 if (NEBI (CPU (h_psr_esr
), 0)) {
13280 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
13283 abuf
->written
= written
;
13288 /* ftino: ftino$pack */
13291 SEM_FN_NAME (frvbf
,ftino
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
13293 #define FLD(f) abuf->fields.fmt_empty.f
13294 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
13295 int UNUSED written
= 0;
13296 IADDR UNUSED pc
= abuf
->addr
;
13297 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
13299 ((void) 0); /*nop*/
13305 /* ftine: ftine$pack $FCCi_2,$GRi,$s12 */
13308 SEM_FN_NAME (frvbf
,ftine
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
13310 #define FLD(f) abuf->fields.sfmt_ftine.f
13311 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
13312 int UNUSED written
= 0;
13313 IADDR UNUSED pc
= abuf
->addr
;
13314 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
13316 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 4), 2)), ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 1))))) {
13322 if (NEBI (CPU (h_psr_esr
), 0)) {
13330 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
13334 abuf
->written
= written
;
13339 /* ftieq: ftieq$pack $FCCi_2,$GRi,$s12 */
13342 SEM_FN_NAME (frvbf
,ftieq
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
13344 #define FLD(f) abuf->fields.sfmt_ftine.f
13345 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
13346 int UNUSED written
= 0;
13347 IADDR UNUSED pc
= abuf
->addr
;
13348 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
13350 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 8), 3))) {
13356 if (NEBI (CPU (h_psr_esr
), 0)) {
13364 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
13368 abuf
->written
= written
;
13373 /* ftilg: ftilg$pack $FCCi_2,$GRi,$s12 */
13376 SEM_FN_NAME (frvbf
,ftilg
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
13378 #define FLD(f) abuf->fields.sfmt_ftine.f
13379 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
13380 int UNUSED written
= 0;
13381 IADDR UNUSED pc
= abuf
->addr
;
13382 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
13384 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 4), 2)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 2), 1)))) {
13390 if (NEBI (CPU (h_psr_esr
), 0)) {
13398 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
13402 abuf
->written
= written
;
13407 /* ftiue: ftiue$pack $FCCi_2,$GRi,$s12 */
13410 SEM_FN_NAME (frvbf
,ftiue
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
13412 #define FLD(f) abuf->fields.sfmt_ftine.f
13413 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
13414 int UNUSED written
= 0;
13415 IADDR UNUSED pc
= abuf
->addr
;
13416 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
13418 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 1)))) {
13424 if (NEBI (CPU (h_psr_esr
), 0)) {
13432 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
13436 abuf
->written
= written
;
13441 /* ftiul: ftiul$pack $FCCi_2,$GRi,$s12 */
13444 SEM_FN_NAME (frvbf
,ftiul
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
13446 #define FLD(f) abuf->fields.sfmt_ftine.f
13447 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
13448 int UNUSED written
= 0;
13449 IADDR UNUSED pc
= abuf
->addr
;
13450 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
13452 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 1)))) {
13458 if (NEBI (CPU (h_psr_esr
), 0)) {
13466 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
13470 abuf
->written
= written
;
13475 /* ftige: ftige$pack $FCCi_2,$GRi,$s12 */
13478 SEM_FN_NAME (frvbf
,ftige
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
13480 #define FLD(f) abuf->fields.sfmt_ftine.f
13481 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
13482 int UNUSED written
= 0;
13483 IADDR UNUSED pc
= abuf
->addr
;
13484 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
13486 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 2), 1)))) {
13492 if (NEBI (CPU (h_psr_esr
), 0)) {
13500 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
13504 abuf
->written
= written
;
13509 /* ftilt: ftilt$pack $FCCi_2,$GRi,$s12 */
13512 SEM_FN_NAME (frvbf
,ftilt
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
13514 #define FLD(f) abuf->fields.sfmt_ftine.f
13515 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
13516 int UNUSED written
= 0;
13517 IADDR UNUSED pc
= abuf
->addr
;
13518 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
13520 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 4), 2))) {
13526 if (NEBI (CPU (h_psr_esr
), 0)) {
13534 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
13538 abuf
->written
= written
;
13543 /* ftiuge: ftiuge$pack $FCCi_2,$GRi,$s12 */
13546 SEM_FN_NAME (frvbf
,ftiuge
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
13548 #define FLD(f) abuf->fields.sfmt_ftine.f
13549 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
13550 int UNUSED written
= 0;
13551 IADDR UNUSED pc
= abuf
->addr
;
13552 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
13554 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 8), 3)), ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 1))))) {
13560 if (NEBI (CPU (h_psr_esr
), 0)) {
13568 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
13572 abuf
->written
= written
;
13577 /* ftiug: ftiug$pack $FCCi_2,$GRi,$s12 */
13580 SEM_FN_NAME (frvbf
,ftiug
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
13582 #define FLD(f) abuf->fields.sfmt_ftine.f
13583 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
13584 int UNUSED written
= 0;
13585 IADDR UNUSED pc
= abuf
->addr
;
13586 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
13588 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 1)))) {
13594 if (NEBI (CPU (h_psr_esr
), 0)) {
13602 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
13606 abuf
->written
= written
;
13611 /* ftile: ftile$pack $FCCi_2,$GRi,$s12 */
13614 SEM_FN_NAME (frvbf
,ftile
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
13616 #define FLD(f) abuf->fields.sfmt_ftine.f
13617 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
13618 int UNUSED written
= 0;
13619 IADDR UNUSED pc
= abuf
->addr
;
13620 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
13622 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 4), 2)))) {
13628 if (NEBI (CPU (h_psr_esr
), 0)) {
13636 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
13640 abuf
->written
= written
;
13645 /* ftigt: ftigt$pack $FCCi_2,$GRi,$s12 */
13648 SEM_FN_NAME (frvbf
,ftigt
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
13650 #define FLD(f) abuf->fields.sfmt_ftine.f
13651 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
13652 int UNUSED written
= 0;
13653 IADDR UNUSED pc
= abuf
->addr
;
13654 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
13656 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 2), 1))) {
13662 if (NEBI (CPU (h_psr_esr
), 0)) {
13670 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
13674 abuf
->written
= written
;
13679 /* ftiule: ftiule$pack $FCCi_2,$GRi,$s12 */
13682 SEM_FN_NAME (frvbf
,ftiule
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
13684 #define FLD(f) abuf->fields.sfmt_ftine.f
13685 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
13686 int UNUSED written
= 0;
13687 IADDR UNUSED pc
= abuf
->addr
;
13688 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
13690 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 8), 3)), ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 1))))) {
13696 if (NEBI (CPU (h_psr_esr
), 0)) {
13704 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
13708 abuf
->written
= written
;
13713 /* ftiu: ftiu$pack $FCCi_2,$GRi,$s12 */
13716 SEM_FN_NAME (frvbf
,ftiu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
13718 #define FLD(f) abuf->fields.sfmt_ftine.f
13719 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
13720 int UNUSED written
= 0;
13721 IADDR UNUSED pc
= abuf
->addr
;
13722 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
13724 if (TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 1))) {
13730 if (NEBI (CPU (h_psr_esr
), 0)) {
13738 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
13742 abuf
->written
= written
;
13747 /* ftio: ftio$pack $FCCi_2,$GRi,$s12 */
13750 SEM_FN_NAME (frvbf
,ftio
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
13752 #define FLD(f) abuf->fields.sfmt_ftine.f
13753 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
13754 int UNUSED written
= 0;
13755 IADDR UNUSED pc
= abuf
->addr
;
13756 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
13758 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 8), 3)), ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 4), 2)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_2
)]), 2), 1))))) {
13764 if (NEBI (CPU (h_psr_esr
), 0)) {
13772 frv_itrap (current_cpu
, pc
, GET_H_GR (FLD (f_GRi
)), FLD (f_d12
));
13776 abuf
->written
= written
;
13781 /* break: break$pack */
13784 SEM_FN_NAME (frvbf
,break) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
13786 #define FLD(f) abuf->fields.sfmt_break.f
13787 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
13788 int UNUSED written
= 0;
13789 IADDR UNUSED pc
= abuf
->addr
;
13790 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
13799 frv_break (current_cpu
);
13806 /* mtrap: mtrap$pack */
13809 SEM_FN_NAME (frvbf
,mtrap
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
13811 #define FLD(f) abuf->fields.fmt_empty.f
13812 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
13813 int UNUSED written
= 0;
13814 IADDR UNUSED pc
= abuf
->addr
;
13815 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
13817 frv_mtrap (current_cpu
);
13823 /* andcr: andcr$pack $CRi,$CRj,$CRk */
13826 SEM_FN_NAME (frvbf
,andcr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
13828 #define FLD(f) abuf->fields.sfmt_andcr.f
13829 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
13830 int UNUSED written
= 0;
13831 IADDR UNUSED pc
= abuf
->addr
;
13832 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
13835 UQI opval
= frvbf_cr_logic (current_cpu
, 0, CPU (h_cccr
[FLD (f_CRi
)]), CPU (h_cccr
[FLD (f_CRj
)]));
13836 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRk
)]), opval
);
13837 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
13844 /* orcr: orcr$pack $CRi,$CRj,$CRk */
13847 SEM_FN_NAME (frvbf
,orcr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
13849 #define FLD(f) abuf->fields.sfmt_andcr.f
13850 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
13851 int UNUSED written
= 0;
13852 IADDR UNUSED pc
= abuf
->addr
;
13853 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
13856 UQI opval
= frvbf_cr_logic (current_cpu
, 1, CPU (h_cccr
[FLD (f_CRi
)]), CPU (h_cccr
[FLD (f_CRj
)]));
13857 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRk
)]), opval
);
13858 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
13865 /* xorcr: xorcr$pack $CRi,$CRj,$CRk */
13868 SEM_FN_NAME (frvbf
,xorcr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
13870 #define FLD(f) abuf->fields.sfmt_andcr.f
13871 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
13872 int UNUSED written
= 0;
13873 IADDR UNUSED pc
= abuf
->addr
;
13874 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
13877 UQI opval
= frvbf_cr_logic (current_cpu
, 2, CPU (h_cccr
[FLD (f_CRi
)]), CPU (h_cccr
[FLD (f_CRj
)]));
13878 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRk
)]), opval
);
13879 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
13886 /* nandcr: nandcr$pack $CRi,$CRj,$CRk */
13889 SEM_FN_NAME (frvbf
,nandcr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
13891 #define FLD(f) abuf->fields.sfmt_andcr.f
13892 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
13893 int UNUSED written
= 0;
13894 IADDR UNUSED pc
= abuf
->addr
;
13895 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
13898 UQI opval
= frvbf_cr_logic (current_cpu
, 3, CPU (h_cccr
[FLD (f_CRi
)]), CPU (h_cccr
[FLD (f_CRj
)]));
13899 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRk
)]), opval
);
13900 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
13907 /* norcr: norcr$pack $CRi,$CRj,$CRk */
13910 SEM_FN_NAME (frvbf
,norcr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
13912 #define FLD(f) abuf->fields.sfmt_andcr.f
13913 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
13914 int UNUSED written
= 0;
13915 IADDR UNUSED pc
= abuf
->addr
;
13916 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
13919 UQI opval
= frvbf_cr_logic (current_cpu
, 4, CPU (h_cccr
[FLD (f_CRi
)]), CPU (h_cccr
[FLD (f_CRj
)]));
13920 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRk
)]), opval
);
13921 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
13928 /* andncr: andncr$pack $CRi,$CRj,$CRk */
13931 SEM_FN_NAME (frvbf
,andncr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
13933 #define FLD(f) abuf->fields.sfmt_andcr.f
13934 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
13935 int UNUSED written
= 0;
13936 IADDR UNUSED pc
= abuf
->addr
;
13937 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
13940 UQI opval
= frvbf_cr_logic (current_cpu
, 5, CPU (h_cccr
[FLD (f_CRi
)]), CPU (h_cccr
[FLD (f_CRj
)]));
13941 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRk
)]), opval
);
13942 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
13949 /* orncr: orncr$pack $CRi,$CRj,$CRk */
13952 SEM_FN_NAME (frvbf
,orncr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
13954 #define FLD(f) abuf->fields.sfmt_andcr.f
13955 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
13956 int UNUSED written
= 0;
13957 IADDR UNUSED pc
= abuf
->addr
;
13958 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
13961 UQI opval
= frvbf_cr_logic (current_cpu
, 6, CPU (h_cccr
[FLD (f_CRi
)]), CPU (h_cccr
[FLD (f_CRj
)]));
13962 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRk
)]), opval
);
13963 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
13970 /* nandncr: nandncr$pack $CRi,$CRj,$CRk */
13973 SEM_FN_NAME (frvbf
,nandncr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
13975 #define FLD(f) abuf->fields.sfmt_andcr.f
13976 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
13977 int UNUSED written
= 0;
13978 IADDR UNUSED pc
= abuf
->addr
;
13979 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
13982 UQI opval
= frvbf_cr_logic (current_cpu
, 7, CPU (h_cccr
[FLD (f_CRi
)]), CPU (h_cccr
[FLD (f_CRj
)]));
13983 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRk
)]), opval
);
13984 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
13991 /* norncr: norncr$pack $CRi,$CRj,$CRk */
13994 SEM_FN_NAME (frvbf
,norncr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
13996 #define FLD(f) abuf->fields.sfmt_andcr.f
13997 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
13998 int UNUSED written
= 0;
13999 IADDR UNUSED pc
= abuf
->addr
;
14000 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
14003 UQI opval
= frvbf_cr_logic (current_cpu
, 8, CPU (h_cccr
[FLD (f_CRi
)]), CPU (h_cccr
[FLD (f_CRj
)]));
14004 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRk
)]), opval
);
14005 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14012 /* notcr: notcr$pack $CRj,$CRk */
14015 SEM_FN_NAME (frvbf
,notcr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
14017 #define FLD(f) abuf->fields.sfmt_andcr.f
14018 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
14019 int UNUSED written
= 0;
14020 IADDR UNUSED pc
= abuf
->addr
;
14021 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
14024 UQI opval
= XORQI (CPU (h_cccr
[FLD (f_CRj
)]), 1);
14025 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRk
)]), opval
);
14026 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14033 /* ckra: ckra$pack $CRj_int */
14036 SEM_FN_NAME (frvbf
,ckra
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
14038 #define FLD(f) abuf->fields.sfmt_cckeq.f
14039 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
14040 int UNUSED written
= 0;
14041 IADDR UNUSED pc
= abuf
->addr
;
14042 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
14046 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
14047 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14054 /* ckno: ckno$pack $CRj_int */
14057 SEM_FN_NAME (frvbf
,ckno
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
14059 #define FLD(f) abuf->fields.sfmt_cckeq.f
14060 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
14061 int UNUSED written
= 0;
14062 IADDR UNUSED pc
= abuf
->addr
;
14063 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
14067 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
14068 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14075 /* ckeq: ckeq$pack $ICCi_3,$CRj_int */
14078 SEM_FN_NAME (frvbf
,ckeq
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
14080 #define FLD(f) abuf->fields.sfmt_cckeq.f
14081 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
14082 int UNUSED written
= 0;
14083 IADDR UNUSED pc
= abuf
->addr
;
14084 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
14086 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_3
)]), 4), 2))) {
14089 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
14090 written
|= (1 << 1);
14091 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14096 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
14097 written
|= (1 << 1);
14098 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14102 abuf
->written
= written
;
14107 /* ckne: ckne$pack $ICCi_3,$CRj_int */
14110 SEM_FN_NAME (frvbf
,ckne
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
14112 #define FLD(f) abuf->fields.sfmt_cckeq.f
14113 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
14114 int UNUSED written
= 0;
14115 IADDR UNUSED pc
= abuf
->addr
;
14116 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
14118 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_3
)]), 4), 2)))) {
14121 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
14122 written
|= (1 << 1);
14123 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14128 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
14129 written
|= (1 << 1);
14130 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14134 abuf
->written
= written
;
14139 /* ckle: ckle$pack $ICCi_3,$CRj_int */
14142 SEM_FN_NAME (frvbf
,ckle
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
14144 #define FLD(f) abuf->fields.sfmt_cckeq.f
14145 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
14146 int UNUSED written
= 0;
14147 IADDR UNUSED pc
= abuf
->addr
;
14148 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
14150 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_3
)]), 4), 2)), XORBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_3
)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_3
)]), 2), 1))))) {
14153 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
14154 written
|= (1 << 1);
14155 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14160 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
14161 written
|= (1 << 1);
14162 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14166 abuf
->written
= written
;
14171 /* ckgt: ckgt$pack $ICCi_3,$CRj_int */
14174 SEM_FN_NAME (frvbf
,ckgt
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
14176 #define FLD(f) abuf->fields.sfmt_cckeq.f
14177 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
14178 int UNUSED written
= 0;
14179 IADDR UNUSED pc
= abuf
->addr
;
14180 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
14182 if (NOTBI (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_3
)]), 4), 2)), XORBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_3
)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_3
)]), 2), 1)))))) {
14185 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
14186 written
|= (1 << 1);
14187 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14192 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
14193 written
|= (1 << 1);
14194 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14198 abuf
->written
= written
;
14203 /* cklt: cklt$pack $ICCi_3,$CRj_int */
14206 SEM_FN_NAME (frvbf
,cklt
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
14208 #define FLD(f) abuf->fields.sfmt_cckeq.f
14209 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
14210 int UNUSED written
= 0;
14211 IADDR UNUSED pc
= abuf
->addr
;
14212 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
14214 if (XORBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_3
)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_3
)]), 2), 1)))) {
14217 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
14218 written
|= (1 << 1);
14219 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14224 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
14225 written
|= (1 << 1);
14226 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14230 abuf
->written
= written
;
14235 /* ckge: ckge$pack $ICCi_3,$CRj_int */
14238 SEM_FN_NAME (frvbf
,ckge
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
14240 #define FLD(f) abuf->fields.sfmt_cckeq.f
14241 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
14242 int UNUSED written
= 0;
14243 IADDR UNUSED pc
= abuf
->addr
;
14244 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
14246 if (NOTBI (XORBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_3
)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_3
)]), 2), 1))))) {
14249 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
14250 written
|= (1 << 1);
14251 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14256 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
14257 written
|= (1 << 1);
14258 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14262 abuf
->written
= written
;
14267 /* ckls: ckls$pack $ICCi_3,$CRj_int */
14270 SEM_FN_NAME (frvbf
,ckls
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
14272 #define FLD(f) abuf->fields.sfmt_cckeq.f
14273 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
14274 int UNUSED written
= 0;
14275 IADDR UNUSED pc
= abuf
->addr
;
14276 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
14278 if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_3
)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_3
)]), 4), 2)))) {
14281 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
14282 written
|= (1 << 1);
14283 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14288 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
14289 written
|= (1 << 1);
14290 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14294 abuf
->written
= written
;
14299 /* ckhi: ckhi$pack $ICCi_3,$CRj_int */
14302 SEM_FN_NAME (frvbf
,ckhi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
14304 #define FLD(f) abuf->fields.sfmt_cckeq.f
14305 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
14306 int UNUSED written
= 0;
14307 IADDR UNUSED pc
= abuf
->addr
;
14308 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
14310 if (NOTBI (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_3
)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_3
)]), 4), 2))))) {
14313 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
14314 written
|= (1 << 1);
14315 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14320 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
14321 written
|= (1 << 1);
14322 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14326 abuf
->written
= written
;
14331 /* ckc: ckc$pack $ICCi_3,$CRj_int */
14334 SEM_FN_NAME (frvbf
,ckc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
14336 #define FLD(f) abuf->fields.sfmt_cckeq.f
14337 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
14338 int UNUSED written
= 0;
14339 IADDR UNUSED pc
= abuf
->addr
;
14340 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
14342 if (TRUNCQIBI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_3
)]), 1))) {
14345 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
14346 written
|= (1 << 1);
14347 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14352 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
14353 written
|= (1 << 1);
14354 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14358 abuf
->written
= written
;
14363 /* cknc: cknc$pack $ICCi_3,$CRj_int */
14366 SEM_FN_NAME (frvbf
,cknc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
14368 #define FLD(f) abuf->fields.sfmt_cckeq.f
14369 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
14370 int UNUSED written
= 0;
14371 IADDR UNUSED pc
= abuf
->addr
;
14372 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
14374 if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_3
)]), 1)))) {
14377 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
14378 written
|= (1 << 1);
14379 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14384 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
14385 written
|= (1 << 1);
14386 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14390 abuf
->written
= written
;
14395 /* ckn: ckn$pack $ICCi_3,$CRj_int */
14398 SEM_FN_NAME (frvbf
,ckn
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
14400 #define FLD(f) abuf->fields.sfmt_cckeq.f
14401 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
14402 int UNUSED written
= 0;
14403 IADDR UNUSED pc
= abuf
->addr
;
14404 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
14406 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_3
)]), 8), 3))) {
14409 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
14410 written
|= (1 << 1);
14411 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14416 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
14417 written
|= (1 << 1);
14418 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14422 abuf
->written
= written
;
14427 /* ckp: ckp$pack $ICCi_3,$CRj_int */
14430 SEM_FN_NAME (frvbf
,ckp
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
14432 #define FLD(f) abuf->fields.sfmt_cckeq.f
14433 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
14434 int UNUSED written
= 0;
14435 IADDR UNUSED pc
= abuf
->addr
;
14436 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
14438 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_3
)]), 8), 3)))) {
14441 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
14442 written
|= (1 << 1);
14443 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14448 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
14449 written
|= (1 << 1);
14450 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14454 abuf
->written
= written
;
14459 /* ckv: ckv$pack $ICCi_3,$CRj_int */
14462 SEM_FN_NAME (frvbf
,ckv
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
14464 #define FLD(f) abuf->fields.sfmt_cckeq.f
14465 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
14466 int UNUSED written
= 0;
14467 IADDR UNUSED pc
= abuf
->addr
;
14468 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
14470 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_3
)]), 2), 1))) {
14473 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
14474 written
|= (1 << 1);
14475 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14480 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
14481 written
|= (1 << 1);
14482 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14486 abuf
->written
= written
;
14491 /* cknv: cknv$pack $ICCi_3,$CRj_int */
14494 SEM_FN_NAME (frvbf
,cknv
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
14496 #define FLD(f) abuf->fields.sfmt_cckeq.f
14497 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
14498 int UNUSED written
= 0;
14499 IADDR UNUSED pc
= abuf
->addr
;
14500 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
14502 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_3
)]), 2), 1)))) {
14505 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
14506 written
|= (1 << 1);
14507 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14512 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
14513 written
|= (1 << 1);
14514 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14518 abuf
->written
= written
;
14523 /* fckra: fckra$pack $CRj_float */
14526 SEM_FN_NAME (frvbf
,fckra
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
14528 #define FLD(f) abuf->fields.sfmt_cfckne.f
14529 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
14530 int UNUSED written
= 0;
14531 IADDR UNUSED pc
= abuf
->addr
;
14532 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
14536 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
14537 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14544 /* fckno: fckno$pack $CRj_float */
14547 SEM_FN_NAME (frvbf
,fckno
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
14549 #define FLD(f) abuf->fields.sfmt_cfckne.f
14550 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
14551 int UNUSED written
= 0;
14552 IADDR UNUSED pc
= abuf
->addr
;
14553 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
14557 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
14558 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14565 /* fckne: fckne$pack $FCCi_3,$CRj_float */
14568 SEM_FN_NAME (frvbf
,fckne
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
14570 #define FLD(f) abuf->fields.sfmt_cfckne.f
14571 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
14572 int UNUSED written
= 0;
14573 IADDR UNUSED pc
= abuf
->addr
;
14574 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
14576 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 4), 2)), ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 1))))) {
14579 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
14580 written
|= (1 << 1);
14581 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14586 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
14587 written
|= (1 << 1);
14588 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14592 abuf
->written
= written
;
14597 /* fckeq: fckeq$pack $FCCi_3,$CRj_float */
14600 SEM_FN_NAME (frvbf
,fckeq
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
14602 #define FLD(f) abuf->fields.sfmt_cfckne.f
14603 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
14604 int UNUSED written
= 0;
14605 IADDR UNUSED pc
= abuf
->addr
;
14606 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
14608 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 8), 3))) {
14611 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
14612 written
|= (1 << 1);
14613 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14618 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
14619 written
|= (1 << 1);
14620 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14624 abuf
->written
= written
;
14629 /* fcklg: fcklg$pack $FCCi_3,$CRj_float */
14632 SEM_FN_NAME (frvbf
,fcklg
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
14634 #define FLD(f) abuf->fields.sfmt_cfckne.f
14635 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
14636 int UNUSED written
= 0;
14637 IADDR UNUSED pc
= abuf
->addr
;
14638 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
14640 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 4), 2)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 2), 1)))) {
14643 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
14644 written
|= (1 << 1);
14645 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14650 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
14651 written
|= (1 << 1);
14652 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14656 abuf
->written
= written
;
14661 /* fckue: fckue$pack $FCCi_3,$CRj_float */
14664 SEM_FN_NAME (frvbf
,fckue
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
14666 #define FLD(f) abuf->fields.sfmt_cfckne.f
14667 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
14668 int UNUSED written
= 0;
14669 IADDR UNUSED pc
= abuf
->addr
;
14670 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
14672 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 1)))) {
14675 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
14676 written
|= (1 << 1);
14677 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14682 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
14683 written
|= (1 << 1);
14684 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14688 abuf
->written
= written
;
14693 /* fckul: fckul$pack $FCCi_3,$CRj_float */
14696 SEM_FN_NAME (frvbf
,fckul
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
14698 #define FLD(f) abuf->fields.sfmt_cfckne.f
14699 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
14700 int UNUSED written
= 0;
14701 IADDR UNUSED pc
= abuf
->addr
;
14702 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
14704 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 1)))) {
14707 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
14708 written
|= (1 << 1);
14709 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14714 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
14715 written
|= (1 << 1);
14716 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14720 abuf
->written
= written
;
14725 /* fckge: fckge$pack $FCCi_3,$CRj_float */
14728 SEM_FN_NAME (frvbf
,fckge
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
14730 #define FLD(f) abuf->fields.sfmt_cfckne.f
14731 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
14732 int UNUSED written
= 0;
14733 IADDR UNUSED pc
= abuf
->addr
;
14734 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
14736 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 2), 1)))) {
14739 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
14740 written
|= (1 << 1);
14741 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14746 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
14747 written
|= (1 << 1);
14748 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14752 abuf
->written
= written
;
14757 /* fcklt: fcklt$pack $FCCi_3,$CRj_float */
14760 SEM_FN_NAME (frvbf
,fcklt
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
14762 #define FLD(f) abuf->fields.sfmt_cfckne.f
14763 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
14764 int UNUSED written
= 0;
14765 IADDR UNUSED pc
= abuf
->addr
;
14766 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
14768 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 4), 2))) {
14771 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
14772 written
|= (1 << 1);
14773 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14778 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
14779 written
|= (1 << 1);
14780 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14784 abuf
->written
= written
;
14789 /* fckuge: fckuge$pack $FCCi_3,$CRj_float */
14792 SEM_FN_NAME (frvbf
,fckuge
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
14794 #define FLD(f) abuf->fields.sfmt_cfckne.f
14795 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
14796 int UNUSED written
= 0;
14797 IADDR UNUSED pc
= abuf
->addr
;
14798 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
14800 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 8), 3)), ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 1))))) {
14803 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
14804 written
|= (1 << 1);
14805 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14810 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
14811 written
|= (1 << 1);
14812 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14816 abuf
->written
= written
;
14821 /* fckug: fckug$pack $FCCi_3,$CRj_float */
14824 SEM_FN_NAME (frvbf
,fckug
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
14826 #define FLD(f) abuf->fields.sfmt_cfckne.f
14827 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
14828 int UNUSED written
= 0;
14829 IADDR UNUSED pc
= abuf
->addr
;
14830 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
14832 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 1)))) {
14835 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
14836 written
|= (1 << 1);
14837 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14842 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
14843 written
|= (1 << 1);
14844 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14848 abuf
->written
= written
;
14853 /* fckle: fckle$pack $FCCi_3,$CRj_float */
14856 SEM_FN_NAME (frvbf
,fckle
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
14858 #define FLD(f) abuf->fields.sfmt_cfckne.f
14859 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
14860 int UNUSED written
= 0;
14861 IADDR UNUSED pc
= abuf
->addr
;
14862 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
14864 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 4), 2)))) {
14867 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
14868 written
|= (1 << 1);
14869 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14874 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
14875 written
|= (1 << 1);
14876 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14880 abuf
->written
= written
;
14885 /* fckgt: fckgt$pack $FCCi_3,$CRj_float */
14888 SEM_FN_NAME (frvbf
,fckgt
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
14890 #define FLD(f) abuf->fields.sfmt_cfckne.f
14891 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
14892 int UNUSED written
= 0;
14893 IADDR UNUSED pc
= abuf
->addr
;
14894 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
14896 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 2), 1))) {
14899 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
14900 written
|= (1 << 1);
14901 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14906 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
14907 written
|= (1 << 1);
14908 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14912 abuf
->written
= written
;
14917 /* fckule: fckule$pack $FCCi_3,$CRj_float */
14920 SEM_FN_NAME (frvbf
,fckule
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
14922 #define FLD(f) abuf->fields.sfmt_cfckne.f
14923 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
14924 int UNUSED written
= 0;
14925 IADDR UNUSED pc
= abuf
->addr
;
14926 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
14928 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 8), 3)), ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 1))))) {
14931 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
14932 written
|= (1 << 1);
14933 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14938 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
14939 written
|= (1 << 1);
14940 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14944 abuf
->written
= written
;
14949 /* fcku: fcku$pack $FCCi_3,$CRj_float */
14952 SEM_FN_NAME (frvbf
,fcku
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
14954 #define FLD(f) abuf->fields.sfmt_cfckne.f
14955 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
14956 int UNUSED written
= 0;
14957 IADDR UNUSED pc
= abuf
->addr
;
14958 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
14960 if (TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 1))) {
14963 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
14964 written
|= (1 << 1);
14965 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14970 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
14971 written
|= (1 << 1);
14972 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
14976 abuf
->written
= written
;
14981 /* fcko: fcko$pack $FCCi_3,$CRj_float */
14984 SEM_FN_NAME (frvbf
,fcko
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
14986 #define FLD(f) abuf->fields.sfmt_cfckne.f
14987 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
14988 int UNUSED written
= 0;
14989 IADDR UNUSED pc
= abuf
->addr
;
14990 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
14992 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 8), 3)), ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 4), 2)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 2), 1))))) {
14995 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
14996 written
|= (1 << 1);
14997 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15002 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
15003 written
|= (1 << 1);
15004 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15008 abuf
->written
= written
;
15013 /* cckra: cckra$pack $CRj_int,$CCi,$cond */
15016 SEM_FN_NAME (frvbf
,cckra
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
15018 #define FLD(f) abuf->fields.sfmt_cckeq.f
15019 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
15020 int UNUSED written
= 0;
15021 IADDR UNUSED pc
= abuf
->addr
;
15022 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
15024 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
15027 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
15028 written
|= (1 << 2);
15029 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15034 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
15035 written
|= (1 << 2);
15036 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15040 abuf
->written
= written
;
15045 /* cckno: cckno$pack $CRj_int,$CCi,$cond */
15048 SEM_FN_NAME (frvbf
,cckno
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
15050 #define FLD(f) abuf->fields.sfmt_cckeq.f
15051 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
15052 int UNUSED written
= 0;
15053 IADDR UNUSED pc
= abuf
->addr
;
15054 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
15056 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
15059 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
15060 written
|= (1 << 2);
15061 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15066 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
15067 written
|= (1 << 2);
15068 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15072 abuf
->written
= written
;
15077 /* cckeq: cckeq$pack $ICCi_3,$CRj_int,$CCi,$cond */
15080 SEM_FN_NAME (frvbf
,cckeq
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
15082 #define FLD(f) abuf->fields.sfmt_cckeq.f
15083 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
15084 int UNUSED written
= 0;
15085 IADDR UNUSED pc
= abuf
->addr
;
15086 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
15088 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
15089 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_3
)]), 4), 2))) {
15092 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
15093 written
|= (1 << 3);
15094 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15099 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
15100 written
|= (1 << 3);
15101 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15107 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
15108 written
|= (1 << 3);
15109 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15113 abuf
->written
= written
;
15118 /* cckne: cckne$pack $ICCi_3,$CRj_int,$CCi,$cond */
15121 SEM_FN_NAME (frvbf
,cckne
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
15123 #define FLD(f) abuf->fields.sfmt_cckeq.f
15124 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
15125 int UNUSED written
= 0;
15126 IADDR UNUSED pc
= abuf
->addr
;
15127 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
15129 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
15130 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_3
)]), 4), 2)))) {
15133 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
15134 written
|= (1 << 3);
15135 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15140 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
15141 written
|= (1 << 3);
15142 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15148 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
15149 written
|= (1 << 3);
15150 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15154 abuf
->written
= written
;
15159 /* cckle: cckle$pack $ICCi_3,$CRj_int,$CCi,$cond */
15162 SEM_FN_NAME (frvbf
,cckle
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
15164 #define FLD(f) abuf->fields.sfmt_cckeq.f
15165 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
15166 int UNUSED written
= 0;
15167 IADDR UNUSED pc
= abuf
->addr
;
15168 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
15170 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
15171 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_3
)]), 4), 2)), XORBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_3
)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_3
)]), 2), 1))))) {
15174 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
15175 written
|= (1 << 3);
15176 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15181 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
15182 written
|= (1 << 3);
15183 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15189 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
15190 written
|= (1 << 3);
15191 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15195 abuf
->written
= written
;
15200 /* cckgt: cckgt$pack $ICCi_3,$CRj_int,$CCi,$cond */
15203 SEM_FN_NAME (frvbf
,cckgt
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
15205 #define FLD(f) abuf->fields.sfmt_cckeq.f
15206 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
15207 int UNUSED written
= 0;
15208 IADDR UNUSED pc
= abuf
->addr
;
15209 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
15211 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
15212 if (NOTBI (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_3
)]), 4), 2)), XORBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_3
)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_3
)]), 2), 1)))))) {
15215 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
15216 written
|= (1 << 3);
15217 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15222 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
15223 written
|= (1 << 3);
15224 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15230 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
15231 written
|= (1 << 3);
15232 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15236 abuf
->written
= written
;
15241 /* ccklt: ccklt$pack $ICCi_3,$CRj_int,$CCi,$cond */
15244 SEM_FN_NAME (frvbf
,ccklt
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
15246 #define FLD(f) abuf->fields.sfmt_cckeq.f
15247 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
15248 int UNUSED written
= 0;
15249 IADDR UNUSED pc
= abuf
->addr
;
15250 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
15252 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
15253 if (XORBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_3
)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_3
)]), 2), 1)))) {
15256 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
15257 written
|= (1 << 3);
15258 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15263 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
15264 written
|= (1 << 3);
15265 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15271 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
15272 written
|= (1 << 3);
15273 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15277 abuf
->written
= written
;
15282 /* cckge: cckge$pack $ICCi_3,$CRj_int,$CCi,$cond */
15285 SEM_FN_NAME (frvbf
,cckge
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
15287 #define FLD(f) abuf->fields.sfmt_cckeq.f
15288 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
15289 int UNUSED written
= 0;
15290 IADDR UNUSED pc
= abuf
->addr
;
15291 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
15293 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
15294 if (NOTBI (XORBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_3
)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_3
)]), 2), 1))))) {
15297 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
15298 written
|= (1 << 3);
15299 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15304 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
15305 written
|= (1 << 3);
15306 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15312 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
15313 written
|= (1 << 3);
15314 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15318 abuf
->written
= written
;
15323 /* cckls: cckls$pack $ICCi_3,$CRj_int,$CCi,$cond */
15326 SEM_FN_NAME (frvbf
,cckls
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
15328 #define FLD(f) abuf->fields.sfmt_cckeq.f
15329 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
15330 int UNUSED written
= 0;
15331 IADDR UNUSED pc
= abuf
->addr
;
15332 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
15334 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
15335 if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_3
)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_3
)]), 4), 2)))) {
15338 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
15339 written
|= (1 << 3);
15340 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15345 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
15346 written
|= (1 << 3);
15347 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15353 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
15354 written
|= (1 << 3);
15355 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15359 abuf
->written
= written
;
15364 /* cckhi: cckhi$pack $ICCi_3,$CRj_int,$CCi,$cond */
15367 SEM_FN_NAME (frvbf
,cckhi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
15369 #define FLD(f) abuf->fields.sfmt_cckeq.f
15370 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
15371 int UNUSED written
= 0;
15372 IADDR UNUSED pc
= abuf
->addr
;
15373 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
15375 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
15376 if (NOTBI (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_3
)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_3
)]), 4), 2))))) {
15379 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
15380 written
|= (1 << 3);
15381 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15386 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
15387 written
|= (1 << 3);
15388 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15394 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
15395 written
|= (1 << 3);
15396 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15400 abuf
->written
= written
;
15405 /* cckc: cckc$pack $ICCi_3,$CRj_int,$CCi,$cond */
15408 SEM_FN_NAME (frvbf
,cckc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
15410 #define FLD(f) abuf->fields.sfmt_cckeq.f
15411 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
15412 int UNUSED written
= 0;
15413 IADDR UNUSED pc
= abuf
->addr
;
15414 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
15416 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
15417 if (TRUNCQIBI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_3
)]), 1))) {
15420 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
15421 written
|= (1 << 3);
15422 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15427 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
15428 written
|= (1 << 3);
15429 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15435 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
15436 written
|= (1 << 3);
15437 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15441 abuf
->written
= written
;
15446 /* ccknc: ccknc$pack $ICCi_3,$CRj_int,$CCi,$cond */
15449 SEM_FN_NAME (frvbf
,ccknc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
15451 #define FLD(f) abuf->fields.sfmt_cckeq.f
15452 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
15453 int UNUSED written
= 0;
15454 IADDR UNUSED pc
= abuf
->addr
;
15455 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
15457 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
15458 if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_3
)]), 1)))) {
15461 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
15462 written
|= (1 << 3);
15463 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15468 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
15469 written
|= (1 << 3);
15470 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15476 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
15477 written
|= (1 << 3);
15478 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15482 abuf
->written
= written
;
15487 /* cckn: cckn$pack $ICCi_3,$CRj_int,$CCi,$cond */
15490 SEM_FN_NAME (frvbf
,cckn
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
15492 #define FLD(f) abuf->fields.sfmt_cckeq.f
15493 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
15494 int UNUSED written
= 0;
15495 IADDR UNUSED pc
= abuf
->addr
;
15496 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
15498 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
15499 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_3
)]), 8), 3))) {
15502 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
15503 written
|= (1 << 3);
15504 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15509 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
15510 written
|= (1 << 3);
15511 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15517 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
15518 written
|= (1 << 3);
15519 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15523 abuf
->written
= written
;
15528 /* cckp: cckp$pack $ICCi_3,$CRj_int,$CCi,$cond */
15531 SEM_FN_NAME (frvbf
,cckp
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
15533 #define FLD(f) abuf->fields.sfmt_cckeq.f
15534 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
15535 int UNUSED written
= 0;
15536 IADDR UNUSED pc
= abuf
->addr
;
15537 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
15539 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
15540 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_3
)]), 8), 3)))) {
15543 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
15544 written
|= (1 << 3);
15545 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15550 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
15551 written
|= (1 << 3);
15552 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15558 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
15559 written
|= (1 << 3);
15560 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15564 abuf
->written
= written
;
15569 /* cckv: cckv$pack $ICCi_3,$CRj_int,$CCi,$cond */
15572 SEM_FN_NAME (frvbf
,cckv
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
15574 #define FLD(f) abuf->fields.sfmt_cckeq.f
15575 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
15576 int UNUSED written
= 0;
15577 IADDR UNUSED pc
= abuf
->addr
;
15578 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
15580 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
15581 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_3
)]), 2), 1))) {
15584 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
15585 written
|= (1 << 3);
15586 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15591 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
15592 written
|= (1 << 3);
15593 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15599 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
15600 written
|= (1 << 3);
15601 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15605 abuf
->written
= written
;
15610 /* ccknv: ccknv$pack $ICCi_3,$CRj_int,$CCi,$cond */
15613 SEM_FN_NAME (frvbf
,ccknv
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
15615 #define FLD(f) abuf->fields.sfmt_cckeq.f
15616 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
15617 int UNUSED written
= 0;
15618 IADDR UNUSED pc
= abuf
->addr
;
15619 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
15621 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
15622 if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr
[FLD (f_ICCi_3
)]), 2), 1)))) {
15625 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
15626 written
|= (1 << 3);
15627 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15632 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
15633 written
|= (1 << 3);
15634 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15640 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_int
)]), opval
);
15641 written
|= (1 << 3);
15642 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15646 abuf
->written
= written
;
15651 /* cfckra: cfckra$pack $CRj_float,$CCi,$cond */
15654 SEM_FN_NAME (frvbf
,cfckra
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
15656 #define FLD(f) abuf->fields.sfmt_cfckne.f
15657 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
15658 int UNUSED written
= 0;
15659 IADDR UNUSED pc
= abuf
->addr
;
15660 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
15662 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
15665 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
15666 written
|= (1 << 2);
15667 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15672 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
15673 written
|= (1 << 2);
15674 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15678 abuf
->written
= written
;
15683 /* cfckno: cfckno$pack $CRj_float,$CCi,$cond */
15686 SEM_FN_NAME (frvbf
,cfckno
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
15688 #define FLD(f) abuf->fields.sfmt_cfckne.f
15689 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
15690 int UNUSED written
= 0;
15691 IADDR UNUSED pc
= abuf
->addr
;
15692 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
15694 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
15697 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
15698 written
|= (1 << 2);
15699 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15704 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
15705 written
|= (1 << 2);
15706 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15710 abuf
->written
= written
;
15715 /* cfckne: cfckne$pack $FCCi_3,$CRj_float,$CCi,$cond */
15718 SEM_FN_NAME (frvbf
,cfckne
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
15720 #define FLD(f) abuf->fields.sfmt_cfckne.f
15721 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
15722 int UNUSED written
= 0;
15723 IADDR UNUSED pc
= abuf
->addr
;
15724 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
15726 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
15727 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 4), 2)), ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 1))))) {
15730 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
15731 written
|= (1 << 3);
15732 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15737 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
15738 written
|= (1 << 3);
15739 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15745 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
15746 written
|= (1 << 3);
15747 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15751 abuf
->written
= written
;
15756 /* cfckeq: cfckeq$pack $FCCi_3,$CRj_float,$CCi,$cond */
15759 SEM_FN_NAME (frvbf
,cfckeq
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
15761 #define FLD(f) abuf->fields.sfmt_cfckne.f
15762 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
15763 int UNUSED written
= 0;
15764 IADDR UNUSED pc
= abuf
->addr
;
15765 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
15767 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
15768 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 8), 3))) {
15771 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
15772 written
|= (1 << 3);
15773 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15778 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
15779 written
|= (1 << 3);
15780 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15786 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
15787 written
|= (1 << 3);
15788 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15792 abuf
->written
= written
;
15797 /* cfcklg: cfcklg$pack $FCCi_3,$CRj_float,$CCi,$cond */
15800 SEM_FN_NAME (frvbf
,cfcklg
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
15802 #define FLD(f) abuf->fields.sfmt_cfckne.f
15803 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
15804 int UNUSED written
= 0;
15805 IADDR UNUSED pc
= abuf
->addr
;
15806 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
15808 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
15809 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 4), 2)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 2), 1)))) {
15812 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
15813 written
|= (1 << 3);
15814 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15819 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
15820 written
|= (1 << 3);
15821 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15827 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
15828 written
|= (1 << 3);
15829 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15833 abuf
->written
= written
;
15838 /* cfckue: cfckue$pack $FCCi_3,$CRj_float,$CCi,$cond */
15841 SEM_FN_NAME (frvbf
,cfckue
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
15843 #define FLD(f) abuf->fields.sfmt_cfckne.f
15844 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
15845 int UNUSED written
= 0;
15846 IADDR UNUSED pc
= abuf
->addr
;
15847 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
15849 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
15850 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 1)))) {
15853 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
15854 written
|= (1 << 3);
15855 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15860 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
15861 written
|= (1 << 3);
15862 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15868 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
15869 written
|= (1 << 3);
15870 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15874 abuf
->written
= written
;
15879 /* cfckul: cfckul$pack $FCCi_3,$CRj_float,$CCi,$cond */
15882 SEM_FN_NAME (frvbf
,cfckul
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
15884 #define FLD(f) abuf->fields.sfmt_cfckne.f
15885 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
15886 int UNUSED written
= 0;
15887 IADDR UNUSED pc
= abuf
->addr
;
15888 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
15890 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
15891 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 1)))) {
15894 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
15895 written
|= (1 << 3);
15896 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15901 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
15902 written
|= (1 << 3);
15903 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15909 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
15910 written
|= (1 << 3);
15911 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15915 abuf
->written
= written
;
15920 /* cfckge: cfckge$pack $FCCi_3,$CRj_float,$CCi,$cond */
15923 SEM_FN_NAME (frvbf
,cfckge
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
15925 #define FLD(f) abuf->fields.sfmt_cfckne.f
15926 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
15927 int UNUSED written
= 0;
15928 IADDR UNUSED pc
= abuf
->addr
;
15929 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
15931 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
15932 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 2), 1)))) {
15935 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
15936 written
|= (1 << 3);
15937 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15942 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
15943 written
|= (1 << 3);
15944 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15950 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
15951 written
|= (1 << 3);
15952 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15956 abuf
->written
= written
;
15961 /* cfcklt: cfcklt$pack $FCCi_3,$CRj_float,$CCi,$cond */
15964 SEM_FN_NAME (frvbf
,cfcklt
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
15966 #define FLD(f) abuf->fields.sfmt_cfckne.f
15967 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
15968 int UNUSED written
= 0;
15969 IADDR UNUSED pc
= abuf
->addr
;
15970 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
15972 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
15973 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 4), 2))) {
15976 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
15977 written
|= (1 << 3);
15978 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15983 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
15984 written
|= (1 << 3);
15985 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15991 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
15992 written
|= (1 << 3);
15993 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
15997 abuf
->written
= written
;
16002 /* cfckuge: cfckuge$pack $FCCi_3,$CRj_float,$CCi,$cond */
16005 SEM_FN_NAME (frvbf
,cfckuge
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16007 #define FLD(f) abuf->fields.sfmt_cfckne.f
16008 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16009 int UNUSED written
= 0;
16010 IADDR UNUSED pc
= abuf
->addr
;
16011 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16013 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
16014 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 8), 3)), ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 1))))) {
16017 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
16018 written
|= (1 << 3);
16019 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
16024 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
16025 written
|= (1 << 3);
16026 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
16032 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
16033 written
|= (1 << 3);
16034 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
16038 abuf
->written
= written
;
16043 /* cfckug: cfckug$pack $FCCi_3,$CRj_float,$CCi,$cond */
16046 SEM_FN_NAME (frvbf
,cfckug
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16048 #define FLD(f) abuf->fields.sfmt_cfckne.f
16049 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16050 int UNUSED written
= 0;
16051 IADDR UNUSED pc
= abuf
->addr
;
16052 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16054 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
16055 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 1)))) {
16058 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
16059 written
|= (1 << 3);
16060 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
16065 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
16066 written
|= (1 << 3);
16067 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
16073 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
16074 written
|= (1 << 3);
16075 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
16079 abuf
->written
= written
;
16084 /* cfckle: cfckle$pack $FCCi_3,$CRj_float,$CCi,$cond */
16087 SEM_FN_NAME (frvbf
,cfckle
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16089 #define FLD(f) abuf->fields.sfmt_cfckne.f
16090 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16091 int UNUSED written
= 0;
16092 IADDR UNUSED pc
= abuf
->addr
;
16093 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16095 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
16096 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 4), 2)))) {
16099 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
16100 written
|= (1 << 3);
16101 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
16106 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
16107 written
|= (1 << 3);
16108 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
16114 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
16115 written
|= (1 << 3);
16116 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
16120 abuf
->written
= written
;
16125 /* cfckgt: cfckgt$pack $FCCi_3,$CRj_float,$CCi,$cond */
16128 SEM_FN_NAME (frvbf
,cfckgt
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16130 #define FLD(f) abuf->fields.sfmt_cfckne.f
16131 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16132 int UNUSED written
= 0;
16133 IADDR UNUSED pc
= abuf
->addr
;
16134 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16136 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
16137 if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 2), 1))) {
16140 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
16141 written
|= (1 << 3);
16142 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
16147 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
16148 written
|= (1 << 3);
16149 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
16155 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
16156 written
|= (1 << 3);
16157 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
16161 abuf
->written
= written
;
16166 /* cfckule: cfckule$pack $FCCi_3,$CRj_float,$CCi,$cond */
16169 SEM_FN_NAME (frvbf
,cfckule
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16171 #define FLD(f) abuf->fields.sfmt_cfckne.f
16172 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16173 int UNUSED written
= 0;
16174 IADDR UNUSED pc
= abuf
->addr
;
16175 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16177 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
16178 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 8), 3)), ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 1))))) {
16181 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
16182 written
|= (1 << 3);
16183 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
16188 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
16189 written
|= (1 << 3);
16190 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
16196 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
16197 written
|= (1 << 3);
16198 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
16202 abuf
->written
= written
;
16207 /* cfcku: cfcku$pack $FCCi_3,$CRj_float,$CCi,$cond */
16210 SEM_FN_NAME (frvbf
,cfcku
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16212 #define FLD(f) abuf->fields.sfmt_cfckne.f
16213 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16214 int UNUSED written
= 0;
16215 IADDR UNUSED pc
= abuf
->addr
;
16216 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16218 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
16219 if (TRUNCQIBI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 1))) {
16222 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
16223 written
|= (1 << 3);
16224 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
16229 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
16230 written
|= (1 << 3);
16231 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
16237 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
16238 written
|= (1 << 3);
16239 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
16243 abuf
->written
= written
;
16248 /* cfcko: cfcko$pack $FCCi_3,$CRj_float,$CCi,$cond */
16251 SEM_FN_NAME (frvbf
,cfcko
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16253 #define FLD(f) abuf->fields.sfmt_cfckne.f
16254 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16255 int UNUSED written
= 0;
16256 IADDR UNUSED pc
= abuf
->addr
;
16257 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16259 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
16260 if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 8), 3)), ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 4), 2)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr
[FLD (f_FCCi_3
)]), 2), 1))))) {
16263 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
16264 written
|= (1 << 3);
16265 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
16270 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
16271 written
|= (1 << 3);
16272 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
16278 sim_queue_qi_write (current_cpu
, & CPU (h_cccr
[FLD (f_CRj_float
)]), opval
);
16279 written
|= (1 << 3);
16280 TRACE_RESULT (current_cpu
, abuf
, "cccr", 'x', opval
);
16284 abuf
->written
= written
;
16289 /* cjmpl: cjmpl$pack @($GRi,$GRj),$CCi,$cond */
16292 SEM_FN_NAME (frvbf
,cjmpl
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16294 #define FLD(f) abuf->fields.sfmt_cjmpl.f
16295 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16296 int UNUSED written
= 0;
16297 IADDR UNUSED pc
= abuf
->addr
;
16298 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16300 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
16302 if (EQSI (FLD (f_LI
), 1)) {
16303 frvbf_set_write_next_vliw_addr_to_LR (current_cpu
, 1);
16306 USI opval
= ANDSI (ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))), 0xfffffffc);
16307 sim_queue_pc_write (current_cpu
, opval
);
16308 written
|= (1 << 6);
16309 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
16311 frvbf_model_branch (current_cpu
, pc
, 2);
16315 abuf
->written
= written
;
16320 /* ccalll: ccalll$pack @($GRi,$GRj),$CCi,$cond */
16323 SEM_FN_NAME (frvbf
,ccalll
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16325 #define FLD(f) abuf->fields.sfmt_cjmpl.f
16326 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16327 int UNUSED written
= 0;
16328 IADDR UNUSED pc
= abuf
->addr
;
16329 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16331 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
16333 if (EQSI (FLD (f_LI
), 1)) {
16334 frvbf_set_write_next_vliw_addr_to_LR (current_cpu
, 1);
16337 USI opval
= ANDSI (ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))), 0xfffffffc);
16338 sim_queue_pc_write (current_cpu
, opval
);
16339 written
|= (1 << 6);
16340 TRACE_RESULT (current_cpu
, abuf
, "pc", 'x', opval
);
16342 frvbf_model_branch (current_cpu
, pc
, 2);
16346 abuf
->written
= written
;
16351 /* ici: ici$pack @($GRi,$GRj) */
16354 SEM_FN_NAME (frvbf
,ici
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16356 #define FLD(f) abuf->fields.sfmt_icpl.f
16357 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16358 int UNUSED written
= 0;
16359 IADDR UNUSED pc
= abuf
->addr
;
16360 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16362 frvbf_insn_cache_invalidate (current_cpu
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))), 0);
16368 /* dci: dci$pack @($GRi,$GRj) */
16371 SEM_FN_NAME (frvbf
,dci
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16373 #define FLD(f) abuf->fields.sfmt_icpl.f
16374 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16375 int UNUSED written
= 0;
16376 IADDR UNUSED pc
= abuf
->addr
;
16377 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16379 frvbf_data_cache_invalidate (current_cpu
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))), 0);
16385 /* icei: icei$pack @($GRi,$GRj),$ae */
16388 SEM_FN_NAME (frvbf
,icei
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16390 #define FLD(f) abuf->fields.sfmt_icei.f
16391 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16392 int UNUSED written
= 0;
16393 IADDR UNUSED pc
= abuf
->addr
;
16394 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16396 if (EQSI (FLD (f_ae
), 0)) {
16397 frvbf_insn_cache_invalidate (current_cpu
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))), -1);
16399 frvbf_insn_cache_invalidate (current_cpu
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))), FLD (f_ae
));
16406 /* dcei: dcei$pack @($GRi,$GRj),$ae */
16409 SEM_FN_NAME (frvbf
,dcei
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16411 #define FLD(f) abuf->fields.sfmt_icei.f
16412 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16413 int UNUSED written
= 0;
16414 IADDR UNUSED pc
= abuf
->addr
;
16415 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16417 if (EQSI (FLD (f_ae
), 0)) {
16418 frvbf_data_cache_invalidate (current_cpu
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))), -1);
16420 frvbf_data_cache_invalidate (current_cpu
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))), FLD (f_ae
));
16427 /* dcf: dcf$pack @($GRi,$GRj) */
16430 SEM_FN_NAME (frvbf
,dcf
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16432 #define FLD(f) abuf->fields.sfmt_icpl.f
16433 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16434 int UNUSED written
= 0;
16435 IADDR UNUSED pc
= abuf
->addr
;
16436 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16438 frvbf_data_cache_flush (current_cpu
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))), 0);
16444 /* dcef: dcef$pack @($GRi,$GRj),$ae */
16447 SEM_FN_NAME (frvbf
,dcef
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16449 #define FLD(f) abuf->fields.sfmt_icei.f
16450 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16451 int UNUSED written
= 0;
16452 IADDR UNUSED pc
= abuf
->addr
;
16453 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16455 if (EQSI (FLD (f_ae
), 0)) {
16456 frvbf_data_cache_flush (current_cpu
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))), -1);
16458 frvbf_data_cache_flush (current_cpu
, ADDSI (GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
))), FLD (f_ae
));
16465 /* witlb: witlb$pack $GRk,@($GRi,$GRj) */
16468 SEM_FN_NAME (frvbf
,witlb
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16470 #define FLD(f) abuf->fields.fmt_empty.f
16471 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16472 int UNUSED written
= 0;
16473 IADDR UNUSED pc
= abuf
->addr
;
16474 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16476 ((void) 0); /*nop*/
16482 /* wdtlb: wdtlb$pack $GRk,@($GRi,$GRj) */
16485 SEM_FN_NAME (frvbf
,wdtlb
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16487 #define FLD(f) abuf->fields.fmt_empty.f
16488 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16489 int UNUSED written
= 0;
16490 IADDR UNUSED pc
= abuf
->addr
;
16491 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16493 ((void) 0); /*nop*/
16499 /* itlbi: itlbi$pack @($GRi,$GRj) */
16502 SEM_FN_NAME (frvbf
,itlbi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16504 #define FLD(f) abuf->fields.fmt_empty.f
16505 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16506 int UNUSED written
= 0;
16507 IADDR UNUSED pc
= abuf
->addr
;
16508 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16510 ((void) 0); /*nop*/
16516 /* dtlbi: dtlbi$pack @($GRi,$GRj) */
16519 SEM_FN_NAME (frvbf
,dtlbi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16521 #define FLD(f) abuf->fields.fmt_empty.f
16522 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16523 int UNUSED written
= 0;
16524 IADDR UNUSED pc
= abuf
->addr
;
16525 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16527 ((void) 0); /*nop*/
16533 /* icpl: icpl$pack $GRi,$GRj,$lock */
16536 SEM_FN_NAME (frvbf
,icpl
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16538 #define FLD(f) abuf->fields.sfmt_icpl.f
16539 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16540 int UNUSED written
= 0;
16541 IADDR UNUSED pc
= abuf
->addr
;
16542 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16544 frvbf_insn_cache_preload (current_cpu
, GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)), FLD (f_lock
));
16550 /* dcpl: dcpl$pack $GRi,$GRj,$lock */
16553 SEM_FN_NAME (frvbf
,dcpl
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16555 #define FLD(f) abuf->fields.sfmt_icpl.f
16556 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16557 int UNUSED written
= 0;
16558 IADDR UNUSED pc
= abuf
->addr
;
16559 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16561 frvbf_data_cache_preload (current_cpu
, GET_H_GR (FLD (f_GRi
)), GET_H_GR (FLD (f_GRj
)), FLD (f_lock
));
16567 /* icul: icul$pack $GRi */
16570 SEM_FN_NAME (frvbf
,icul
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16572 #define FLD(f) abuf->fields.sfmt_jmpil.f
16573 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16574 int UNUSED written
= 0;
16575 IADDR UNUSED pc
= abuf
->addr
;
16576 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16578 frvbf_insn_cache_unlock (current_cpu
, GET_H_GR (FLD (f_GRi
)));
16584 /* dcul: dcul$pack $GRi */
16587 SEM_FN_NAME (frvbf
,dcul
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16589 #define FLD(f) abuf->fields.sfmt_jmpil.f
16590 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16591 int UNUSED written
= 0;
16592 IADDR UNUSED pc
= abuf
->addr
;
16593 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16595 frvbf_data_cache_unlock (current_cpu
, GET_H_GR (FLD (f_GRi
)));
16601 /* bar: bar$pack */
16604 SEM_FN_NAME (frvbf
,bar
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16606 #define FLD(f) abuf->fields.fmt_empty.f
16607 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16608 int UNUSED written
= 0;
16609 IADDR UNUSED pc
= abuf
->addr
;
16610 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16612 ((void) 0); /*nop*/
16618 /* membar: membar$pack */
16621 SEM_FN_NAME (frvbf
,membar
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16623 #define FLD(f) abuf->fields.fmt_empty.f
16624 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16625 int UNUSED written
= 0;
16626 IADDR UNUSED pc
= abuf
->addr
;
16627 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16629 ((void) 0); /*nop*/
16635 /* cop1: cop1$pack $s6_1,$CPRi,$CPRj,$CPRk */
16638 SEM_FN_NAME (frvbf
,cop1
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16640 #define FLD(f) abuf->fields.fmt_empty.f
16641 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16642 int UNUSED written
= 0;
16643 IADDR UNUSED pc
= abuf
->addr
;
16644 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16646 ((void) 0); /*nop*/
16652 /* cop2: cop2$pack $s6_1,$CPRi,$CPRj,$CPRk */
16655 SEM_FN_NAME (frvbf
,cop2
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16657 #define FLD(f) abuf->fields.fmt_empty.f
16658 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16659 int UNUSED written
= 0;
16660 IADDR UNUSED pc
= abuf
->addr
;
16661 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16663 ((void) 0); /*nop*/
16669 /* clrgr: clrgr$pack $GRk */
16672 SEM_FN_NAME (frvbf
,clrgr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16674 #define FLD(f) abuf->fields.sfmt_swapi.f
16675 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16676 int UNUSED written
= 0;
16677 IADDR UNUSED pc
= abuf
->addr
;
16678 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16681 frv_ref_SI (GET_H_GR (FLD (f_GRk
)));
16682 frvbf_clear_ne_flags (current_cpu
, FLD (f_GRk
), 0);
16689 /* clrfr: clrfr$pack $FRk */
16692 SEM_FN_NAME (frvbf
,clrfr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16694 #define FLD(f) abuf->fields.sfmt_cfmadds.f
16695 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16696 int UNUSED written
= 0;
16697 IADDR UNUSED pc
= abuf
->addr
;
16698 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16701 frv_ref_SI (GET_H_FR (FLD (f_FRk
)));
16702 frvbf_clear_ne_flags (current_cpu
, FLD (f_FRk
), 1);
16709 /* clrga: clrga$pack */
16712 SEM_FN_NAME (frvbf
,clrga
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16714 #define FLD(f) abuf->fields.fmt_empty.f
16715 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16716 int UNUSED written
= 0;
16717 IADDR UNUSED pc
= abuf
->addr
;
16718 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16720 frvbf_clear_ne_flags (current_cpu
, -1, 0);
16726 /* clrfa: clrfa$pack */
16729 SEM_FN_NAME (frvbf
,clrfa
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16731 #define FLD(f) abuf->fields.fmt_empty.f
16732 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16733 int UNUSED written
= 0;
16734 IADDR UNUSED pc
= abuf
->addr
;
16735 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16737 frvbf_clear_ne_flags (current_cpu
, -1, 1);
16743 /* commitgr: commitgr$pack $GRk */
16746 SEM_FN_NAME (frvbf
,commitgr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16748 #define FLD(f) abuf->fields.sfmt_setlos.f
16749 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16750 int UNUSED written
= 0;
16751 IADDR UNUSED pc
= abuf
->addr
;
16752 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16754 frvbf_commit (current_cpu
, FLD (f_GRk
), 0);
16760 /* commitfr: commitfr$pack $FRk */
16763 SEM_FN_NAME (frvbf
,commitfr
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16765 #define FLD(f) abuf->fields.sfmt_mhsethis.f
16766 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16767 int UNUSED written
= 0;
16768 IADDR UNUSED pc
= abuf
->addr
;
16769 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16771 frvbf_commit (current_cpu
, FLD (f_FRk
), 1);
16777 /* commitga: commitga$pack */
16780 SEM_FN_NAME (frvbf
,commitga
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16782 #define FLD(f) abuf->fields.fmt_empty.f
16783 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16784 int UNUSED written
= 0;
16785 IADDR UNUSED pc
= abuf
->addr
;
16786 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16788 frvbf_commit (current_cpu
, -1, 0);
16794 /* commitfa: commitfa$pack */
16797 SEM_FN_NAME (frvbf
,commitfa
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16799 #define FLD(f) abuf->fields.fmt_empty.f
16800 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16801 int UNUSED written
= 0;
16802 IADDR UNUSED pc
= abuf
->addr
;
16803 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16805 frvbf_commit (current_cpu
, -1, 1);
16811 /* fitos: fitos$pack $FRintj,$FRk */
16814 SEM_FN_NAME (frvbf
,fitos
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16816 #define FLD(f) abuf->fields.sfmt_fditos.f
16817 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16818 int UNUSED written
= 0;
16819 IADDR UNUSED pc
= abuf
->addr
;
16820 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16823 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->floatsisf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR_INT (FLD (f_FRj
)));
16824 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
16825 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
16832 /* fstoi: fstoi$pack $FRj,$FRintk */
16835 SEM_FN_NAME (frvbf
,fstoi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16837 #define FLD(f) abuf->fields.sfmt_fdstoi.f
16838 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16839 int UNUSED written
= 0;
16840 IADDR UNUSED pc
= abuf
->addr
;
16841 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16844 SI opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->fixsfsi
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRj
)));
16845 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
16846 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
16853 /* fitod: fitod$pack $FRintj,$FRdoublek */
16856 SEM_FN_NAME (frvbf
,fitod
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16858 #define FLD(f) abuf->fields.sfmt_fitod.f
16859 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16860 int UNUSED written
= 0;
16861 IADDR UNUSED pc
= abuf
->addr
;
16862 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16865 DF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->floatsidf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR_INT (FLD (f_FRj
)));
16866 sim_queue_fn_df_write (current_cpu
, frvbf_h_fr_double_set
, FLD (f_FRk
), opval
);
16867 TRACE_RESULT (current_cpu
, abuf
, "fr_double", 'f', opval
);
16874 /* fdtoi: fdtoi$pack $FRdoublej,$FRintk */
16877 SEM_FN_NAME (frvbf
,fdtoi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16879 #define FLD(f) abuf->fields.sfmt_fdtoi.f
16880 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16881 int UNUSED written
= 0;
16882 IADDR UNUSED pc
= abuf
->addr
;
16883 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16886 SI opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->fixdfsi
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR_DOUBLE (FLD (f_FRj
)));
16887 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
16888 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
16895 /* fditos: fditos$pack $FRintj,$FRk */
16898 SEM_FN_NAME (frvbf
,fditos
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16900 #define FLD(f) abuf->fields.sfmt_fditos.f
16901 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16902 int UNUSED written
= 0;
16903 IADDR UNUSED pc
= abuf
->addr
;
16904 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16908 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->floatsisf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR_INT (FLD (f_FRj
)));
16909 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
16910 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
16913 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->floatsisf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR_INT (((FLD (f_FRj
)) + (1))));
16914 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, ((FLD (f_FRk
)) + (1)), opval
);
16915 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
16923 /* fdstoi: fdstoi$pack $FRj,$FRintk */
16926 SEM_FN_NAME (frvbf
,fdstoi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16928 #define FLD(f) abuf->fields.sfmt_fdstoi.f
16929 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16930 int UNUSED written
= 0;
16931 IADDR UNUSED pc
= abuf
->addr
;
16932 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16936 SI opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->fixsfsi
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRj
)));
16937 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
16938 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
16941 USI opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->fixsfsi
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (((FLD (f_FRj
)) + (1))));
16942 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, ((FLD (f_FRk
)) + (1)), opval
);
16943 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
16951 /* nfditos: nfditos$pack $FRintj,$FRk */
16954 SEM_FN_NAME (frvbf
,nfditos
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16956 #define FLD(f) abuf->fields.sfmt_fditos.f
16957 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16958 int UNUSED written
= 0;
16959 IADDR UNUSED pc
= abuf
->addr
;
16960 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16963 frvbf_set_ne_index (current_cpu
, FLD (f_FRk
));
16965 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->floatsisf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR_INT (FLD (f_FRj
)));
16966 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
16967 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
16969 frvbf_set_ne_index (current_cpu
, ADDSI (FLD (f_FRk
), 1));
16971 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->floatsisf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR_INT (((FLD (f_FRj
)) + (1))));
16972 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, ((FLD (f_FRk
)) + (1)), opval
);
16973 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
16981 /* nfdstoi: nfdstoi$pack $FRj,$FRintk */
16984 SEM_FN_NAME (frvbf
,nfdstoi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
16986 #define FLD(f) abuf->fields.sfmt_fdstoi.f
16987 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
16988 int UNUSED written
= 0;
16989 IADDR UNUSED pc
= abuf
->addr
;
16990 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
16993 frvbf_set_ne_index (current_cpu
, FLD (f_FRk
));
16995 SI opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->fixsfsi
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRj
)));
16996 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
16997 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
16999 frvbf_set_ne_index (current_cpu
, ADDSI (FLD (f_FRk
), 1));
17001 USI opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->fixsfsi
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (((FLD (f_FRj
)) + (1))));
17002 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, ((FLD (f_FRk
)) + (1)), opval
);
17003 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
17011 /* cfitos: cfitos$pack $FRintj,$FRk,$CCi,$cond */
17014 SEM_FN_NAME (frvbf
,cfitos
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
17016 #define FLD(f) abuf->fields.sfmt_cfitos.f
17017 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
17018 int UNUSED written
= 0;
17019 IADDR UNUSED pc
= abuf
->addr
;
17020 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
17022 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
17024 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->floatsisf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR_INT (FLD (f_FRj
)));
17025 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
17026 written
|= (1 << 3);
17027 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
17031 abuf
->written
= written
;
17036 /* cfstoi: cfstoi$pack $FRj,$FRintk,$CCi,$cond */
17039 SEM_FN_NAME (frvbf
,cfstoi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
17041 #define FLD(f) abuf->fields.sfmt_cfstoi.f
17042 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
17043 int UNUSED written
= 0;
17044 IADDR UNUSED pc
= abuf
->addr
;
17045 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
17047 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
17049 SI opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->fixsfsi
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRj
)));
17050 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
17051 written
|= (1 << 3);
17052 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
17056 abuf
->written
= written
;
17061 /* nfitos: nfitos$pack $FRintj,$FRk */
17064 SEM_FN_NAME (frvbf
,nfitos
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
17066 #define FLD(f) abuf->fields.sfmt_fditos.f
17067 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
17068 int UNUSED written
= 0;
17069 IADDR UNUSED pc
= abuf
->addr
;
17070 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
17073 frvbf_set_ne_index (current_cpu
, FLD (f_FRk
));
17075 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->floatsisf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR_INT (FLD (f_FRj
)));
17076 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
17077 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
17085 /* nfstoi: nfstoi$pack $FRj,$FRintk */
17088 SEM_FN_NAME (frvbf
,nfstoi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
17090 #define FLD(f) abuf->fields.sfmt_fdstoi.f
17091 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
17092 int UNUSED written
= 0;
17093 IADDR UNUSED pc
= abuf
->addr
;
17094 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
17097 frvbf_set_ne_index (current_cpu
, FLD (f_FRk
));
17099 SI opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->fixsfsi
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRj
)));
17100 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
17101 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
17109 /* fmovs: fmovs$pack $FRj,$FRk */
17112 SEM_FN_NAME (frvbf
,fmovs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
17114 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17115 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
17116 int UNUSED written
= 0;
17117 IADDR UNUSED pc
= abuf
->addr
;
17118 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
17121 SF opval
= GET_H_FR (FLD (f_FRj
));
17122 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
17123 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
17130 /* fmovd: fmovd$pack $FRdoublej,$FRdoublek */
17133 SEM_FN_NAME (frvbf
,fmovd
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
17135 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17136 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
17137 int UNUSED written
= 0;
17138 IADDR UNUSED pc
= abuf
->addr
;
17139 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
17142 DF opval
= GET_H_FR_DOUBLE (FLD (f_FRj
));
17143 sim_queue_fn_df_write (current_cpu
, frvbf_h_fr_double_set
, FLD (f_FRk
), opval
);
17144 TRACE_RESULT (current_cpu
, abuf
, "fr_double", 'f', opval
);
17151 /* fdmovs: fdmovs$pack $FRj,$FRk */
17154 SEM_FN_NAME (frvbf
,fdmovs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
17156 #define FLD(f) abuf->fields.sfmt_fdmadds.f
17157 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
17158 int UNUSED written
= 0;
17159 IADDR UNUSED pc
= abuf
->addr
;
17160 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
17164 SF opval
= GET_H_FR (FLD (f_FRj
));
17165 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
17166 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
17169 SF opval
= GET_H_FR (((FLD (f_FRj
)) + (1)));
17170 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, ((FLD (f_FRk
)) + (1)), opval
);
17171 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
17179 /* cfmovs: cfmovs$pack $FRj,$FRk,$CCi,$cond */
17182 SEM_FN_NAME (frvbf
,cfmovs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
17184 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17185 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
17186 int UNUSED written
= 0;
17187 IADDR UNUSED pc
= abuf
->addr
;
17188 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
17190 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
17192 SF opval
= GET_H_FR (FLD (f_FRj
));
17193 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
17194 written
|= (1 << 3);
17195 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
17199 abuf
->written
= written
;
17204 /* fnegs: fnegs$pack $FRj,$FRk */
17207 SEM_FN_NAME (frvbf
,fnegs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
17209 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17210 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
17211 int UNUSED written
= 0;
17212 IADDR UNUSED pc
= abuf
->addr
;
17213 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
17216 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->negsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRj
)));
17217 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
17218 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
17225 /* fnegd: fnegd$pack $FRdoublej,$FRdoublek */
17228 SEM_FN_NAME (frvbf
,fnegd
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
17230 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17231 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
17232 int UNUSED written
= 0;
17233 IADDR UNUSED pc
= abuf
->addr
;
17234 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
17237 DF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->negdf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR_DOUBLE (FLD (f_FRj
)));
17238 sim_queue_fn_df_write (current_cpu
, frvbf_h_fr_double_set
, FLD (f_FRk
), opval
);
17239 TRACE_RESULT (current_cpu
, abuf
, "fr_double", 'f', opval
);
17246 /* fdnegs: fdnegs$pack $FRj,$FRk */
17249 SEM_FN_NAME (frvbf
,fdnegs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
17251 #define FLD(f) abuf->fields.sfmt_fdmadds.f
17252 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
17253 int UNUSED written
= 0;
17254 IADDR UNUSED pc
= abuf
->addr
;
17255 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
17259 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->negsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRj
)));
17260 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
17261 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
17264 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->negsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (((FLD (f_FRj
)) + (1))));
17265 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, ((FLD (f_FRk
)) + (1)), opval
);
17266 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
17274 /* cfnegs: cfnegs$pack $FRj,$FRk,$CCi,$cond */
17277 SEM_FN_NAME (frvbf
,cfnegs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
17279 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17280 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
17281 int UNUSED written
= 0;
17282 IADDR UNUSED pc
= abuf
->addr
;
17283 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
17285 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
17287 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->negsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRj
)));
17288 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
17289 written
|= (1 << 3);
17290 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
17294 abuf
->written
= written
;
17299 /* fabss: fabss$pack $FRj,$FRk */
17302 SEM_FN_NAME (frvbf
,fabss
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
17304 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17305 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
17306 int UNUSED written
= 0;
17307 IADDR UNUSED pc
= abuf
->addr
;
17308 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
17311 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->abssf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRj
)));
17312 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
17313 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
17320 /* fabsd: fabsd$pack $FRdoublej,$FRdoublek */
17323 SEM_FN_NAME (frvbf
,fabsd
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
17325 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17326 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
17327 int UNUSED written
= 0;
17328 IADDR UNUSED pc
= abuf
->addr
;
17329 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
17332 DF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->absdf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR_DOUBLE (FLD (f_FRj
)));
17333 sim_queue_fn_df_write (current_cpu
, frvbf_h_fr_double_set
, FLD (f_FRk
), opval
);
17334 TRACE_RESULT (current_cpu
, abuf
, "fr_double", 'f', opval
);
17341 /* fdabss: fdabss$pack $FRj,$FRk */
17344 SEM_FN_NAME (frvbf
,fdabss
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
17346 #define FLD(f) abuf->fields.sfmt_fdmadds.f
17347 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
17348 int UNUSED written
= 0;
17349 IADDR UNUSED pc
= abuf
->addr
;
17350 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
17354 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->abssf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRj
)));
17355 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
17356 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
17359 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->abssf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (((FLD (f_FRj
)) + (1))));
17360 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, ((FLD (f_FRk
)) + (1)), opval
);
17361 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
17369 /* cfabss: cfabss$pack $FRj,$FRk,$CCi,$cond */
17372 SEM_FN_NAME (frvbf
,cfabss
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
17374 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17375 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
17376 int UNUSED written
= 0;
17377 IADDR UNUSED pc
= abuf
->addr
;
17378 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
17380 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
17382 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->abssf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRj
)));
17383 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
17384 written
|= (1 << 3);
17385 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
17389 abuf
->written
= written
;
17394 /* fsqrts: fsqrts$pack $FRj,$FRk */
17397 SEM_FN_NAME (frvbf
,fsqrts
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
17399 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17400 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
17401 int UNUSED written
= 0;
17402 IADDR UNUSED pc
= abuf
->addr
;
17403 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
17406 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->sqrtsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRj
)));
17407 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
17408 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
17415 /* fdsqrts: fdsqrts$pack $FRj,$FRk */
17418 SEM_FN_NAME (frvbf
,fdsqrts
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
17420 #define FLD(f) abuf->fields.sfmt_fdmadds.f
17421 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
17422 int UNUSED written
= 0;
17423 IADDR UNUSED pc
= abuf
->addr
;
17424 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
17428 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->sqrtsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRj
)));
17429 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
17430 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
17433 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->sqrtsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (((FLD (f_FRj
)) + (1))));
17434 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, ((FLD (f_FRk
)) + (1)), opval
);
17435 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
17443 /* nfdsqrts: nfdsqrts$pack $FRj,$FRk */
17446 SEM_FN_NAME (frvbf
,nfdsqrts
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
17448 #define FLD(f) abuf->fields.sfmt_fdmadds.f
17449 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
17450 int UNUSED written
= 0;
17451 IADDR UNUSED pc
= abuf
->addr
;
17452 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
17455 frvbf_set_ne_index (current_cpu
, FLD (f_FRk
));
17457 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->sqrtsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRj
)));
17458 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
17459 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
17461 frvbf_set_ne_index (current_cpu
, ADDSI (FLD (f_FRk
), 1));
17463 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->sqrtsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (((FLD (f_FRj
)) + (1))));
17464 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, ((FLD (f_FRk
)) + (1)), opval
);
17465 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
17473 /* fsqrtd: fsqrtd$pack $FRdoublej,$FRdoublek */
17476 SEM_FN_NAME (frvbf
,fsqrtd
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
17478 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17479 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
17480 int UNUSED written
= 0;
17481 IADDR UNUSED pc
= abuf
->addr
;
17482 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
17485 DF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->sqrtdf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR_DOUBLE (FLD (f_FRj
)));
17486 sim_queue_fn_df_write (current_cpu
, frvbf_h_fr_double_set
, FLD (f_FRk
), opval
);
17487 TRACE_RESULT (current_cpu
, abuf
, "fr_double", 'f', opval
);
17494 /* cfsqrts: cfsqrts$pack $FRj,$FRk,$CCi,$cond */
17497 SEM_FN_NAME (frvbf
,cfsqrts
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
17499 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17500 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
17501 int UNUSED written
= 0;
17502 IADDR UNUSED pc
= abuf
->addr
;
17503 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
17505 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
17507 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->sqrtsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRj
)));
17508 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
17509 written
|= (1 << 3);
17510 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
17514 abuf
->written
= written
;
17519 /* nfsqrts: nfsqrts$pack $FRj,$FRk */
17522 SEM_FN_NAME (frvbf
,nfsqrts
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
17524 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17525 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
17526 int UNUSED written
= 0;
17527 IADDR UNUSED pc
= abuf
->addr
;
17528 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
17531 frvbf_set_ne_index (current_cpu
, FLD (f_FRk
));
17533 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->sqrtsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRj
)));
17534 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
17535 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
17543 /* fadds: fadds$pack $FRi,$FRj,$FRk */
17546 SEM_FN_NAME (frvbf
,fadds
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
17548 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17549 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
17550 int UNUSED written
= 0;
17551 IADDR UNUSED pc
= abuf
->addr
;
17552 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
17555 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->addsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRi
)), GET_H_FR (FLD (f_FRj
)));
17556 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
17557 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
17564 /* fsubs: fsubs$pack $FRi,$FRj,$FRk */
17567 SEM_FN_NAME (frvbf
,fsubs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
17569 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17570 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
17571 int UNUSED written
= 0;
17572 IADDR UNUSED pc
= abuf
->addr
;
17573 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
17576 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->subsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRi
)), GET_H_FR (FLD (f_FRj
)));
17577 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
17578 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
17585 /* fmuls: fmuls$pack $FRi,$FRj,$FRk */
17588 SEM_FN_NAME (frvbf
,fmuls
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
17590 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17591 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
17592 int UNUSED written
= 0;
17593 IADDR UNUSED pc
= abuf
->addr
;
17594 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
17597 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->mulsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRi
)), GET_H_FR (FLD (f_FRj
)));
17598 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
17599 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
17606 /* fdivs: fdivs$pack $FRi,$FRj,$FRk */
17609 SEM_FN_NAME (frvbf
,fdivs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
17611 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17612 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
17613 int UNUSED written
= 0;
17614 IADDR UNUSED pc
= abuf
->addr
;
17615 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
17618 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->divsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRi
)), GET_H_FR (FLD (f_FRj
)));
17619 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
17620 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
17627 /* faddd: faddd$pack $FRdoublei,$FRdoublej,$FRdoublek */
17630 SEM_FN_NAME (frvbf
,faddd
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
17632 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17633 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
17634 int UNUSED written
= 0;
17635 IADDR UNUSED pc
= abuf
->addr
;
17636 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
17639 DF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->adddf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR_DOUBLE (FLD (f_FRi
)), GET_H_FR_DOUBLE (FLD (f_FRj
)));
17640 sim_queue_fn_df_write (current_cpu
, frvbf_h_fr_double_set
, FLD (f_FRk
), opval
);
17641 TRACE_RESULT (current_cpu
, abuf
, "fr_double", 'f', opval
);
17648 /* fsubd: fsubd$pack $FRdoublei,$FRdoublej,$FRdoublek */
17651 SEM_FN_NAME (frvbf
,fsubd
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
17653 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17654 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
17655 int UNUSED written
= 0;
17656 IADDR UNUSED pc
= abuf
->addr
;
17657 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
17660 DF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->subdf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR_DOUBLE (FLD (f_FRi
)), GET_H_FR_DOUBLE (FLD (f_FRj
)));
17661 sim_queue_fn_df_write (current_cpu
, frvbf_h_fr_double_set
, FLD (f_FRk
), opval
);
17662 TRACE_RESULT (current_cpu
, abuf
, "fr_double", 'f', opval
);
17669 /* fmuld: fmuld$pack $FRdoublei,$FRdoublej,$FRdoublek */
17672 SEM_FN_NAME (frvbf
,fmuld
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
17674 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17675 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
17676 int UNUSED written
= 0;
17677 IADDR UNUSED pc
= abuf
->addr
;
17678 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
17681 DF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->muldf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR_DOUBLE (FLD (f_FRi
)), GET_H_FR_DOUBLE (FLD (f_FRj
)));
17682 sim_queue_fn_df_write (current_cpu
, frvbf_h_fr_double_set
, FLD (f_FRk
), opval
);
17683 TRACE_RESULT (current_cpu
, abuf
, "fr_double", 'f', opval
);
17690 /* fdivd: fdivd$pack $FRdoublei,$FRdoublej,$FRdoublek */
17693 SEM_FN_NAME (frvbf
,fdivd
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
17695 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17696 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
17697 int UNUSED written
= 0;
17698 IADDR UNUSED pc
= abuf
->addr
;
17699 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
17702 DF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->divdf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR_DOUBLE (FLD (f_FRi
)), GET_H_FR_DOUBLE (FLD (f_FRj
)));
17703 sim_queue_fn_df_write (current_cpu
, frvbf_h_fr_double_set
, FLD (f_FRk
), opval
);
17704 TRACE_RESULT (current_cpu
, abuf
, "fr_double", 'f', opval
);
17711 /* cfadds: cfadds$pack $FRi,$FRj,$FRk,$CCi,$cond */
17714 SEM_FN_NAME (frvbf
,cfadds
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
17716 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17717 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
17718 int UNUSED written
= 0;
17719 IADDR UNUSED pc
= abuf
->addr
;
17720 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
17722 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
17724 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->addsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRi
)), GET_H_FR (FLD (f_FRj
)));
17725 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
17726 written
|= (1 << 4);
17727 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
17731 abuf
->written
= written
;
17736 /* cfsubs: cfsubs$pack $FRi,$FRj,$FRk,$CCi,$cond */
17739 SEM_FN_NAME (frvbf
,cfsubs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
17741 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17742 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
17743 int UNUSED written
= 0;
17744 IADDR UNUSED pc
= abuf
->addr
;
17745 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
17747 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
17749 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->subsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRi
)), GET_H_FR (FLD (f_FRj
)));
17750 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
17751 written
|= (1 << 4);
17752 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
17756 abuf
->written
= written
;
17761 /* cfmuls: cfmuls$pack $FRi,$FRj,$FRk,$CCi,$cond */
17764 SEM_FN_NAME (frvbf
,cfmuls
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
17766 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17767 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
17768 int UNUSED written
= 0;
17769 IADDR UNUSED pc
= abuf
->addr
;
17770 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
17772 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
17774 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->mulsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRi
)), GET_H_FR (FLD (f_FRj
)));
17775 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
17776 written
|= (1 << 4);
17777 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
17781 abuf
->written
= written
;
17786 /* cfdivs: cfdivs$pack $FRi,$FRj,$FRk,$CCi,$cond */
17789 SEM_FN_NAME (frvbf
,cfdivs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
17791 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17792 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
17793 int UNUSED written
= 0;
17794 IADDR UNUSED pc
= abuf
->addr
;
17795 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
17797 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
17799 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->divsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRi
)), GET_H_FR (FLD (f_FRj
)));
17800 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
17801 written
|= (1 << 4);
17802 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
17806 abuf
->written
= written
;
17811 /* nfadds: nfadds$pack $FRi,$FRj,$FRk */
17814 SEM_FN_NAME (frvbf
,nfadds
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
17816 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17817 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
17818 int UNUSED written
= 0;
17819 IADDR UNUSED pc
= abuf
->addr
;
17820 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
17823 frvbf_set_ne_index (current_cpu
, FLD (f_FRk
));
17825 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->addsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRi
)), GET_H_FR (FLD (f_FRj
)));
17826 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
17827 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
17835 /* nfsubs: nfsubs$pack $FRi,$FRj,$FRk */
17838 SEM_FN_NAME (frvbf
,nfsubs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
17840 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17841 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
17842 int UNUSED written
= 0;
17843 IADDR UNUSED pc
= abuf
->addr
;
17844 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
17847 frvbf_set_ne_index (current_cpu
, FLD (f_FRk
));
17849 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->subsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRi
)), GET_H_FR (FLD (f_FRj
)));
17850 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
17851 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
17859 /* nfmuls: nfmuls$pack $FRi,$FRj,$FRk */
17862 SEM_FN_NAME (frvbf
,nfmuls
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
17864 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17865 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
17866 int UNUSED written
= 0;
17867 IADDR UNUSED pc
= abuf
->addr
;
17868 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
17871 frvbf_set_ne_index (current_cpu
, FLD (f_FRk
));
17873 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->mulsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRi
)), GET_H_FR (FLD (f_FRj
)));
17874 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
17875 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
17883 /* nfdivs: nfdivs$pack $FRi,$FRj,$FRk */
17886 SEM_FN_NAME (frvbf
,nfdivs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
17888 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17889 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
17890 int UNUSED written
= 0;
17891 IADDR UNUSED pc
= abuf
->addr
;
17892 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
17895 frvbf_set_ne_index (current_cpu
, FLD (f_FRk
));
17897 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->divsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRi
)), GET_H_FR (FLD (f_FRj
)));
17898 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
17899 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
17907 /* fcmps: fcmps$pack $FRi,$FRj,$FCCi_2 */
17910 SEM_FN_NAME (frvbf
,fcmps
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
17912 #define FLD(f) abuf->fields.sfmt_cfcmps.f
17913 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
17914 int UNUSED written
= 0;
17915 IADDR UNUSED pc
= abuf
->addr
;
17916 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
17918 if ((* CGEN_CPU_FPU (current_cpu
)->ops
->gtsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRi
)), GET_H_FR (FLD (f_FRj
)))) {
17921 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[FLD (f_FCCi_2
)]), opval
);
17922 written
|= (1 << 2);
17923 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
17926 if ((* CGEN_CPU_FPU (current_cpu
)->ops
->eqsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRi
)), GET_H_FR (FLD (f_FRj
)))) {
17929 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[FLD (f_FCCi_2
)]), opval
);
17930 written
|= (1 << 2);
17931 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
17934 if ((* CGEN_CPU_FPU (current_cpu
)->ops
->ltsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRi
)), GET_H_FR (FLD (f_FRj
)))) {
17937 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[FLD (f_FCCi_2
)]), opval
);
17938 written
|= (1 << 2);
17939 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
17944 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[FLD (f_FCCi_2
)]), opval
);
17945 written
|= (1 << 2);
17946 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
17952 abuf
->written
= written
;
17957 /* fcmpd: fcmpd$pack $FRdoublei,$FRdoublej,$FCCi_2 */
17960 SEM_FN_NAME (frvbf
,fcmpd
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
17962 #define FLD(f) abuf->fields.sfmt_fcmpd.f
17963 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
17964 int UNUSED written
= 0;
17965 IADDR UNUSED pc
= abuf
->addr
;
17966 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
17968 if ((* CGEN_CPU_FPU (current_cpu
)->ops
->gtdf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR_DOUBLE (FLD (f_FRi
)), GET_H_FR_DOUBLE (FLD (f_FRj
)))) {
17971 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[FLD (f_FCCi_2
)]), opval
);
17972 written
|= (1 << 2);
17973 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
17976 if ((* CGEN_CPU_FPU (current_cpu
)->ops
->eqdf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR_DOUBLE (FLD (f_FRi
)), GET_H_FR_DOUBLE (FLD (f_FRj
)))) {
17979 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[FLD (f_FCCi_2
)]), opval
);
17980 written
|= (1 << 2);
17981 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
17984 if ((* CGEN_CPU_FPU (current_cpu
)->ops
->ltdf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR_DOUBLE (FLD (f_FRi
)), GET_H_FR_DOUBLE (FLD (f_FRj
)))) {
17987 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[FLD (f_FCCi_2
)]), opval
);
17988 written
|= (1 << 2);
17989 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
17994 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[FLD (f_FCCi_2
)]), opval
);
17995 written
|= (1 << 2);
17996 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
18002 abuf
->written
= written
;
18007 /* cfcmps: cfcmps$pack $FRi,$FRj,$FCCi_2,$CCi,$cond */
18010 SEM_FN_NAME (frvbf
,cfcmps
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
18012 #define FLD(f) abuf->fields.sfmt_cfcmps.f
18013 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
18014 int UNUSED written
= 0;
18015 IADDR UNUSED pc
= abuf
->addr
;
18016 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
18018 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
18019 if ((* CGEN_CPU_FPU (current_cpu
)->ops
->gtsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRi
)), GET_H_FR (FLD (f_FRj
)))) {
18022 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[FLD (f_FCCi_2
)]), opval
);
18023 written
|= (1 << 4);
18024 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
18027 if ((* CGEN_CPU_FPU (current_cpu
)->ops
->eqsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRi
)), GET_H_FR (FLD (f_FRj
)))) {
18030 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[FLD (f_FCCi_2
)]), opval
);
18031 written
|= (1 << 4);
18032 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
18035 if ((* CGEN_CPU_FPU (current_cpu
)->ops
->ltsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRi
)), GET_H_FR (FLD (f_FRj
)))) {
18038 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[FLD (f_FCCi_2
)]), opval
);
18039 written
|= (1 << 4);
18040 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
18045 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[FLD (f_FCCi_2
)]), opval
);
18046 written
|= (1 << 4);
18047 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
18054 abuf
->written
= written
;
18059 /* fdcmps: fdcmps$pack $FRi,$FRj,$FCCi_2 */
18062 SEM_FN_NAME (frvbf
,fdcmps
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
18064 #define FLD(f) abuf->fields.sfmt_nfdcmps.f
18065 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
18066 int UNUSED written
= 0;
18067 IADDR UNUSED pc
= abuf
->addr
;
18068 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
18071 if ((* CGEN_CPU_FPU (current_cpu
)->ops
->gtsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRi
)), GET_H_FR (FLD (f_FRj
)))) {
18074 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[FLD (f_FCCi_2
)]), opval
);
18075 written
|= (1 << 7);
18076 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
18079 if ((* CGEN_CPU_FPU (current_cpu
)->ops
->eqsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRi
)), GET_H_FR (FLD (f_FRj
)))) {
18082 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[FLD (f_FCCi_2
)]), opval
);
18083 written
|= (1 << 7);
18084 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
18087 if ((* CGEN_CPU_FPU (current_cpu
)->ops
->ltsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRi
)), GET_H_FR (FLD (f_FRj
)))) {
18090 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[FLD (f_FCCi_2
)]), opval
);
18091 written
|= (1 << 7);
18092 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
18097 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[FLD (f_FCCi_2
)]), opval
);
18098 written
|= (1 << 7);
18099 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
18104 if ((* CGEN_CPU_FPU (current_cpu
)->ops
->gtsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (((FLD (f_FRi
)) + (1))), GET_H_FR (((FLD (f_FRj
)) + (1))))) {
18107 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[((FLD (f_FCCi_2
)) + (1))]), opval
);
18108 written
|= (1 << 8);
18109 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
18112 if ((* CGEN_CPU_FPU (current_cpu
)->ops
->eqsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (((FLD (f_FRi
)) + (1))), GET_H_FR (((FLD (f_FRj
)) + (1))))) {
18115 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[((FLD (f_FCCi_2
)) + (1))]), opval
);
18116 written
|= (1 << 8);
18117 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
18120 if ((* CGEN_CPU_FPU (current_cpu
)->ops
->ltsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (((FLD (f_FRi
)) + (1))), GET_H_FR (((FLD (f_FRj
)) + (1))))) {
18123 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[((FLD (f_FCCi_2
)) + (1))]), opval
);
18124 written
|= (1 << 8);
18125 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
18130 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[((FLD (f_FCCi_2
)) + (1))]), opval
);
18131 written
|= (1 << 8);
18132 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
18139 abuf
->written
= written
;
18144 /* fmadds: fmadds$pack $FRi,$FRj,$FRk */
18147 SEM_FN_NAME (frvbf
,fmadds
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
18149 #define FLD(f) abuf->fields.sfmt_cfmadds.f
18150 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
18151 int UNUSED written
= 0;
18152 IADDR UNUSED pc
= abuf
->addr
;
18153 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
18156 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->addsf
) (CGEN_CPU_FPU (current_cpu
), (* CGEN_CPU_FPU (current_cpu
)->ops
->mulsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRi
)), GET_H_FR (FLD (f_FRj
))), GET_H_FR (FLD (f_FRk
)));
18157 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
18158 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18165 /* fmsubs: fmsubs$pack $FRi,$FRj,$FRk */
18168 SEM_FN_NAME (frvbf
,fmsubs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
18170 #define FLD(f) abuf->fields.sfmt_cfmadds.f
18171 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
18172 int UNUSED written
= 0;
18173 IADDR UNUSED pc
= abuf
->addr
;
18174 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
18177 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->subsf
) (CGEN_CPU_FPU (current_cpu
), (* CGEN_CPU_FPU (current_cpu
)->ops
->mulsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRi
)), GET_H_FR (FLD (f_FRj
))), GET_H_FR (FLD (f_FRk
)));
18178 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
18179 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18186 /* fmaddd: fmaddd$pack $FRdoublei,$FRdoublej,$FRdoublek */
18189 SEM_FN_NAME (frvbf
,fmaddd
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
18191 #define FLD(f) abuf->fields.sfmt_fmaddd.f
18192 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
18193 int UNUSED written
= 0;
18194 IADDR UNUSED pc
= abuf
->addr
;
18195 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
18198 DF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->adddf
) (CGEN_CPU_FPU (current_cpu
), (* CGEN_CPU_FPU (current_cpu
)->ops
->muldf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR_DOUBLE (FLD (f_FRi
)), GET_H_FR_DOUBLE (FLD (f_FRj
))), GET_H_FR_DOUBLE (FLD (f_FRk
)));
18199 sim_queue_fn_df_write (current_cpu
, frvbf_h_fr_double_set
, FLD (f_FRk
), opval
);
18200 TRACE_RESULT (current_cpu
, abuf
, "fr_double", 'f', opval
);
18207 /* fmsubd: fmsubd$pack $FRdoublei,$FRdoublej,$FRdoublek */
18210 SEM_FN_NAME (frvbf
,fmsubd
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
18212 #define FLD(f) abuf->fields.sfmt_fmaddd.f
18213 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
18214 int UNUSED written
= 0;
18215 IADDR UNUSED pc
= abuf
->addr
;
18216 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
18219 DF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->subdf
) (CGEN_CPU_FPU (current_cpu
), (* CGEN_CPU_FPU (current_cpu
)->ops
->muldf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR_DOUBLE (FLD (f_FRi
)), GET_H_FR_DOUBLE (FLD (f_FRj
))), GET_H_FR_DOUBLE (FLD (f_FRk
)));
18220 sim_queue_fn_df_write (current_cpu
, frvbf_h_fr_double_set
, FLD (f_FRk
), opval
);
18221 TRACE_RESULT (current_cpu
, abuf
, "fr_double", 'f', opval
);
18228 /* fdmadds: fdmadds$pack $FRi,$FRj,$FRk */
18231 SEM_FN_NAME (frvbf
,fdmadds
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
18233 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18234 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
18235 int UNUSED written
= 0;
18236 IADDR UNUSED pc
= abuf
->addr
;
18237 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
18241 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->addsf
) (CGEN_CPU_FPU (current_cpu
), (* CGEN_CPU_FPU (current_cpu
)->ops
->mulsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRi
)), GET_H_FR (FLD (f_FRj
))), GET_H_FR (FLD (f_FRk
)));
18242 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
18243 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18246 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->addsf
) (CGEN_CPU_FPU (current_cpu
), (* CGEN_CPU_FPU (current_cpu
)->ops
->mulsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (((FLD (f_FRi
)) + (1))), GET_H_FR (((FLD (f_FRj
)) + (1)))), GET_H_FR (((FLD (f_FRk
)) + (1))));
18247 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, ((FLD (f_FRk
)) + (1)), opval
);
18248 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18256 /* nfdmadds: nfdmadds$pack $FRi,$FRj,$FRk */
18259 SEM_FN_NAME (frvbf
,nfdmadds
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
18261 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18262 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
18263 int UNUSED written
= 0;
18264 IADDR UNUSED pc
= abuf
->addr
;
18265 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
18268 frvbf_set_ne_index (current_cpu
, FLD (f_FRk
));
18270 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->addsf
) (CGEN_CPU_FPU (current_cpu
), (* CGEN_CPU_FPU (current_cpu
)->ops
->mulsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRi
)), GET_H_FR (FLD (f_FRj
))), GET_H_FR (FLD (f_FRk
)));
18271 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
18272 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18274 frvbf_set_ne_index (current_cpu
, ADDSI (FLD (f_FRk
), 1));
18276 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->addsf
) (CGEN_CPU_FPU (current_cpu
), (* CGEN_CPU_FPU (current_cpu
)->ops
->mulsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (((FLD (f_FRi
)) + (1))), GET_H_FR (((FLD (f_FRj
)) + (1)))), GET_H_FR (((FLD (f_FRk
)) + (1))));
18277 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, ((FLD (f_FRk
)) + (1)), opval
);
18278 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18286 /* cfmadds: cfmadds$pack $FRi,$FRj,$FRk,$CCi,$cond */
18289 SEM_FN_NAME (frvbf
,cfmadds
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
18291 #define FLD(f) abuf->fields.sfmt_cfmadds.f
18292 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
18293 int UNUSED written
= 0;
18294 IADDR UNUSED pc
= abuf
->addr
;
18295 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
18297 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
18299 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->addsf
) (CGEN_CPU_FPU (current_cpu
), (* CGEN_CPU_FPU (current_cpu
)->ops
->mulsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRi
)), GET_H_FR (FLD (f_FRj
))), GET_H_FR (FLD (f_FRk
)));
18300 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
18301 written
|= (1 << 5);
18302 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18306 abuf
->written
= written
;
18311 /* cfmsubs: cfmsubs$pack $FRi,$FRj,$FRk,$CCi,$cond */
18314 SEM_FN_NAME (frvbf
,cfmsubs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
18316 #define FLD(f) abuf->fields.sfmt_cfmadds.f
18317 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
18318 int UNUSED written
= 0;
18319 IADDR UNUSED pc
= abuf
->addr
;
18320 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
18322 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
18324 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->subsf
) (CGEN_CPU_FPU (current_cpu
), (* CGEN_CPU_FPU (current_cpu
)->ops
->mulsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRi
)), GET_H_FR (FLD (f_FRj
))), GET_H_FR (FLD (f_FRk
)));
18325 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
18326 written
|= (1 << 5);
18327 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18331 abuf
->written
= written
;
18336 /* nfmadds: nfmadds$pack $FRi,$FRj,$FRk */
18339 SEM_FN_NAME (frvbf
,nfmadds
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
18341 #define FLD(f) abuf->fields.sfmt_cfmadds.f
18342 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
18343 int UNUSED written
= 0;
18344 IADDR UNUSED pc
= abuf
->addr
;
18345 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
18348 frvbf_set_ne_index (current_cpu
, FLD (f_FRk
));
18350 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->addsf
) (CGEN_CPU_FPU (current_cpu
), (* CGEN_CPU_FPU (current_cpu
)->ops
->mulsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRi
)), GET_H_FR (FLD (f_FRj
))), GET_H_FR (FLD (f_FRk
)));
18351 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
18352 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18360 /* nfmsubs: nfmsubs$pack $FRi,$FRj,$FRk */
18363 SEM_FN_NAME (frvbf
,nfmsubs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
18365 #define FLD(f) abuf->fields.sfmt_cfmadds.f
18366 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
18367 int UNUSED written
= 0;
18368 IADDR UNUSED pc
= abuf
->addr
;
18369 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
18372 frvbf_set_ne_index (current_cpu
, FLD (f_FRk
));
18374 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->subsf
) (CGEN_CPU_FPU (current_cpu
), (* CGEN_CPU_FPU (current_cpu
)->ops
->mulsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRi
)), GET_H_FR (FLD (f_FRj
))), GET_H_FR (FLD (f_FRk
)));
18375 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
18376 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18384 /* fmas: fmas$pack $FRi,$FRj,$FRk */
18387 SEM_FN_NAME (frvbf
,fmas
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
18389 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18390 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
18391 int UNUSED written
= 0;
18392 IADDR UNUSED pc
= abuf
->addr
;
18393 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
18397 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->mulsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRi
)), GET_H_FR (FLD (f_FRj
)));
18398 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
18399 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18402 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->addsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (((FLD (f_FRi
)) + (1))), GET_H_FR (((FLD (f_FRj
)) + (1))));
18403 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, ((FLD (f_FRk
)) + (1)), opval
);
18404 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18412 /* fmss: fmss$pack $FRi,$FRj,$FRk */
18415 SEM_FN_NAME (frvbf
,fmss
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
18417 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18418 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
18419 int UNUSED written
= 0;
18420 IADDR UNUSED pc
= abuf
->addr
;
18421 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
18425 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->mulsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRi
)), GET_H_FR (FLD (f_FRj
)));
18426 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
18427 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18430 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->subsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (((FLD (f_FRi
)) + (1))), GET_H_FR (((FLD (f_FRj
)) + (1))));
18431 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, ((FLD (f_FRk
)) + (1)), opval
);
18432 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18440 /* fdmas: fdmas$pack $FRi,$FRj,$FRk */
18443 SEM_FN_NAME (frvbf
,fdmas
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
18445 #define FLD(f) abuf->fields.sfmt_fdmas.f
18446 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
18447 int UNUSED written
= 0;
18448 IADDR UNUSED pc
= abuf
->addr
;
18449 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
18453 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->mulsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRi
)), GET_H_FR (FLD (f_FRj
)));
18454 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
18455 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18458 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->addsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (((FLD (f_FRi
)) + (1))), GET_H_FR (((FLD (f_FRj
)) + (1))));
18459 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, ((FLD (f_FRk
)) + (1)), opval
);
18460 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18463 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->mulsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (((FLD (f_FRi
)) + (2))), GET_H_FR (((FLD (f_FRj
)) + (2))));
18464 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, ((FLD (f_FRk
)) + (2)), opval
);
18465 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18468 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->addsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (((FLD (f_FRi
)) + (3))), GET_H_FR (((FLD (f_FRj
)) + (3))));
18469 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, ((FLD (f_FRk
)) + (3)), opval
);
18470 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18478 /* fdmss: fdmss$pack $FRi,$FRj,$FRk */
18481 SEM_FN_NAME (frvbf
,fdmss
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
18483 #define FLD(f) abuf->fields.sfmt_fdmas.f
18484 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
18485 int UNUSED written
= 0;
18486 IADDR UNUSED pc
= abuf
->addr
;
18487 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
18491 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->mulsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRi
)), GET_H_FR (FLD (f_FRj
)));
18492 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
18493 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18496 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->subsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (((FLD (f_FRi
)) + (1))), GET_H_FR (((FLD (f_FRj
)) + (1))));
18497 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, ((FLD (f_FRk
)) + (1)), opval
);
18498 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18501 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->mulsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (((FLD (f_FRi
)) + (2))), GET_H_FR (((FLD (f_FRj
)) + (2))));
18502 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, ((FLD (f_FRk
)) + (2)), opval
);
18503 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18506 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->subsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (((FLD (f_FRi
)) + (3))), GET_H_FR (((FLD (f_FRj
)) + (3))));
18507 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, ((FLD (f_FRk
)) + (3)), opval
);
18508 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18516 /* nfdmas: nfdmas$pack $FRi,$FRj,$FRk */
18519 SEM_FN_NAME (frvbf
,nfdmas
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
18521 #define FLD(f) abuf->fields.sfmt_fdmas.f
18522 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
18523 int UNUSED written
= 0;
18524 IADDR UNUSED pc
= abuf
->addr
;
18525 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
18528 frvbf_set_ne_index (current_cpu
, FLD (f_FRk
));
18529 frvbf_set_ne_index (current_cpu
, ADDSI (FLD (f_FRk
), 1));
18530 frvbf_set_ne_index (current_cpu
, ADDSI (FLD (f_FRk
), 2));
18531 frvbf_set_ne_index (current_cpu
, ADDSI (FLD (f_FRk
), 3));
18533 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->mulsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRi
)), GET_H_FR (FLD (f_FRj
)));
18534 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
18535 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18538 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->addsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (((FLD (f_FRi
)) + (1))), GET_H_FR (((FLD (f_FRj
)) + (1))));
18539 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, ((FLD (f_FRk
)) + (1)), opval
);
18540 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18543 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->mulsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (((FLD (f_FRi
)) + (2))), GET_H_FR (((FLD (f_FRj
)) + (2))));
18544 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, ((FLD (f_FRk
)) + (2)), opval
);
18545 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18548 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->addsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (((FLD (f_FRi
)) + (3))), GET_H_FR (((FLD (f_FRj
)) + (3))));
18549 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, ((FLD (f_FRk
)) + (3)), opval
);
18550 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18558 /* nfdmss: nfdmss$pack $FRi,$FRj,$FRk */
18561 SEM_FN_NAME (frvbf
,nfdmss
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
18563 #define FLD(f) abuf->fields.sfmt_fdmas.f
18564 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
18565 int UNUSED written
= 0;
18566 IADDR UNUSED pc
= abuf
->addr
;
18567 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
18570 frvbf_set_ne_index (current_cpu
, FLD (f_FRk
));
18571 frvbf_set_ne_index (current_cpu
, ADDSI (FLD (f_FRk
), 1));
18572 frvbf_set_ne_index (current_cpu
, ADDSI (FLD (f_FRk
), 2));
18573 frvbf_set_ne_index (current_cpu
, ADDSI (FLD (f_FRk
), 3));
18575 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->mulsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRi
)), GET_H_FR (FLD (f_FRj
)));
18576 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
18577 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18580 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->subsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (((FLD (f_FRi
)) + (1))), GET_H_FR (((FLD (f_FRj
)) + (1))));
18581 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, ((FLD (f_FRk
)) + (1)), opval
);
18582 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18585 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->mulsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (((FLD (f_FRi
)) + (2))), GET_H_FR (((FLD (f_FRj
)) + (2))));
18586 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, ((FLD (f_FRk
)) + (2)), opval
);
18587 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18590 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->subsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (((FLD (f_FRi
)) + (3))), GET_H_FR (((FLD (f_FRj
)) + (3))));
18591 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, ((FLD (f_FRk
)) + (3)), opval
);
18592 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18600 /* cfmas: cfmas$pack $FRi,$FRj,$FRk,$CCi,$cond */
18603 SEM_FN_NAME (frvbf
,cfmas
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
18605 #define FLD(f) abuf->fields.sfmt_cfmas.f
18606 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
18607 int UNUSED written
= 0;
18608 IADDR UNUSED pc
= abuf
->addr
;
18609 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
18611 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
18614 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->mulsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRi
)), GET_H_FR (FLD (f_FRj
)));
18615 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
18616 written
|= (1 << 9);
18617 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18620 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->addsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (((FLD (f_FRi
)) + (1))), GET_H_FR (((FLD (f_FRj
)) + (1))));
18621 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, ((FLD (f_FRk
)) + (1)), opval
);
18622 written
|= (1 << 10);
18623 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18628 abuf
->written
= written
;
18633 /* cfmss: cfmss$pack $FRi,$FRj,$FRk,$CCi,$cond */
18636 SEM_FN_NAME (frvbf
,cfmss
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
18638 #define FLD(f) abuf->fields.sfmt_cfmas.f
18639 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
18640 int UNUSED written
= 0;
18641 IADDR UNUSED pc
= abuf
->addr
;
18642 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
18644 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
18647 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->mulsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRi
)), GET_H_FR (FLD (f_FRj
)));
18648 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
18649 written
|= (1 << 9);
18650 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18653 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->subsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (((FLD (f_FRi
)) + (1))), GET_H_FR (((FLD (f_FRj
)) + (1))));
18654 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, ((FLD (f_FRk
)) + (1)), opval
);
18655 written
|= (1 << 10);
18656 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18661 abuf
->written
= written
;
18666 /* fmad: fmad$pack $FRi,$FRj,$FRk */
18669 SEM_FN_NAME (frvbf
,fmad
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
18671 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18672 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
18673 int UNUSED written
= 0;
18674 IADDR UNUSED pc
= abuf
->addr
;
18675 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
18679 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->ftruncdfsf
) (CGEN_CPU_FPU (current_cpu
), (* CGEN_CPU_FPU (current_cpu
)->ops
->muldf
) (CGEN_CPU_FPU (current_cpu
), (* CGEN_CPU_FPU (current_cpu
)->ops
->fextsfdf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRi
))), (* CGEN_CPU_FPU (current_cpu
)->ops
->fextsfdf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRj
)))));
18680 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
18681 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18684 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->ftruncdfsf
) (CGEN_CPU_FPU (current_cpu
), (* CGEN_CPU_FPU (current_cpu
)->ops
->adddf
) (CGEN_CPU_FPU (current_cpu
), (* CGEN_CPU_FPU (current_cpu
)->ops
->fextsfdf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (((FLD (f_FRi
)) + (1)))), (* CGEN_CPU_FPU (current_cpu
)->ops
->fextsfdf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (((FLD (f_FRj
)) + (1))))));
18685 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, ((FLD (f_FRk
)) + (1)), opval
);
18686 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18694 /* fmsd: fmsd$pack $FRi,$FRj,$FRk */
18697 SEM_FN_NAME (frvbf
,fmsd
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
18699 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18700 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
18701 int UNUSED written
= 0;
18702 IADDR UNUSED pc
= abuf
->addr
;
18703 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
18707 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->ftruncdfsf
) (CGEN_CPU_FPU (current_cpu
), (* CGEN_CPU_FPU (current_cpu
)->ops
->muldf
) (CGEN_CPU_FPU (current_cpu
), (* CGEN_CPU_FPU (current_cpu
)->ops
->fextsfdf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRi
))), (* CGEN_CPU_FPU (current_cpu
)->ops
->fextsfdf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRj
)))));
18708 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
18709 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18712 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->ftruncdfsf
) (CGEN_CPU_FPU (current_cpu
), (* CGEN_CPU_FPU (current_cpu
)->ops
->subdf
) (CGEN_CPU_FPU (current_cpu
), (* CGEN_CPU_FPU (current_cpu
)->ops
->fextsfdf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (((FLD (f_FRi
)) + (1)))), (* CGEN_CPU_FPU (current_cpu
)->ops
->fextsfdf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (((FLD (f_FRj
)) + (1))))));
18713 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, ((FLD (f_FRk
)) + (1)), opval
);
18714 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18722 /* nfmas: nfmas$pack $FRi,$FRj,$FRk */
18725 SEM_FN_NAME (frvbf
,nfmas
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
18727 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18728 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
18729 int UNUSED written
= 0;
18730 IADDR UNUSED pc
= abuf
->addr
;
18731 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
18734 frvbf_set_ne_index (current_cpu
, FLD (f_FRk
));
18736 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->mulsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRi
)), GET_H_FR (FLD (f_FRj
)));
18737 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
18738 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18740 frvbf_set_ne_index (current_cpu
, ADDSI (FLD (f_FRk
), 1));
18742 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->addsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (((FLD (f_FRi
)) + (1))), GET_H_FR (((FLD (f_FRj
)) + (1))));
18743 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, ((FLD (f_FRk
)) + (1)), opval
);
18744 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18752 /* nfmss: nfmss$pack $FRi,$FRj,$FRk */
18755 SEM_FN_NAME (frvbf
,nfmss
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
18757 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18758 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
18759 int UNUSED written
= 0;
18760 IADDR UNUSED pc
= abuf
->addr
;
18761 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
18764 frvbf_set_ne_index (current_cpu
, FLD (f_FRk
));
18766 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->mulsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRi
)), GET_H_FR (FLD (f_FRj
)));
18767 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
18768 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18770 frvbf_set_ne_index (current_cpu
, ADDSI (FLD (f_FRk
), 1));
18772 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->subsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (((FLD (f_FRi
)) + (1))), GET_H_FR (((FLD (f_FRj
)) + (1))));
18773 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, ((FLD (f_FRk
)) + (1)), opval
);
18774 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18782 /* fdadds: fdadds$pack $FRi,$FRj,$FRk */
18785 SEM_FN_NAME (frvbf
,fdadds
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
18787 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18788 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
18789 int UNUSED written
= 0;
18790 IADDR UNUSED pc
= abuf
->addr
;
18791 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
18795 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->addsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRi
)), GET_H_FR (FLD (f_FRj
)));
18796 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
18797 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18800 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->addsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (((FLD (f_FRi
)) + (1))), GET_H_FR (((FLD (f_FRj
)) + (1))));
18801 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, ((FLD (f_FRk
)) + (1)), opval
);
18802 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18810 /* fdsubs: fdsubs$pack $FRi,$FRj,$FRk */
18813 SEM_FN_NAME (frvbf
,fdsubs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
18815 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18816 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
18817 int UNUSED written
= 0;
18818 IADDR UNUSED pc
= abuf
->addr
;
18819 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
18823 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->subsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRi
)), GET_H_FR (FLD (f_FRj
)));
18824 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
18825 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18828 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->subsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (((FLD (f_FRi
)) + (1))), GET_H_FR (((FLD (f_FRj
)) + (1))));
18829 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, ((FLD (f_FRk
)) + (1)), opval
);
18830 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18838 /* fdmuls: fdmuls$pack $FRi,$FRj,$FRk */
18841 SEM_FN_NAME (frvbf
,fdmuls
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
18843 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18844 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
18845 int UNUSED written
= 0;
18846 IADDR UNUSED pc
= abuf
->addr
;
18847 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
18851 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->mulsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRi
)), GET_H_FR (FLD (f_FRj
)));
18852 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
18853 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18856 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->mulsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (((FLD (f_FRi
)) + (1))), GET_H_FR (((FLD (f_FRj
)) + (1))));
18857 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, ((FLD (f_FRk
)) + (1)), opval
);
18858 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18866 /* fddivs: fddivs$pack $FRi,$FRj,$FRk */
18869 SEM_FN_NAME (frvbf
,fddivs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
18871 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18872 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
18873 int UNUSED written
= 0;
18874 IADDR UNUSED pc
= abuf
->addr
;
18875 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
18879 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->divsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRi
)), GET_H_FR (FLD (f_FRj
)));
18880 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
18881 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18884 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->divsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (((FLD (f_FRi
)) + (1))), GET_H_FR (((FLD (f_FRj
)) + (1))));
18885 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, ((FLD (f_FRk
)) + (1)), opval
);
18886 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18894 /* fdsads: fdsads$pack $FRi,$FRj,$FRk */
18897 SEM_FN_NAME (frvbf
,fdsads
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
18899 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18900 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
18901 int UNUSED written
= 0;
18902 IADDR UNUSED pc
= abuf
->addr
;
18903 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
18907 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->addsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRi
)), GET_H_FR (FLD (f_FRj
)));
18908 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
18909 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18912 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->subsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (((FLD (f_FRi
)) + (1))), GET_H_FR (((FLD (f_FRj
)) + (1))));
18913 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, ((FLD (f_FRk
)) + (1)), opval
);
18914 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18922 /* fdmulcs: fdmulcs$pack $FRi,$FRj,$FRk */
18925 SEM_FN_NAME (frvbf
,fdmulcs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
18927 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18928 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
18929 int UNUSED written
= 0;
18930 IADDR UNUSED pc
= abuf
->addr
;
18931 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
18935 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->mulsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRi
)), GET_H_FR (((FLD (f_FRj
)) + (1))));
18936 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
18937 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18940 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->mulsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (((FLD (f_FRi
)) + (1))), GET_H_FR (FLD (f_FRj
)));
18941 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, ((FLD (f_FRk
)) + (1)), opval
);
18942 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18950 /* nfdmulcs: nfdmulcs$pack $FRi,$FRj,$FRk */
18953 SEM_FN_NAME (frvbf
,nfdmulcs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
18955 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18956 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
18957 int UNUSED written
= 0;
18958 IADDR UNUSED pc
= abuf
->addr
;
18959 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
18962 frvbf_set_ne_index (current_cpu
, FLD (f_FRk
));
18964 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->mulsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRi
)), GET_H_FR (((FLD (f_FRj
)) + (1))));
18965 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
18966 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18968 frvbf_set_ne_index (current_cpu
, ADDSI (FLD (f_FRk
), 1));
18970 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->mulsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (((FLD (f_FRi
)) + (1))), GET_H_FR (FLD (f_FRj
)));
18971 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, ((FLD (f_FRk
)) + (1)), opval
);
18972 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18980 /* nfdadds: nfdadds$pack $FRi,$FRj,$FRk */
18983 SEM_FN_NAME (frvbf
,nfdadds
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
18985 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18986 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
18987 int UNUSED written
= 0;
18988 IADDR UNUSED pc
= abuf
->addr
;
18989 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
18992 frvbf_set_ne_index (current_cpu
, FLD (f_FRk
));
18994 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->addsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRi
)), GET_H_FR (FLD (f_FRj
)));
18995 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
18996 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
18998 frvbf_set_ne_index (current_cpu
, ADDSI (FLD (f_FRk
), 1));
19000 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->addsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (((FLD (f_FRi
)) + (1))), GET_H_FR (((FLD (f_FRj
)) + (1))));
19001 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, ((FLD (f_FRk
)) + (1)), opval
);
19002 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
19010 /* nfdsubs: nfdsubs$pack $FRi,$FRj,$FRk */
19013 SEM_FN_NAME (frvbf
,nfdsubs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
19015 #define FLD(f) abuf->fields.sfmt_fdmadds.f
19016 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
19017 int UNUSED written
= 0;
19018 IADDR UNUSED pc
= abuf
->addr
;
19019 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
19022 frvbf_set_ne_index (current_cpu
, FLD (f_FRk
));
19024 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->subsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRi
)), GET_H_FR (FLD (f_FRj
)));
19025 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
19026 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
19028 frvbf_set_ne_index (current_cpu
, ADDSI (FLD (f_FRk
), 1));
19030 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->subsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (((FLD (f_FRi
)) + (1))), GET_H_FR (((FLD (f_FRj
)) + (1))));
19031 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, ((FLD (f_FRk
)) + (1)), opval
);
19032 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
19040 /* nfdmuls: nfdmuls$pack $FRi,$FRj,$FRk */
19043 SEM_FN_NAME (frvbf
,nfdmuls
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
19045 #define FLD(f) abuf->fields.sfmt_fdmadds.f
19046 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
19047 int UNUSED written
= 0;
19048 IADDR UNUSED pc
= abuf
->addr
;
19049 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
19052 frvbf_set_ne_index (current_cpu
, FLD (f_FRk
));
19054 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->mulsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRi
)), GET_H_FR (FLD (f_FRj
)));
19055 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
19056 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
19058 frvbf_set_ne_index (current_cpu
, ADDSI (FLD (f_FRk
), 1));
19060 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->mulsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (((FLD (f_FRi
)) + (1))), GET_H_FR (((FLD (f_FRj
)) + (1))));
19061 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, ((FLD (f_FRk
)) + (1)), opval
);
19062 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
19070 /* nfddivs: nfddivs$pack $FRi,$FRj,$FRk */
19073 SEM_FN_NAME (frvbf
,nfddivs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
19075 #define FLD(f) abuf->fields.sfmt_fdmadds.f
19076 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
19077 int UNUSED written
= 0;
19078 IADDR UNUSED pc
= abuf
->addr
;
19079 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
19082 frvbf_set_ne_index (current_cpu
, FLD (f_FRk
));
19084 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->divsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRi
)), GET_H_FR (FLD (f_FRj
)));
19085 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
19086 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
19088 frvbf_set_ne_index (current_cpu
, ADDSI (FLD (f_FRk
), 1));
19090 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->divsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (((FLD (f_FRi
)) + (1))), GET_H_FR (((FLD (f_FRj
)) + (1))));
19091 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, ((FLD (f_FRk
)) + (1)), opval
);
19092 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
19100 /* nfdsads: nfdsads$pack $FRi,$FRj,$FRk */
19103 SEM_FN_NAME (frvbf
,nfdsads
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
19105 #define FLD(f) abuf->fields.sfmt_fdmadds.f
19106 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
19107 int UNUSED written
= 0;
19108 IADDR UNUSED pc
= abuf
->addr
;
19109 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
19112 frvbf_set_ne_index (current_cpu
, FLD (f_FRk
));
19114 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->addsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRi
)), GET_H_FR (FLD (f_FRj
)));
19115 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, FLD (f_FRk
), opval
);
19116 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
19118 frvbf_set_ne_index (current_cpu
, ADDSI (FLD (f_FRk
), 1));
19120 SF opval
= (* CGEN_CPU_FPU (current_cpu
)->ops
->subsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (((FLD (f_FRi
)) + (1))), GET_H_FR (((FLD (f_FRj
)) + (1))));
19121 sim_queue_fn_sf_write (current_cpu
, frvbf_h_fr_set
, ((FLD (f_FRk
)) + (1)), opval
);
19122 TRACE_RESULT (current_cpu
, abuf
, "fr", 'f', opval
);
19130 /* nfdcmps: nfdcmps$pack $FRi,$FRj,$FCCi_2 */
19133 SEM_FN_NAME (frvbf
,nfdcmps
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
19135 #define FLD(f) abuf->fields.sfmt_nfdcmps.f
19136 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
19137 int UNUSED written
= 0;
19138 IADDR UNUSED pc
= abuf
->addr
;
19139 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
19142 frvbf_set_ne_index (current_cpu
, FLD (f_FRk
));
19143 if ((* CGEN_CPU_FPU (current_cpu
)->ops
->gtsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRi
)), GET_H_FR (FLD (f_FRj
)))) {
19146 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[FLD (f_FCCi_2
)]), opval
);
19147 written
|= (1 << 8);
19148 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
19151 if ((* CGEN_CPU_FPU (current_cpu
)->ops
->eqsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRi
)), GET_H_FR (FLD (f_FRj
)))) {
19154 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[FLD (f_FCCi_2
)]), opval
);
19155 written
|= (1 << 8);
19156 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
19159 if ((* CGEN_CPU_FPU (current_cpu
)->ops
->ltsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (FLD (f_FRi
)), GET_H_FR (FLD (f_FRj
)))) {
19162 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[FLD (f_FCCi_2
)]), opval
);
19163 written
|= (1 << 8);
19164 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
19169 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[FLD (f_FCCi_2
)]), opval
);
19170 written
|= (1 << 8);
19171 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
19176 frvbf_set_ne_index (current_cpu
, ADDSI (FLD (f_FRk
), 1));
19177 if ((* CGEN_CPU_FPU (current_cpu
)->ops
->gtsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (((FLD (f_FRi
)) + (1))), GET_H_FR (((FLD (f_FRj
)) + (1))))) {
19180 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[((FLD (f_FCCi_2
)) + (1))]), opval
);
19181 written
|= (1 << 9);
19182 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
19185 if ((* CGEN_CPU_FPU (current_cpu
)->ops
->eqsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (((FLD (f_FRi
)) + (1))), GET_H_FR (((FLD (f_FRj
)) + (1))))) {
19188 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[((FLD (f_FCCi_2
)) + (1))]), opval
);
19189 written
|= (1 << 9);
19190 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
19193 if ((* CGEN_CPU_FPU (current_cpu
)->ops
->ltsf
) (CGEN_CPU_FPU (current_cpu
), GET_H_FR (((FLD (f_FRi
)) + (1))), GET_H_FR (((FLD (f_FRj
)) + (1))))) {
19196 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[((FLD (f_FCCi_2
)) + (1))]), opval
);
19197 written
|= (1 << 9);
19198 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
19203 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[((FLD (f_FCCi_2
)) + (1))]), opval
);
19204 written
|= (1 << 9);
19205 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
19212 abuf
->written
= written
;
19217 /* mhsetlos: mhsetlos$pack $u12,$FRklo */
19220 SEM_FN_NAME (frvbf
,mhsetlos
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
19222 #define FLD(f) abuf->fields.sfmt_mhsetlos.f
19223 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
19224 int UNUSED written
= 0;
19225 IADDR UNUSED pc
= abuf
->addr
;
19226 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
19229 UHI opval
= FLD (f_u12
);
19230 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, FLD (f_FRk
), opval
);
19231 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
19238 /* mhsethis: mhsethis$pack $u12,$FRkhi */
19241 SEM_FN_NAME (frvbf
,mhsethis
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
19243 #define FLD(f) abuf->fields.sfmt_mhsethis.f
19244 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
19245 int UNUSED written
= 0;
19246 IADDR UNUSED pc
= abuf
->addr
;
19247 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
19250 UHI opval
= FLD (f_u12
);
19251 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, FLD (f_FRk
), opval
);
19252 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
19259 /* mhdsets: mhdsets$pack $u12,$FRintk */
19262 SEM_FN_NAME (frvbf
,mhdsets
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
19264 #define FLD(f) abuf->fields.sfmt_mhdsets.f
19265 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
19266 int UNUSED written
= 0;
19267 IADDR UNUSED pc
= abuf
->addr
;
19268 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
19272 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRk
)));
19273 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
19274 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
19277 UHI opval
= FLD (f_u12
);
19278 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
19279 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
19282 UHI opval
= FLD (f_u12
);
19283 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
19284 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
19292 /* mhsetloh: mhsetloh$pack $s5,$FRklo */
19295 SEM_FN_NAME (frvbf
,mhsetloh
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
19297 #define FLD(f) abuf->fields.sfmt_mhsetloh.f
19298 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
19299 int UNUSED written
= 0;
19300 IADDR UNUSED pc
= abuf
->addr
;
19301 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
19305 tmp_tmp
= GET_H_FR_LO (FLD (f_FRk
));
19306 tmp_tmp
= ANDHI (tmp_tmp
, 2047);
19307 tmp_tmp
= ORHI (tmp_tmp
, SLLSI (ANDSI (FLD (f_s5
), 31), 11));
19309 UHI opval
= tmp_tmp
;
19310 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, FLD (f_FRk
), opval
);
19311 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
19319 /* mhsethih: mhsethih$pack $s5,$FRkhi */
19322 SEM_FN_NAME (frvbf
,mhsethih
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
19324 #define FLD(f) abuf->fields.sfmt_mhsethih.f
19325 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
19326 int UNUSED written
= 0;
19327 IADDR UNUSED pc
= abuf
->addr
;
19328 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
19332 tmp_tmp
= GET_H_FR_HI (FLD (f_FRk
));
19333 tmp_tmp
= ANDHI (tmp_tmp
, 2047);
19334 tmp_tmp
= ORHI (tmp_tmp
, SLLSI (ANDSI (FLD (f_s5
), 31), 11));
19336 UHI opval
= tmp_tmp
;
19337 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, FLD (f_FRk
), opval
);
19338 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
19346 /* mhdseth: mhdseth$pack $s5,$FRintk */
19349 SEM_FN_NAME (frvbf
,mhdseth
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
19351 #define FLD(f) abuf->fields.sfmt_mhdseth.f
19352 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
19353 int UNUSED written
= 0;
19354 IADDR UNUSED pc
= abuf
->addr
;
19355 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
19359 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRk
)));
19360 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
19361 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
19365 tmp_tmp
= GET_H_FR_HI (((FLD (f_FRk
)) + (0)));
19366 tmp_tmp
= ANDHI (tmp_tmp
, 2047);
19367 tmp_tmp
= ORHI (tmp_tmp
, SLLSI (ANDSI (FLD (f_s5
), 31), 11));
19369 UHI opval
= tmp_tmp
;
19370 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
19371 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
19376 tmp_tmp
= GET_H_FR_LO (((FLD (f_FRk
)) + (0)));
19377 tmp_tmp
= ANDHI (tmp_tmp
, 2047);
19378 tmp_tmp
= ORHI (tmp_tmp
, SLLSI (ANDSI (FLD (f_s5
), 31), 11));
19380 UHI opval
= tmp_tmp
;
19381 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
19382 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
19391 /* mand: mand$pack $FRinti,$FRintj,$FRintk */
19394 SEM_FN_NAME (frvbf
,mand
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
19396 #define FLD(f) abuf->fields.sfmt_mwcut.f
19397 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
19398 int UNUSED written
= 0;
19399 IADDR UNUSED pc
= abuf
->addr
;
19400 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
19403 SI opval
= ANDSI (GET_H_FR_INT (FLD (f_FRi
)), GET_H_FR_INT (FLD (f_FRj
)));
19404 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
19405 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
19412 /* mor: mor$pack $FRinti,$FRintj,$FRintk */
19415 SEM_FN_NAME (frvbf
,mor
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
19417 #define FLD(f) abuf->fields.sfmt_mwcut.f
19418 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
19419 int UNUSED written
= 0;
19420 IADDR UNUSED pc
= abuf
->addr
;
19421 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
19424 SI opval
= ORSI (GET_H_FR_INT (FLD (f_FRi
)), GET_H_FR_INT (FLD (f_FRj
)));
19425 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
19426 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
19433 /* mxor: mxor$pack $FRinti,$FRintj,$FRintk */
19436 SEM_FN_NAME (frvbf
,mxor
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
19438 #define FLD(f) abuf->fields.sfmt_mwcut.f
19439 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
19440 int UNUSED written
= 0;
19441 IADDR UNUSED pc
= abuf
->addr
;
19442 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
19445 SI opval
= XORSI (GET_H_FR_INT (FLD (f_FRi
)), GET_H_FR_INT (FLD (f_FRj
)));
19446 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
19447 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
19454 /* cmand: cmand$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
19457 SEM_FN_NAME (frvbf
,cmand
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
19459 #define FLD(f) abuf->fields.sfmt_cmand.f
19460 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
19461 int UNUSED written
= 0;
19462 IADDR UNUSED pc
= abuf
->addr
;
19463 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
19465 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
19467 SI opval
= ANDSI (GET_H_FR_INT (FLD (f_FRi
)), GET_H_FR_INT (FLD (f_FRj
)));
19468 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
19469 written
|= (1 << 4);
19470 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
19474 abuf
->written
= written
;
19479 /* cmor: cmor$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
19482 SEM_FN_NAME (frvbf
,cmor
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
19484 #define FLD(f) abuf->fields.sfmt_cmand.f
19485 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
19486 int UNUSED written
= 0;
19487 IADDR UNUSED pc
= abuf
->addr
;
19488 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
19490 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
19492 SI opval
= ORSI (GET_H_FR_INT (FLD (f_FRi
)), GET_H_FR_INT (FLD (f_FRj
)));
19493 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
19494 written
|= (1 << 4);
19495 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
19499 abuf
->written
= written
;
19504 /* cmxor: cmxor$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
19507 SEM_FN_NAME (frvbf
,cmxor
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
19509 #define FLD(f) abuf->fields.sfmt_cmand.f
19510 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
19511 int UNUSED written
= 0;
19512 IADDR UNUSED pc
= abuf
->addr
;
19513 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
19515 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
19517 SI opval
= XORSI (GET_H_FR_INT (FLD (f_FRi
)), GET_H_FR_INT (FLD (f_FRj
)));
19518 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
19519 written
|= (1 << 4);
19520 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
19524 abuf
->written
= written
;
19529 /* mnot: mnot$pack $FRintj,$FRintk */
19532 SEM_FN_NAME (frvbf
,mnot
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
19534 #define FLD(f) abuf->fields.sfmt_mcut.f
19535 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
19536 int UNUSED written
= 0;
19537 IADDR UNUSED pc
= abuf
->addr
;
19538 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
19541 SI opval
= INVSI (GET_H_FR_INT (FLD (f_FRj
)));
19542 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
19543 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
19550 /* cmnot: cmnot$pack $FRintj,$FRintk,$CCi,$cond */
19553 SEM_FN_NAME (frvbf
,cmnot
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
19555 #define FLD(f) abuf->fields.sfmt_cmand.f
19556 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
19557 int UNUSED written
= 0;
19558 IADDR UNUSED pc
= abuf
->addr
;
19559 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
19561 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
19563 SI opval
= INVSI (GET_H_FR_INT (FLD (f_FRj
)));
19564 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
19565 written
|= (1 << 3);
19566 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
19570 abuf
->written
= written
;
19575 /* mrotli: mrotli$pack $FRinti,$u6,$FRintk */
19578 SEM_FN_NAME (frvbf
,mrotli
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
19580 #define FLD(f) abuf->fields.sfmt_mwcuti.f
19581 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
19582 int UNUSED written
= 0;
19583 IADDR UNUSED pc
= abuf
->addr
;
19584 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
19587 SI opval
= ROLSI (GET_H_FR_INT (FLD (f_FRi
)), ANDSI (FLD (f_u6
), 31));
19588 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
19589 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
19596 /* mrotri: mrotri$pack $FRinti,$u6,$FRintk */
19599 SEM_FN_NAME (frvbf
,mrotri
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
19601 #define FLD(f) abuf->fields.sfmt_mwcuti.f
19602 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
19603 int UNUSED written
= 0;
19604 IADDR UNUSED pc
= abuf
->addr
;
19605 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
19608 SI opval
= RORSI (GET_H_FR_INT (FLD (f_FRi
)), ANDSI (FLD (f_u6
), 31));
19609 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
19610 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
19617 /* mwcut: mwcut$pack $FRinti,$FRintj,$FRintk */
19620 SEM_FN_NAME (frvbf
,mwcut
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
19622 #define FLD(f) abuf->fields.sfmt_mwcut.f
19623 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
19624 int UNUSED written
= 0;
19625 IADDR UNUSED pc
= abuf
->addr
;
19626 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
19629 SI opval
= frvbf_cut (current_cpu
, GET_H_FR_INT (FLD (f_FRi
)), GET_H_FR_INT (((FLD (f_FRi
)) + (1))), GET_H_FR_INT (FLD (f_FRj
)));
19630 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
19631 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
19638 /* mwcuti: mwcuti$pack $FRinti,$u6,$FRintk */
19641 SEM_FN_NAME (frvbf
,mwcuti
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
19643 #define FLD(f) abuf->fields.sfmt_mwcuti.f
19644 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
19645 int UNUSED written
= 0;
19646 IADDR UNUSED pc
= abuf
->addr
;
19647 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
19650 SI opval
= frvbf_cut (current_cpu
, GET_H_FR_INT (FLD (f_FRi
)), GET_H_FR_INT (((FLD (f_FRi
)) + (1))), FLD (f_u6
));
19651 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
19652 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
19659 /* mcut: mcut$pack $ACC40Si,$FRintj,$FRintk */
19662 SEM_FN_NAME (frvbf
,mcut
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
19664 #define FLD(f) abuf->fields.sfmt_mcut.f
19665 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
19666 int UNUSED written
= 0;
19667 IADDR UNUSED pc
= abuf
->addr
;
19668 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
19671 SI opval
= frvbf_media_cut (current_cpu
, GET_H_ACC40S (FLD (f_ACC40Si
)), GET_H_FR_INT (FLD (f_FRj
)));
19672 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
19673 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
19680 /* mcuti: mcuti$pack $ACC40Si,$s6,$FRintk */
19683 SEM_FN_NAME (frvbf
,mcuti
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
19685 #define FLD(f) abuf->fields.sfmt_mcuti.f
19686 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
19687 int UNUSED written
= 0;
19688 IADDR UNUSED pc
= abuf
->addr
;
19689 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
19692 SI opval
= frvbf_media_cut (current_cpu
, GET_H_ACC40S (FLD (f_ACC40Si
)), FLD (f_s6
));
19693 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
19694 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
19701 /* mcutss: mcutss$pack $ACC40Si,$FRintj,$FRintk */
19704 SEM_FN_NAME (frvbf
,mcutss
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
19706 #define FLD(f) abuf->fields.sfmt_mcut.f
19707 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
19708 int UNUSED written
= 0;
19709 IADDR UNUSED pc
= abuf
->addr
;
19710 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
19713 SI opval
= frvbf_media_cut_ss (current_cpu
, GET_H_ACC40S (FLD (f_ACC40Si
)), GET_H_FR_INT (FLD (f_FRj
)));
19714 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
19715 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
19722 /* mcutssi: mcutssi$pack $ACC40Si,$s6,$FRintk */
19725 SEM_FN_NAME (frvbf
,mcutssi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
19727 #define FLD(f) abuf->fields.sfmt_mcuti.f
19728 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
19729 int UNUSED written
= 0;
19730 IADDR UNUSED pc
= abuf
->addr
;
19731 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
19734 SI opval
= frvbf_media_cut_ss (current_cpu
, GET_H_ACC40S (FLD (f_ACC40Si
)), FLD (f_s6
));
19735 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
19736 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
19743 /* mdcutssi: mdcutssi$pack $ACC40Si,$s6,$FRintkeven */
19746 SEM_FN_NAME (frvbf
,mdcutssi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
19748 #define FLD(f) abuf->fields.sfmt_mdcutssi.f
19749 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
19750 int UNUSED written
= 0;
19751 IADDR UNUSED pc
= abuf
->addr
;
19752 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
19754 if (ANDSI (FLD (f_ACC40Si
), SUBSI (2, 1))) {
19755 frvbf_media_acc_not_aligned (current_cpu
);
19757 if (ANDSI (FLD (f_FRk
), SUBSI (2, 1))) {
19758 frvbf_media_register_not_aligned (current_cpu
);
19762 SI opval
= frvbf_media_cut_ss (current_cpu
, GET_H_ACC40S (FLD (f_ACC40Si
)), FLD (f_s6
));
19763 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
19764 written
|= (1 << 5);
19765 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
19768 USI opval
= frvbf_media_cut_ss (current_cpu
, GET_H_ACC40S (((FLD (f_ACC40Si
)) + (1))), FLD (f_s6
));
19769 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, ((FLD (f_FRk
)) + (1)), opval
);
19770 written
|= (1 << 6);
19771 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
19777 abuf
->written
= written
;
19782 /* maveh: maveh$pack $FRinti,$FRintj,$FRintk */
19785 SEM_FN_NAME (frvbf
,maveh
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
19787 #define FLD(f) abuf->fields.sfmt_mwcut.f
19788 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
19789 int UNUSED written
= 0;
19790 IADDR UNUSED pc
= abuf
->addr
;
19791 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
19794 SI opval
= frvbf_media_average (current_cpu
, GET_H_FR_INT (FLD (f_FRi
)), GET_H_FR_INT (FLD (f_FRj
)));
19795 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
19796 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
19803 /* msllhi: msllhi$pack $FRinti,$u6,$FRintk */
19806 SEM_FN_NAME (frvbf
,msllhi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
19808 #define FLD(f) abuf->fields.sfmt_msllhi.f
19809 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
19810 int UNUSED written
= 0;
19811 IADDR UNUSED pc
= abuf
->addr
;
19812 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
19816 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRi
)));
19817 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRi
), opval
);
19818 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
19821 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRk
)));
19822 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
19823 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
19826 UHI opval
= SLLHI (GET_H_FR_HI (((FLD (f_FRi
)) + (0))), ANDSI (FLD (f_u6
), 15));
19827 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
19828 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
19831 UHI opval
= SLLHI (GET_H_FR_LO (((FLD (f_FRi
)) + (0))), ANDSI (FLD (f_u6
), 15));
19832 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
19833 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
19841 /* msrlhi: msrlhi$pack $FRinti,$u6,$FRintk */
19844 SEM_FN_NAME (frvbf
,msrlhi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
19846 #define FLD(f) abuf->fields.sfmt_msllhi.f
19847 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
19848 int UNUSED written
= 0;
19849 IADDR UNUSED pc
= abuf
->addr
;
19850 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
19854 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRi
)));
19855 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRi
), opval
);
19856 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
19859 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRk
)));
19860 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
19861 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
19864 UHI opval
= SRLHI (GET_H_FR_HI (((FLD (f_FRi
)) + (0))), ANDSI (FLD (f_u6
), 15));
19865 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
19866 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
19869 UHI opval
= SRLHI (GET_H_FR_LO (((FLD (f_FRi
)) + (0))), ANDSI (FLD (f_u6
), 15));
19870 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
19871 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
19879 /* msrahi: msrahi$pack $FRinti,$u6,$FRintk */
19882 SEM_FN_NAME (frvbf
,msrahi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
19884 #define FLD(f) abuf->fields.sfmt_msllhi.f
19885 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
19886 int UNUSED written
= 0;
19887 IADDR UNUSED pc
= abuf
->addr
;
19888 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
19892 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRi
)));
19893 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRi
), opval
);
19894 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
19897 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRk
)));
19898 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
19899 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
19902 UHI opval
= SRAHI (GET_H_FR_HI (((FLD (f_FRi
)) + (0))), ANDSI (FLD (f_u6
), 15));
19903 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
19904 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
19907 UHI opval
= SRAHI (GET_H_FR_LO (((FLD (f_FRi
)) + (0))), ANDSI (FLD (f_u6
), 15));
19908 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
19909 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
19917 /* mdrotli: mdrotli$pack $FRintieven,$s6,$FRintkeven */
19920 SEM_FN_NAME (frvbf
,mdrotli
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
19922 #define FLD(f) abuf->fields.sfmt_mdrotli.f
19923 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
19924 int UNUSED written
= 0;
19925 IADDR UNUSED pc
= abuf
->addr
;
19926 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
19928 if (ORIF (ANDSI (FLD (f_FRi
), SUBSI (2, 1)), ANDSI (FLD (f_FRk
), SUBSI (2, 1)))) {
19929 frvbf_media_register_not_aligned (current_cpu
);
19933 SI opval
= ROLSI (GET_H_FR_INT (FLD (f_FRi
)), ANDSI (FLD (f_s6
), 31));
19934 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
19935 written
|= (1 << 5);
19936 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
19939 USI opval
= ROLSI (GET_H_FR_INT (((FLD (f_FRi
)) + (1))), ANDSI (FLD (f_s6
), 31));
19940 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, ((FLD (f_FRk
)) + (1)), opval
);
19941 written
|= (1 << 6);
19942 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
19947 abuf
->written
= written
;
19952 /* mcplhi: mcplhi$pack $FRinti,$u6,$FRintk */
19955 SEM_FN_NAME (frvbf
,mcplhi
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
19957 #define FLD(f) abuf->fields.sfmt_mcplhi.f
19958 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
19959 int UNUSED written
= 0;
19960 IADDR UNUSED pc
= abuf
->addr
;
19961 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
19968 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRi
)));
19969 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRi
), opval
);
19970 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
19973 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRk
)));
19974 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
19975 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
19977 tmp_shift
= ANDSI (FLD (f_u6
), 15);
19978 tmp_arg1
= SLLHI (GET_H_FR_HI (((FLD (f_FRi
)) + (0))), tmp_shift
);
19979 if (NEHI (tmp_shift
, 0)) {
19981 tmp_arg2
= GET_H_FR_HI (((FLD (f_FRi
)) + (1)));
19982 tmp_arg2
= SRLHI (SLLHI (tmp_arg2
, SUBSI (15, tmp_shift
)), SUBSI (15, tmp_shift
));
19983 tmp_arg1
= ORHI (tmp_arg1
, tmp_arg2
);
19987 UHI opval
= tmp_arg1
;
19988 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
19989 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
19997 /* mcpli: mcpli$pack $FRinti,$u6,$FRintk */
20000 SEM_FN_NAME (frvbf
,mcpli
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
20002 #define FLD(f) abuf->fields.sfmt_mwcuti.f
20003 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
20004 int UNUSED written
= 0;
20005 IADDR UNUSED pc
= abuf
->addr
;
20006 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
20011 tmp_shift
= ANDSI (FLD (f_u6
), 31);
20012 tmp_tmp
= SLLSI (GET_H_FR_INT (FLD (f_FRi
)), tmp_shift
);
20013 if (NESI (tmp_shift
, 0)) {
20016 tmp_tmp1
= SRLSI (SLLSI (GET_H_FR_INT (((FLD (f_FRi
)) + (1))), SUBSI (31, tmp_shift
)), SUBSI (31, tmp_shift
));
20017 tmp_tmp
= ORSI (tmp_tmp
, tmp_tmp1
);
20021 SI opval
= tmp_tmp
;
20022 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
20023 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
20031 /* msaths: msaths$pack $FRinti,$FRintj,$FRintk */
20034 SEM_FN_NAME (frvbf
,msaths
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
20036 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20037 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
20038 int UNUSED written
= 0;
20039 IADDR UNUSED pc
= abuf
->addr
;
20040 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
20048 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
20049 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
20050 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
20051 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
20053 if (GTHI (tmp_argihi
, tmp_argjhi
)) {
20055 UHI opval
= tmp_argjhi
;
20056 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
20057 written
|= (1 << 9);
20058 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
20061 if (LTHI (tmp_argihi
, INVHI (tmp_argjhi
))) {
20063 UHI opval
= INVHI (tmp_argjhi
);
20064 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
20065 written
|= (1 << 9);
20066 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
20070 UHI opval
= tmp_argihi
;
20071 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
20072 written
|= (1 << 9);
20073 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
20077 if (GTHI (tmp_argilo
, tmp_argjlo
)) {
20079 UHI opval
= tmp_argjlo
;
20080 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
20081 written
|= (1 << 10);
20082 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
20085 if (LTHI (tmp_argilo
, INVHI (tmp_argjlo
))) {
20087 UHI opval
= INVHI (tmp_argjlo
);
20088 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
20089 written
|= (1 << 10);
20090 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
20094 UHI opval
= tmp_argilo
;
20095 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
20096 written
|= (1 << 10);
20097 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
20103 abuf
->written
= written
;
20108 /* mqsaths: mqsaths$pack $FRintieven,$FRintjeven,$FRintkeven */
20111 SEM_FN_NAME (frvbf
,mqsaths
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
20113 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
20114 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
20115 int UNUSED written
= 0;
20116 IADDR UNUSED pc
= abuf
->addr
;
20117 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
20119 if (ORIF (ANDSI (FLD (f_FRi
), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj
), SUBSI (2, 1)), ANDSI (FLD (f_FRk
), SUBSI (2, 1))))) {
20120 frvbf_media_register_not_aligned (current_cpu
);
20128 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRk
)));
20129 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
20130 written
|= (1 << 14);
20131 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
20134 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
20135 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
20136 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
20137 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
20139 if (GTHI (tmp_argihi
, tmp_argjhi
)) {
20141 UHI opval
= tmp_argjhi
;
20142 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
20143 written
|= (1 << 15);
20144 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
20147 if (LTHI (tmp_argihi
, INVHI (tmp_argjhi
))) {
20149 UHI opval
= INVHI (tmp_argjhi
);
20150 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
20151 written
|= (1 << 15);
20152 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
20156 UHI opval
= tmp_argihi
;
20157 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
20158 written
|= (1 << 15);
20159 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
20163 if (GTHI (tmp_argilo
, tmp_argjlo
)) {
20165 UHI opval
= tmp_argjlo
;
20166 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
20167 written
|= (1 << 17);
20168 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
20171 if (LTHI (tmp_argilo
, INVHI (tmp_argjlo
))) {
20173 UHI opval
= INVHI (tmp_argjlo
);
20174 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
20175 written
|= (1 << 17);
20176 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
20180 UHI opval
= tmp_argilo
;
20181 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
20182 written
|= (1 << 17);
20183 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
20188 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
20189 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
20190 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
20191 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
20193 if (GTHI (tmp_argihi
, tmp_argjhi
)) {
20195 UHI opval
= tmp_argjhi
;
20196 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (1)), opval
);
20197 written
|= (1 << 16);
20198 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
20201 if (LTHI (tmp_argihi
, INVHI (tmp_argjhi
))) {
20203 UHI opval
= INVHI (tmp_argjhi
);
20204 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (1)), opval
);
20205 written
|= (1 << 16);
20206 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
20210 UHI opval
= tmp_argihi
;
20211 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (1)), opval
);
20212 written
|= (1 << 16);
20213 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
20217 if (GTHI (tmp_argilo
, tmp_argjlo
)) {
20219 UHI opval
= tmp_argjlo
;
20220 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (1)), opval
);
20221 written
|= (1 << 18);
20222 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
20225 if (LTHI (tmp_argilo
, INVHI (tmp_argjlo
))) {
20227 UHI opval
= INVHI (tmp_argjlo
);
20228 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (1)), opval
);
20229 written
|= (1 << 18);
20230 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
20234 UHI opval
= tmp_argilo
;
20235 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (1)), opval
);
20236 written
|= (1 << 18);
20237 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
20244 abuf
->written
= written
;
20249 /* msathu: msathu$pack $FRinti,$FRintj,$FRintk */
20252 SEM_FN_NAME (frvbf
,msathu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
20254 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20255 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
20256 int UNUSED written
= 0;
20257 IADDR UNUSED pc
= abuf
->addr
;
20258 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
20266 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
20267 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
20268 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
20269 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
20271 if (GTUHI (tmp_argihi
, tmp_argjhi
)) {
20273 UHI opval
= tmp_argjhi
;
20274 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
20275 written
|= (1 << 9);
20276 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
20280 UHI opval
= tmp_argihi
;
20281 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
20282 written
|= (1 << 9);
20283 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
20286 if (GTUHI (tmp_argilo
, tmp_argjlo
)) {
20288 UHI opval
= tmp_argjlo
;
20289 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
20290 written
|= (1 << 10);
20291 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
20295 UHI opval
= tmp_argilo
;
20296 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
20297 written
|= (1 << 10);
20298 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
20303 abuf
->written
= written
;
20308 /* mcmpsh: mcmpsh$pack $FRinti,$FRintj,$FCCk */
20311 SEM_FN_NAME (frvbf
,mcmpsh
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
20313 #define FLD(f) abuf->fields.sfmt_mcmpsh.f
20314 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
20315 int UNUSED written
= 0;
20316 IADDR UNUSED pc
= abuf
->addr
;
20317 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
20319 if (ANDSI (FLD (f_FCCk
), SUBSI (2, 1))) {
20320 frvbf_media_cr_not_aligned (current_cpu
);
20328 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
20329 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
20330 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
20331 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
20333 if (GTHI (tmp_argihi
, tmp_argjhi
)) {
20336 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[FLD (f_FCCk
)]), opval
);
20337 written
|= (1 << 9);
20338 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
20341 if (EQHI (tmp_argihi
, tmp_argjhi
)) {
20344 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[FLD (f_FCCk
)]), opval
);
20345 written
|= (1 << 9);
20346 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
20349 if (LTHI (tmp_argihi
, tmp_argjhi
)) {
20352 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[FLD (f_FCCk
)]), opval
);
20353 written
|= (1 << 9);
20354 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
20359 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[FLD (f_FCCk
)]), opval
);
20360 written
|= (1 << 9);
20361 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
20366 if (GTHI (tmp_argilo
, tmp_argjlo
)) {
20369 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[((FLD (f_FCCk
)) + (1))]), opval
);
20370 written
|= (1 << 10);
20371 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
20374 if (EQHI (tmp_argilo
, tmp_argjlo
)) {
20377 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[((FLD (f_FCCk
)) + (1))]), opval
);
20378 written
|= (1 << 10);
20379 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
20382 if (LTHI (tmp_argilo
, tmp_argjlo
)) {
20385 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[((FLD (f_FCCk
)) + (1))]), opval
);
20386 written
|= (1 << 10);
20387 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
20392 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[((FLD (f_FCCk
)) + (1))]), opval
);
20393 written
|= (1 << 10);
20394 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
20402 abuf
->written
= written
;
20407 /* mcmpuh: mcmpuh$pack $FRinti,$FRintj,$FCCk */
20410 SEM_FN_NAME (frvbf
,mcmpuh
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
20412 #define FLD(f) abuf->fields.sfmt_mcmpsh.f
20413 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
20414 int UNUSED written
= 0;
20415 IADDR UNUSED pc
= abuf
->addr
;
20416 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
20418 if (ANDSI (FLD (f_FCCk
), SUBSI (2, 1))) {
20419 frvbf_media_cr_not_aligned (current_cpu
);
20427 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
20428 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
20429 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
20430 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
20432 if (GTUHI (tmp_argihi
, tmp_argjhi
)) {
20435 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[FLD (f_FCCk
)]), opval
);
20436 written
|= (1 << 9);
20437 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
20440 if (EQHI (tmp_argihi
, tmp_argjhi
)) {
20443 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[FLD (f_FCCk
)]), opval
);
20444 written
|= (1 << 9);
20445 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
20448 if (LTUHI (tmp_argihi
, tmp_argjhi
)) {
20451 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[FLD (f_FCCk
)]), opval
);
20452 written
|= (1 << 9);
20453 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
20458 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[FLD (f_FCCk
)]), opval
);
20459 written
|= (1 << 9);
20460 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
20465 if (GTUHI (tmp_argilo
, tmp_argjlo
)) {
20468 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[((FLD (f_FCCk
)) + (1))]), opval
);
20469 written
|= (1 << 10);
20470 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
20473 if (EQHI (tmp_argilo
, tmp_argjlo
)) {
20476 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[((FLD (f_FCCk
)) + (1))]), opval
);
20477 written
|= (1 << 10);
20478 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
20481 if (LTUHI (tmp_argilo
, tmp_argjlo
)) {
20484 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[((FLD (f_FCCk
)) + (1))]), opval
);
20485 written
|= (1 << 10);
20486 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
20491 sim_queue_qi_write (current_cpu
, & CPU (h_fccr
[((FLD (f_FCCk
)) + (1))]), opval
);
20492 written
|= (1 << 10);
20493 TRACE_RESULT (current_cpu
, abuf
, "fccr", 'x', opval
);
20501 abuf
->written
= written
;
20506 /* mabshs: mabshs$pack $FRintj,$FRintk */
20509 SEM_FN_NAME (frvbf
,mabshs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
20511 #define FLD(f) abuf->fields.sfmt_mabshs.f
20512 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
20513 int UNUSED written
= 0;
20514 IADDR UNUSED pc
= abuf
->addr
;
20515 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
20521 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRj
)));
20522 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRj
), opval
);
20523 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
20526 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRk
)));
20527 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
20528 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
20530 tmp_arghi
= GET_H_FR_HI (((FLD (f_FRj
)) + (0)));
20531 tmp_arglo
= GET_H_FR_LO (((FLD (f_FRj
)) + (0)));
20532 if (GTDI (ABSHI (tmp_arghi
), 32767)) {
20536 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
20537 written
|= (1 << 8);
20538 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
20540 frvbf_media_overflow (current_cpu
, 8);
20543 if (LTDI (ABSHI (tmp_arghi
), -32768)) {
20546 UHI opval
= -32768;
20547 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
20548 written
|= (1 << 8);
20549 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
20551 frvbf_media_overflow (current_cpu
, 8);
20555 UHI opval
= ABSHI (tmp_arghi
);
20556 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
20557 written
|= (1 << 8);
20558 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
20562 if (GTDI (ABSHI (tmp_arglo
), 32767)) {
20566 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
20567 written
|= (1 << 9);
20568 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
20570 frvbf_media_overflow (current_cpu
, 4);
20573 if (LTDI (ABSHI (tmp_arglo
), -32768)) {
20576 UHI opval
= -32768;
20577 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
20578 written
|= (1 << 9);
20579 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
20581 frvbf_media_overflow (current_cpu
, 4);
20585 UHI opval
= ABSHI (tmp_arglo
);
20586 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
20587 written
|= (1 << 9);
20588 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
20594 abuf
->written
= written
;
20599 /* maddhss: maddhss$pack $FRinti,$FRintj,$FRintk */
20602 SEM_FN_NAME (frvbf
,maddhss
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
20604 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20605 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
20606 int UNUSED written
= 0;
20607 IADDR UNUSED pc
= abuf
->addr
;
20608 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
20616 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
20617 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
20618 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
20619 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
20623 tmp_tmp
= ADDHI (tmp_argihi
, tmp_argjhi
);
20624 if (GTDI (tmp_tmp
, 32767)) {
20628 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
20629 written
|= (1 << 9);
20630 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
20632 frvbf_media_overflow (current_cpu
, 8);
20635 if (LTDI (tmp_tmp
, -32768)) {
20638 UHI opval
= -32768;
20639 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
20640 written
|= (1 << 9);
20641 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
20643 frvbf_media_overflow (current_cpu
, 8);
20647 UHI opval
= tmp_tmp
;
20648 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
20649 written
|= (1 << 9);
20650 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
20657 tmp_tmp
= ADDHI (tmp_argilo
, tmp_argjlo
);
20658 if (GTDI (tmp_tmp
, 32767)) {
20662 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
20663 written
|= (1 << 10);
20664 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
20666 frvbf_media_overflow (current_cpu
, 4);
20669 if (LTDI (tmp_tmp
, -32768)) {
20672 UHI opval
= -32768;
20673 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
20674 written
|= (1 << 10);
20675 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
20677 frvbf_media_overflow (current_cpu
, 4);
20681 UHI opval
= tmp_tmp
;
20682 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
20683 written
|= (1 << 10);
20684 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
20691 abuf
->written
= written
;
20696 /* maddhus: maddhus$pack $FRinti,$FRintj,$FRintk */
20699 SEM_FN_NAME (frvbf
,maddhus
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
20701 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20702 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
20703 int UNUSED written
= 0;
20704 IADDR UNUSED pc
= abuf
->addr
;
20705 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
20713 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
20714 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
20715 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
20716 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
20720 tmp_tmp
= ADDHI (tmp_argihi
, tmp_argjhi
);
20721 if (GTDI (tmp_tmp
, 65535)) {
20725 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
20726 written
|= (1 << 9);
20727 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
20729 frvbf_media_overflow (current_cpu
, 8);
20732 if (LTDI (tmp_tmp
, 0)) {
20736 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
20737 written
|= (1 << 9);
20738 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
20740 frvbf_media_overflow (current_cpu
, 8);
20744 UHI opval
= tmp_tmp
;
20745 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
20746 written
|= (1 << 9);
20747 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
20754 tmp_tmp
= ADDHI (tmp_argilo
, tmp_argjlo
);
20755 if (GTDI (tmp_tmp
, 65535)) {
20759 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
20760 written
|= (1 << 10);
20761 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
20763 frvbf_media_overflow (current_cpu
, 4);
20766 if (LTDI (tmp_tmp
, 0)) {
20770 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
20771 written
|= (1 << 10);
20772 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
20774 frvbf_media_overflow (current_cpu
, 4);
20778 UHI opval
= tmp_tmp
;
20779 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
20780 written
|= (1 << 10);
20781 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
20788 abuf
->written
= written
;
20793 /* msubhss: msubhss$pack $FRinti,$FRintj,$FRintk */
20796 SEM_FN_NAME (frvbf
,msubhss
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
20798 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20799 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
20800 int UNUSED written
= 0;
20801 IADDR UNUSED pc
= abuf
->addr
;
20802 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
20810 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
20811 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
20812 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
20813 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
20817 tmp_tmp
= SUBHI (tmp_argihi
, tmp_argjhi
);
20818 if (GTDI (tmp_tmp
, 32767)) {
20822 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
20823 written
|= (1 << 9);
20824 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
20826 frvbf_media_overflow (current_cpu
, 8);
20829 if (LTDI (tmp_tmp
, -32768)) {
20832 UHI opval
= -32768;
20833 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
20834 written
|= (1 << 9);
20835 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
20837 frvbf_media_overflow (current_cpu
, 8);
20841 UHI opval
= tmp_tmp
;
20842 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
20843 written
|= (1 << 9);
20844 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
20851 tmp_tmp
= SUBHI (tmp_argilo
, tmp_argjlo
);
20852 if (GTDI (tmp_tmp
, 32767)) {
20856 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
20857 written
|= (1 << 10);
20858 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
20860 frvbf_media_overflow (current_cpu
, 4);
20863 if (LTDI (tmp_tmp
, -32768)) {
20866 UHI opval
= -32768;
20867 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
20868 written
|= (1 << 10);
20869 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
20871 frvbf_media_overflow (current_cpu
, 4);
20875 UHI opval
= tmp_tmp
;
20876 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
20877 written
|= (1 << 10);
20878 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
20885 abuf
->written
= written
;
20890 /* msubhus: msubhus$pack $FRinti,$FRintj,$FRintk */
20893 SEM_FN_NAME (frvbf
,msubhus
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
20895 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20896 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
20897 int UNUSED written
= 0;
20898 IADDR UNUSED pc
= abuf
->addr
;
20899 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
20907 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
20908 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
20909 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
20910 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
20914 tmp_tmp
= SUBHI (tmp_argihi
, tmp_argjhi
);
20915 if (GTDI (tmp_tmp
, 65535)) {
20919 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
20920 written
|= (1 << 9);
20921 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
20923 frvbf_media_overflow (current_cpu
, 8);
20926 if (LTDI (tmp_tmp
, 0)) {
20930 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
20931 written
|= (1 << 9);
20932 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
20934 frvbf_media_overflow (current_cpu
, 8);
20938 UHI opval
= tmp_tmp
;
20939 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
20940 written
|= (1 << 9);
20941 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
20948 tmp_tmp
= SUBHI (tmp_argilo
, tmp_argjlo
);
20949 if (GTDI (tmp_tmp
, 65535)) {
20953 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
20954 written
|= (1 << 10);
20955 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
20957 frvbf_media_overflow (current_cpu
, 4);
20960 if (LTDI (tmp_tmp
, 0)) {
20964 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
20965 written
|= (1 << 10);
20966 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
20968 frvbf_media_overflow (current_cpu
, 4);
20972 UHI opval
= tmp_tmp
;
20973 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
20974 written
|= (1 << 10);
20975 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
20982 abuf
->written
= written
;
20987 /* cmaddhss: cmaddhss$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
20990 SEM_FN_NAME (frvbf
,cmaddhss
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
20992 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20993 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
20994 int UNUSED written
= 0;
20995 IADDR UNUSED pc
= abuf
->addr
;
20996 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
20998 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
21005 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
21006 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
21007 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
21008 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
21012 tmp_tmp
= ADDHI (tmp_argihi
, tmp_argjhi
);
21013 if (GTDI (tmp_tmp
, 32767)) {
21017 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
21018 written
|= (1 << 11);
21019 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
21021 frvbf_media_overflow (current_cpu
, 8);
21024 if (LTDI (tmp_tmp
, -32768)) {
21027 UHI opval
= -32768;
21028 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
21029 written
|= (1 << 11);
21030 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
21032 frvbf_media_overflow (current_cpu
, 8);
21036 UHI opval
= tmp_tmp
;
21037 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
21038 written
|= (1 << 11);
21039 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
21046 tmp_tmp
= ADDHI (tmp_argilo
, tmp_argjlo
);
21047 if (GTDI (tmp_tmp
, 32767)) {
21051 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
21052 written
|= (1 << 12);
21053 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
21055 frvbf_media_overflow (current_cpu
, 4);
21058 if (LTDI (tmp_tmp
, -32768)) {
21061 UHI opval
= -32768;
21062 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
21063 written
|= (1 << 12);
21064 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
21066 frvbf_media_overflow (current_cpu
, 4);
21070 UHI opval
= tmp_tmp
;
21071 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
21072 written
|= (1 << 12);
21073 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
21081 abuf
->written
= written
;
21086 /* cmaddhus: cmaddhus$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
21089 SEM_FN_NAME (frvbf
,cmaddhus
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
21091 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
21092 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
21093 int UNUSED written
= 0;
21094 IADDR UNUSED pc
= abuf
->addr
;
21095 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
21097 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
21104 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
21105 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
21106 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
21107 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
21111 tmp_tmp
= ADDHI (tmp_argihi
, tmp_argjhi
);
21112 if (GTDI (tmp_tmp
, 65535)) {
21116 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
21117 written
|= (1 << 11);
21118 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
21120 frvbf_media_overflow (current_cpu
, 8);
21123 if (LTDI (tmp_tmp
, 0)) {
21127 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
21128 written
|= (1 << 11);
21129 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
21131 frvbf_media_overflow (current_cpu
, 8);
21135 UHI opval
= tmp_tmp
;
21136 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
21137 written
|= (1 << 11);
21138 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
21145 tmp_tmp
= ADDHI (tmp_argilo
, tmp_argjlo
);
21146 if (GTDI (tmp_tmp
, 65535)) {
21150 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
21151 written
|= (1 << 12);
21152 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
21154 frvbf_media_overflow (current_cpu
, 4);
21157 if (LTDI (tmp_tmp
, 0)) {
21161 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
21162 written
|= (1 << 12);
21163 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
21165 frvbf_media_overflow (current_cpu
, 4);
21169 UHI opval
= tmp_tmp
;
21170 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
21171 written
|= (1 << 12);
21172 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
21180 abuf
->written
= written
;
21185 /* cmsubhss: cmsubhss$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
21188 SEM_FN_NAME (frvbf
,cmsubhss
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
21190 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
21191 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
21192 int UNUSED written
= 0;
21193 IADDR UNUSED pc
= abuf
->addr
;
21194 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
21196 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
21203 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
21204 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
21205 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
21206 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
21210 tmp_tmp
= SUBHI (tmp_argihi
, tmp_argjhi
);
21211 if (GTDI (tmp_tmp
, 32767)) {
21215 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
21216 written
|= (1 << 11);
21217 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
21219 frvbf_media_overflow (current_cpu
, 8);
21222 if (LTDI (tmp_tmp
, -32768)) {
21225 UHI opval
= -32768;
21226 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
21227 written
|= (1 << 11);
21228 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
21230 frvbf_media_overflow (current_cpu
, 8);
21234 UHI opval
= tmp_tmp
;
21235 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
21236 written
|= (1 << 11);
21237 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
21244 tmp_tmp
= SUBHI (tmp_argilo
, tmp_argjlo
);
21245 if (GTDI (tmp_tmp
, 32767)) {
21249 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
21250 written
|= (1 << 12);
21251 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
21253 frvbf_media_overflow (current_cpu
, 4);
21256 if (LTDI (tmp_tmp
, -32768)) {
21259 UHI opval
= -32768;
21260 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
21261 written
|= (1 << 12);
21262 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
21264 frvbf_media_overflow (current_cpu
, 4);
21268 UHI opval
= tmp_tmp
;
21269 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
21270 written
|= (1 << 12);
21271 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
21279 abuf
->written
= written
;
21284 /* cmsubhus: cmsubhus$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
21287 SEM_FN_NAME (frvbf
,cmsubhus
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
21289 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
21290 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
21291 int UNUSED written
= 0;
21292 IADDR UNUSED pc
= abuf
->addr
;
21293 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
21295 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
21302 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
21303 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
21304 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
21305 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
21309 tmp_tmp
= SUBHI (tmp_argihi
, tmp_argjhi
);
21310 if (GTDI (tmp_tmp
, 65535)) {
21314 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
21315 written
|= (1 << 11);
21316 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
21318 frvbf_media_overflow (current_cpu
, 8);
21321 if (LTDI (tmp_tmp
, 0)) {
21325 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
21326 written
|= (1 << 11);
21327 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
21329 frvbf_media_overflow (current_cpu
, 8);
21333 UHI opval
= tmp_tmp
;
21334 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
21335 written
|= (1 << 11);
21336 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
21343 tmp_tmp
= SUBHI (tmp_argilo
, tmp_argjlo
);
21344 if (GTDI (tmp_tmp
, 65535)) {
21348 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
21349 written
|= (1 << 12);
21350 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
21352 frvbf_media_overflow (current_cpu
, 4);
21355 if (LTDI (tmp_tmp
, 0)) {
21359 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
21360 written
|= (1 << 12);
21361 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
21363 frvbf_media_overflow (current_cpu
, 4);
21367 UHI opval
= tmp_tmp
;
21368 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
21369 written
|= (1 << 12);
21370 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
21378 abuf
->written
= written
;
21383 /* mqaddhss: mqaddhss$pack $FRintieven,$FRintjeven,$FRintkeven */
21386 SEM_FN_NAME (frvbf
,mqaddhss
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
21388 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
21389 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
21390 int UNUSED written
= 0;
21391 IADDR UNUSED pc
= abuf
->addr
;
21392 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
21394 if (ORIF (ANDSI (FLD (f_FRi
), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj
), SUBSI (2, 1)), ANDSI (FLD (f_FRk
), SUBSI (2, 1))))) {
21395 frvbf_media_register_not_aligned (current_cpu
);
21403 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRk
)));
21404 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
21405 written
|= (1 << 14);
21406 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
21409 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
21410 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
21411 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
21412 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
21416 tmp_tmp
= ADDHI (tmp_argihi
, tmp_argjhi
);
21417 if (GTDI (tmp_tmp
, 32767)) {
21421 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
21422 written
|= (1 << 15);
21423 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
21425 frvbf_media_overflow (current_cpu
, 8);
21428 if (LTDI (tmp_tmp
, -32768)) {
21431 UHI opval
= -32768;
21432 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
21433 written
|= (1 << 15);
21434 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
21436 frvbf_media_overflow (current_cpu
, 8);
21440 UHI opval
= tmp_tmp
;
21441 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
21442 written
|= (1 << 15);
21443 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
21450 tmp_tmp
= ADDHI (tmp_argilo
, tmp_argjlo
);
21451 if (GTDI (tmp_tmp
, 32767)) {
21455 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
21456 written
|= (1 << 17);
21457 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
21459 frvbf_media_overflow (current_cpu
, 4);
21462 if (LTDI (tmp_tmp
, -32768)) {
21465 UHI opval
= -32768;
21466 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
21467 written
|= (1 << 17);
21468 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
21470 frvbf_media_overflow (current_cpu
, 4);
21474 UHI opval
= tmp_tmp
;
21475 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
21476 written
|= (1 << 17);
21477 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
21483 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
21484 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
21485 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
21486 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
21490 tmp_tmp
= ADDHI (tmp_argihi
, tmp_argjhi
);
21491 if (GTDI (tmp_tmp
, 32767)) {
21495 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (1)), opval
);
21496 written
|= (1 << 16);
21497 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
21499 frvbf_media_overflow (current_cpu
, 2);
21502 if (LTDI (tmp_tmp
, -32768)) {
21505 UHI opval
= -32768;
21506 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (1)), opval
);
21507 written
|= (1 << 16);
21508 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
21510 frvbf_media_overflow (current_cpu
, 2);
21514 UHI opval
= tmp_tmp
;
21515 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (1)), opval
);
21516 written
|= (1 << 16);
21517 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
21524 tmp_tmp
= ADDHI (tmp_argilo
, tmp_argjlo
);
21525 if (GTDI (tmp_tmp
, 32767)) {
21529 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (1)), opval
);
21530 written
|= (1 << 18);
21531 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
21533 frvbf_media_overflow (current_cpu
, 1);
21536 if (LTDI (tmp_tmp
, -32768)) {
21539 UHI opval
= -32768;
21540 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (1)), opval
);
21541 written
|= (1 << 18);
21542 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
21544 frvbf_media_overflow (current_cpu
, 1);
21548 UHI opval
= tmp_tmp
;
21549 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (1)), opval
);
21550 written
|= (1 << 18);
21551 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
21559 abuf
->written
= written
;
21564 /* mqaddhus: mqaddhus$pack $FRintieven,$FRintjeven,$FRintkeven */
21567 SEM_FN_NAME (frvbf
,mqaddhus
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
21569 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
21570 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
21571 int UNUSED written
= 0;
21572 IADDR UNUSED pc
= abuf
->addr
;
21573 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
21575 if (ORIF (ANDSI (FLD (f_FRi
), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj
), SUBSI (2, 1)), ANDSI (FLD (f_FRk
), SUBSI (2, 1))))) {
21576 frvbf_media_register_not_aligned (current_cpu
);
21584 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRk
)));
21585 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
21586 written
|= (1 << 14);
21587 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
21590 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
21591 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
21592 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
21593 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
21597 tmp_tmp
= ADDHI (tmp_argihi
, tmp_argjhi
);
21598 if (GTDI (tmp_tmp
, 65535)) {
21602 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
21603 written
|= (1 << 15);
21604 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
21606 frvbf_media_overflow (current_cpu
, 8);
21609 if (LTDI (tmp_tmp
, 0)) {
21613 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
21614 written
|= (1 << 15);
21615 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
21617 frvbf_media_overflow (current_cpu
, 8);
21621 UHI opval
= tmp_tmp
;
21622 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
21623 written
|= (1 << 15);
21624 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
21631 tmp_tmp
= ADDHI (tmp_argilo
, tmp_argjlo
);
21632 if (GTDI (tmp_tmp
, 65535)) {
21636 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
21637 written
|= (1 << 17);
21638 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
21640 frvbf_media_overflow (current_cpu
, 4);
21643 if (LTDI (tmp_tmp
, 0)) {
21647 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
21648 written
|= (1 << 17);
21649 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
21651 frvbf_media_overflow (current_cpu
, 4);
21655 UHI opval
= tmp_tmp
;
21656 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
21657 written
|= (1 << 17);
21658 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
21664 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
21665 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
21666 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
21667 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
21671 tmp_tmp
= ADDHI (tmp_argihi
, tmp_argjhi
);
21672 if (GTDI (tmp_tmp
, 65535)) {
21676 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (1)), opval
);
21677 written
|= (1 << 16);
21678 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
21680 frvbf_media_overflow (current_cpu
, 2);
21683 if (LTDI (tmp_tmp
, 0)) {
21687 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (1)), opval
);
21688 written
|= (1 << 16);
21689 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
21691 frvbf_media_overflow (current_cpu
, 2);
21695 UHI opval
= tmp_tmp
;
21696 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (1)), opval
);
21697 written
|= (1 << 16);
21698 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
21705 tmp_tmp
= ADDHI (tmp_argilo
, tmp_argjlo
);
21706 if (GTDI (tmp_tmp
, 65535)) {
21710 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (1)), opval
);
21711 written
|= (1 << 18);
21712 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
21714 frvbf_media_overflow (current_cpu
, 1);
21717 if (LTDI (tmp_tmp
, 0)) {
21721 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (1)), opval
);
21722 written
|= (1 << 18);
21723 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
21725 frvbf_media_overflow (current_cpu
, 1);
21729 UHI opval
= tmp_tmp
;
21730 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (1)), opval
);
21731 written
|= (1 << 18);
21732 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
21740 abuf
->written
= written
;
21745 /* mqsubhss: mqsubhss$pack $FRintieven,$FRintjeven,$FRintkeven */
21748 SEM_FN_NAME (frvbf
,mqsubhss
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
21750 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
21751 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
21752 int UNUSED written
= 0;
21753 IADDR UNUSED pc
= abuf
->addr
;
21754 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
21756 if (ORIF (ANDSI (FLD (f_FRi
), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj
), SUBSI (2, 1)), ANDSI (FLD (f_FRk
), SUBSI (2, 1))))) {
21757 frvbf_media_register_not_aligned (current_cpu
);
21765 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRk
)));
21766 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
21767 written
|= (1 << 14);
21768 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
21771 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
21772 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
21773 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
21774 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
21778 tmp_tmp
= SUBHI (tmp_argihi
, tmp_argjhi
);
21779 if (GTDI (tmp_tmp
, 32767)) {
21783 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
21784 written
|= (1 << 15);
21785 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
21787 frvbf_media_overflow (current_cpu
, 8);
21790 if (LTDI (tmp_tmp
, -32768)) {
21793 UHI opval
= -32768;
21794 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
21795 written
|= (1 << 15);
21796 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
21798 frvbf_media_overflow (current_cpu
, 8);
21802 UHI opval
= tmp_tmp
;
21803 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
21804 written
|= (1 << 15);
21805 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
21812 tmp_tmp
= SUBHI (tmp_argilo
, tmp_argjlo
);
21813 if (GTDI (tmp_tmp
, 32767)) {
21817 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
21818 written
|= (1 << 17);
21819 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
21821 frvbf_media_overflow (current_cpu
, 4);
21824 if (LTDI (tmp_tmp
, -32768)) {
21827 UHI opval
= -32768;
21828 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
21829 written
|= (1 << 17);
21830 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
21832 frvbf_media_overflow (current_cpu
, 4);
21836 UHI opval
= tmp_tmp
;
21837 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
21838 written
|= (1 << 17);
21839 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
21845 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
21846 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
21847 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
21848 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
21852 tmp_tmp
= SUBHI (tmp_argihi
, tmp_argjhi
);
21853 if (GTDI (tmp_tmp
, 32767)) {
21857 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (1)), opval
);
21858 written
|= (1 << 16);
21859 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
21861 frvbf_media_overflow (current_cpu
, 2);
21864 if (LTDI (tmp_tmp
, -32768)) {
21867 UHI opval
= -32768;
21868 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (1)), opval
);
21869 written
|= (1 << 16);
21870 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
21872 frvbf_media_overflow (current_cpu
, 2);
21876 UHI opval
= tmp_tmp
;
21877 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (1)), opval
);
21878 written
|= (1 << 16);
21879 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
21886 tmp_tmp
= SUBHI (tmp_argilo
, tmp_argjlo
);
21887 if (GTDI (tmp_tmp
, 32767)) {
21891 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (1)), opval
);
21892 written
|= (1 << 18);
21893 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
21895 frvbf_media_overflow (current_cpu
, 1);
21898 if (LTDI (tmp_tmp
, -32768)) {
21901 UHI opval
= -32768;
21902 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (1)), opval
);
21903 written
|= (1 << 18);
21904 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
21906 frvbf_media_overflow (current_cpu
, 1);
21910 UHI opval
= tmp_tmp
;
21911 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (1)), opval
);
21912 written
|= (1 << 18);
21913 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
21921 abuf
->written
= written
;
21926 /* mqsubhus: mqsubhus$pack $FRintieven,$FRintjeven,$FRintkeven */
21929 SEM_FN_NAME (frvbf
,mqsubhus
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
21931 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
21932 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
21933 int UNUSED written
= 0;
21934 IADDR UNUSED pc
= abuf
->addr
;
21935 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
21937 if (ORIF (ANDSI (FLD (f_FRi
), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj
), SUBSI (2, 1)), ANDSI (FLD (f_FRk
), SUBSI (2, 1))))) {
21938 frvbf_media_register_not_aligned (current_cpu
);
21946 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRk
)));
21947 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
21948 written
|= (1 << 14);
21949 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
21952 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
21953 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
21954 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
21955 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
21959 tmp_tmp
= SUBHI (tmp_argihi
, tmp_argjhi
);
21960 if (GTDI (tmp_tmp
, 65535)) {
21964 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
21965 written
|= (1 << 15);
21966 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
21968 frvbf_media_overflow (current_cpu
, 8);
21971 if (LTDI (tmp_tmp
, 0)) {
21975 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
21976 written
|= (1 << 15);
21977 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
21979 frvbf_media_overflow (current_cpu
, 8);
21983 UHI opval
= tmp_tmp
;
21984 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
21985 written
|= (1 << 15);
21986 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
21993 tmp_tmp
= SUBHI (tmp_argilo
, tmp_argjlo
);
21994 if (GTDI (tmp_tmp
, 65535)) {
21998 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
21999 written
|= (1 << 17);
22000 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
22002 frvbf_media_overflow (current_cpu
, 4);
22005 if (LTDI (tmp_tmp
, 0)) {
22009 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
22010 written
|= (1 << 17);
22011 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
22013 frvbf_media_overflow (current_cpu
, 4);
22017 UHI opval
= tmp_tmp
;
22018 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
22019 written
|= (1 << 17);
22020 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
22026 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
22027 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
22028 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
22029 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
22033 tmp_tmp
= SUBHI (tmp_argihi
, tmp_argjhi
);
22034 if (GTDI (tmp_tmp
, 65535)) {
22038 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (1)), opval
);
22039 written
|= (1 << 16);
22040 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
22042 frvbf_media_overflow (current_cpu
, 2);
22045 if (LTDI (tmp_tmp
, 0)) {
22049 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (1)), opval
);
22050 written
|= (1 << 16);
22051 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
22053 frvbf_media_overflow (current_cpu
, 2);
22057 UHI opval
= tmp_tmp
;
22058 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (1)), opval
);
22059 written
|= (1 << 16);
22060 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
22067 tmp_tmp
= SUBHI (tmp_argilo
, tmp_argjlo
);
22068 if (GTDI (tmp_tmp
, 65535)) {
22072 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (1)), opval
);
22073 written
|= (1 << 18);
22074 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
22076 frvbf_media_overflow (current_cpu
, 1);
22079 if (LTDI (tmp_tmp
, 0)) {
22083 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (1)), opval
);
22084 written
|= (1 << 18);
22085 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
22087 frvbf_media_overflow (current_cpu
, 1);
22091 UHI opval
= tmp_tmp
;
22092 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (1)), opval
);
22093 written
|= (1 << 18);
22094 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
22102 abuf
->written
= written
;
22107 /* cmqaddhss: cmqaddhss$pack $FRintieven,$FRintjeven,$FRintkeven,$CCi,$cond */
22110 SEM_FN_NAME (frvbf
,cmqaddhss
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
22112 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
22113 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
22114 int UNUSED written
= 0;
22115 IADDR UNUSED pc
= abuf
->addr
;
22116 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
22118 if (ORIF (ANDSI (FLD (f_FRi
), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj
), SUBSI (2, 1)), ANDSI (FLD (f_FRk
), SUBSI (2, 1))))) {
22119 frvbf_media_register_not_aligned (current_cpu
);
22121 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
22128 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRk
)));
22129 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
22130 written
|= (1 << 16);
22131 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
22134 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
22135 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
22136 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
22137 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
22141 tmp_tmp
= ADDHI (tmp_argihi
, tmp_argjhi
);
22142 if (GTDI (tmp_tmp
, 32767)) {
22146 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
22147 written
|= (1 << 17);
22148 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
22150 frvbf_media_overflow (current_cpu
, 8);
22153 if (LTDI (tmp_tmp
, -32768)) {
22156 UHI opval
= -32768;
22157 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
22158 written
|= (1 << 17);
22159 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
22161 frvbf_media_overflow (current_cpu
, 8);
22165 UHI opval
= tmp_tmp
;
22166 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
22167 written
|= (1 << 17);
22168 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
22175 tmp_tmp
= ADDHI (tmp_argilo
, tmp_argjlo
);
22176 if (GTDI (tmp_tmp
, 32767)) {
22180 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
22181 written
|= (1 << 19);
22182 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
22184 frvbf_media_overflow (current_cpu
, 4);
22187 if (LTDI (tmp_tmp
, -32768)) {
22190 UHI opval
= -32768;
22191 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
22192 written
|= (1 << 19);
22193 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
22195 frvbf_media_overflow (current_cpu
, 4);
22199 UHI opval
= tmp_tmp
;
22200 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
22201 written
|= (1 << 19);
22202 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
22208 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
22209 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
22210 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
22211 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
22215 tmp_tmp
= ADDHI (tmp_argihi
, tmp_argjhi
);
22216 if (GTDI (tmp_tmp
, 32767)) {
22220 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (1)), opval
);
22221 written
|= (1 << 18);
22222 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
22224 frvbf_media_overflow (current_cpu
, 2);
22227 if (LTDI (tmp_tmp
, -32768)) {
22230 UHI opval
= -32768;
22231 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (1)), opval
);
22232 written
|= (1 << 18);
22233 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
22235 frvbf_media_overflow (current_cpu
, 2);
22239 UHI opval
= tmp_tmp
;
22240 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (1)), opval
);
22241 written
|= (1 << 18);
22242 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
22249 tmp_tmp
= ADDHI (tmp_argilo
, tmp_argjlo
);
22250 if (GTDI (tmp_tmp
, 32767)) {
22254 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (1)), opval
);
22255 written
|= (1 << 20);
22256 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
22258 frvbf_media_overflow (current_cpu
, 1);
22261 if (LTDI (tmp_tmp
, -32768)) {
22264 UHI opval
= -32768;
22265 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (1)), opval
);
22266 written
|= (1 << 20);
22267 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
22269 frvbf_media_overflow (current_cpu
, 1);
22273 UHI opval
= tmp_tmp
;
22274 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (1)), opval
);
22275 written
|= (1 << 20);
22276 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
22285 abuf
->written
= written
;
22290 /* cmqaddhus: cmqaddhus$pack $FRintieven,$FRintjeven,$FRintkeven,$CCi,$cond */
22293 SEM_FN_NAME (frvbf
,cmqaddhus
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
22295 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
22296 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
22297 int UNUSED written
= 0;
22298 IADDR UNUSED pc
= abuf
->addr
;
22299 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
22301 if (ORIF (ANDSI (FLD (f_FRi
), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj
), SUBSI (2, 1)), ANDSI (FLD (f_FRk
), SUBSI (2, 1))))) {
22302 frvbf_media_register_not_aligned (current_cpu
);
22304 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
22311 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRk
)));
22312 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
22313 written
|= (1 << 16);
22314 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
22317 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
22318 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
22319 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
22320 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
22324 tmp_tmp
= ADDHI (tmp_argihi
, tmp_argjhi
);
22325 if (GTDI (tmp_tmp
, 65535)) {
22329 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
22330 written
|= (1 << 17);
22331 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
22333 frvbf_media_overflow (current_cpu
, 8);
22336 if (LTDI (tmp_tmp
, 0)) {
22340 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
22341 written
|= (1 << 17);
22342 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
22344 frvbf_media_overflow (current_cpu
, 8);
22348 UHI opval
= tmp_tmp
;
22349 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
22350 written
|= (1 << 17);
22351 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
22358 tmp_tmp
= ADDHI (tmp_argilo
, tmp_argjlo
);
22359 if (GTDI (tmp_tmp
, 65535)) {
22363 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
22364 written
|= (1 << 19);
22365 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
22367 frvbf_media_overflow (current_cpu
, 4);
22370 if (LTDI (tmp_tmp
, 0)) {
22374 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
22375 written
|= (1 << 19);
22376 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
22378 frvbf_media_overflow (current_cpu
, 4);
22382 UHI opval
= tmp_tmp
;
22383 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
22384 written
|= (1 << 19);
22385 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
22391 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
22392 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
22393 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
22394 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
22398 tmp_tmp
= ADDHI (tmp_argihi
, tmp_argjhi
);
22399 if (GTDI (tmp_tmp
, 65535)) {
22403 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (1)), opval
);
22404 written
|= (1 << 18);
22405 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
22407 frvbf_media_overflow (current_cpu
, 2);
22410 if (LTDI (tmp_tmp
, 0)) {
22414 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (1)), opval
);
22415 written
|= (1 << 18);
22416 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
22418 frvbf_media_overflow (current_cpu
, 2);
22422 UHI opval
= tmp_tmp
;
22423 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (1)), opval
);
22424 written
|= (1 << 18);
22425 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
22432 tmp_tmp
= ADDHI (tmp_argilo
, tmp_argjlo
);
22433 if (GTDI (tmp_tmp
, 65535)) {
22437 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (1)), opval
);
22438 written
|= (1 << 20);
22439 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
22441 frvbf_media_overflow (current_cpu
, 1);
22444 if (LTDI (tmp_tmp
, 0)) {
22448 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (1)), opval
);
22449 written
|= (1 << 20);
22450 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
22452 frvbf_media_overflow (current_cpu
, 1);
22456 UHI opval
= tmp_tmp
;
22457 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (1)), opval
);
22458 written
|= (1 << 20);
22459 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
22468 abuf
->written
= written
;
22473 /* cmqsubhss: cmqsubhss$pack $FRintieven,$FRintjeven,$FRintkeven,$CCi,$cond */
22476 SEM_FN_NAME (frvbf
,cmqsubhss
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
22478 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
22479 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
22480 int UNUSED written
= 0;
22481 IADDR UNUSED pc
= abuf
->addr
;
22482 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
22484 if (ORIF (ANDSI (FLD (f_FRi
), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj
), SUBSI (2, 1)), ANDSI (FLD (f_FRk
), SUBSI (2, 1))))) {
22485 frvbf_media_register_not_aligned (current_cpu
);
22487 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
22494 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRk
)));
22495 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
22496 written
|= (1 << 16);
22497 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
22500 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
22501 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
22502 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
22503 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
22507 tmp_tmp
= SUBHI (tmp_argihi
, tmp_argjhi
);
22508 if (GTDI (tmp_tmp
, 32767)) {
22512 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
22513 written
|= (1 << 17);
22514 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
22516 frvbf_media_overflow (current_cpu
, 8);
22519 if (LTDI (tmp_tmp
, -32768)) {
22522 UHI opval
= -32768;
22523 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
22524 written
|= (1 << 17);
22525 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
22527 frvbf_media_overflow (current_cpu
, 8);
22531 UHI opval
= tmp_tmp
;
22532 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
22533 written
|= (1 << 17);
22534 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
22541 tmp_tmp
= SUBHI (tmp_argilo
, tmp_argjlo
);
22542 if (GTDI (tmp_tmp
, 32767)) {
22546 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
22547 written
|= (1 << 19);
22548 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
22550 frvbf_media_overflow (current_cpu
, 4);
22553 if (LTDI (tmp_tmp
, -32768)) {
22556 UHI opval
= -32768;
22557 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
22558 written
|= (1 << 19);
22559 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
22561 frvbf_media_overflow (current_cpu
, 4);
22565 UHI opval
= tmp_tmp
;
22566 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
22567 written
|= (1 << 19);
22568 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
22574 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
22575 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
22576 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
22577 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
22581 tmp_tmp
= SUBHI (tmp_argihi
, tmp_argjhi
);
22582 if (GTDI (tmp_tmp
, 32767)) {
22586 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (1)), opval
);
22587 written
|= (1 << 18);
22588 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
22590 frvbf_media_overflow (current_cpu
, 2);
22593 if (LTDI (tmp_tmp
, -32768)) {
22596 UHI opval
= -32768;
22597 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (1)), opval
);
22598 written
|= (1 << 18);
22599 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
22601 frvbf_media_overflow (current_cpu
, 2);
22605 UHI opval
= tmp_tmp
;
22606 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (1)), opval
);
22607 written
|= (1 << 18);
22608 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
22615 tmp_tmp
= SUBHI (tmp_argilo
, tmp_argjlo
);
22616 if (GTDI (tmp_tmp
, 32767)) {
22620 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (1)), opval
);
22621 written
|= (1 << 20);
22622 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
22624 frvbf_media_overflow (current_cpu
, 1);
22627 if (LTDI (tmp_tmp
, -32768)) {
22630 UHI opval
= -32768;
22631 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (1)), opval
);
22632 written
|= (1 << 20);
22633 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
22635 frvbf_media_overflow (current_cpu
, 1);
22639 UHI opval
= tmp_tmp
;
22640 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (1)), opval
);
22641 written
|= (1 << 20);
22642 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
22651 abuf
->written
= written
;
22656 /* cmqsubhus: cmqsubhus$pack $FRintieven,$FRintjeven,$FRintkeven,$CCi,$cond */
22659 SEM_FN_NAME (frvbf
,cmqsubhus
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
22661 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
22662 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
22663 int UNUSED written
= 0;
22664 IADDR UNUSED pc
= abuf
->addr
;
22665 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
22667 if (ORIF (ANDSI (FLD (f_FRi
), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj
), SUBSI (2, 1)), ANDSI (FLD (f_FRk
), SUBSI (2, 1))))) {
22668 frvbf_media_register_not_aligned (current_cpu
);
22670 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
22677 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRk
)));
22678 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
22679 written
|= (1 << 16);
22680 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
22683 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
22684 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
22685 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
22686 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
22690 tmp_tmp
= SUBHI (tmp_argihi
, tmp_argjhi
);
22691 if (GTDI (tmp_tmp
, 65535)) {
22695 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
22696 written
|= (1 << 17);
22697 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
22699 frvbf_media_overflow (current_cpu
, 8);
22702 if (LTDI (tmp_tmp
, 0)) {
22706 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
22707 written
|= (1 << 17);
22708 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
22710 frvbf_media_overflow (current_cpu
, 8);
22714 UHI opval
= tmp_tmp
;
22715 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
22716 written
|= (1 << 17);
22717 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
22724 tmp_tmp
= SUBHI (tmp_argilo
, tmp_argjlo
);
22725 if (GTDI (tmp_tmp
, 65535)) {
22729 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
22730 written
|= (1 << 19);
22731 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
22733 frvbf_media_overflow (current_cpu
, 4);
22736 if (LTDI (tmp_tmp
, 0)) {
22740 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
22741 written
|= (1 << 19);
22742 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
22744 frvbf_media_overflow (current_cpu
, 4);
22748 UHI opval
= tmp_tmp
;
22749 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
22750 written
|= (1 << 19);
22751 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
22757 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
22758 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
22759 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
22760 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
22764 tmp_tmp
= SUBHI (tmp_argihi
, tmp_argjhi
);
22765 if (GTDI (tmp_tmp
, 65535)) {
22769 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (1)), opval
);
22770 written
|= (1 << 18);
22771 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
22773 frvbf_media_overflow (current_cpu
, 2);
22776 if (LTDI (tmp_tmp
, 0)) {
22780 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (1)), opval
);
22781 written
|= (1 << 18);
22782 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
22784 frvbf_media_overflow (current_cpu
, 2);
22788 UHI opval
= tmp_tmp
;
22789 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (1)), opval
);
22790 written
|= (1 << 18);
22791 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
22798 tmp_tmp
= SUBHI (tmp_argilo
, tmp_argjlo
);
22799 if (GTDI (tmp_tmp
, 65535)) {
22803 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (1)), opval
);
22804 written
|= (1 << 20);
22805 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
22807 frvbf_media_overflow (current_cpu
, 1);
22810 if (LTDI (tmp_tmp
, 0)) {
22814 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (1)), opval
);
22815 written
|= (1 << 20);
22816 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
22818 frvbf_media_overflow (current_cpu
, 1);
22822 UHI opval
= tmp_tmp
;
22823 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (1)), opval
);
22824 written
|= (1 << 20);
22825 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
22834 abuf
->written
= written
;
22839 /* maddaccs: maddaccs$pack $ACC40Si,$ACC40Sk */
22842 SEM_FN_NAME (frvbf
,maddaccs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
22844 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
22845 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
22846 int UNUSED written
= 0;
22847 IADDR UNUSED pc
= abuf
->addr
;
22848 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
22850 if (frvbf_check_acc_range (current_cpu
, FLD (f_ACC40Si
))) {
22851 if (frvbf_check_acc_range (current_cpu
, FLD (f_ACC40Sk
))) {
22852 if (ANDSI (FLD (f_ACC40Si
), SUBSI (2, 1))) {
22853 frvbf_media_acc_not_aligned (current_cpu
);
22857 tmp_tmp
= ADDDI (GET_H_ACC40S (FLD (f_ACC40Si
)), GET_H_ACC40S (((FLD (f_ACC40Si
)) + (1))));
22858 if (GTDI (tmp_tmp
, 549755813887)) {
22861 DI opval
= 549755813887;
22862 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
22863 written
|= (1 << 4);
22864 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
22866 frvbf_media_overflow (current_cpu
, 8);
22869 if (LTDI (tmp_tmp
, INVDI (549755813887))) {
22872 DI opval
= INVDI (549755813887);
22873 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
22874 written
|= (1 << 4);
22875 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
22877 frvbf_media_overflow (current_cpu
, 8);
22881 DI opval
= tmp_tmp
;
22882 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
22883 written
|= (1 << 4);
22884 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
22893 abuf
->written
= written
;
22898 /* msubaccs: msubaccs$pack $ACC40Si,$ACC40Sk */
22901 SEM_FN_NAME (frvbf
,msubaccs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
22903 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
22904 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
22905 int UNUSED written
= 0;
22906 IADDR UNUSED pc
= abuf
->addr
;
22907 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
22909 if (frvbf_check_acc_range (current_cpu
, FLD (f_ACC40Si
))) {
22910 if (frvbf_check_acc_range (current_cpu
, FLD (f_ACC40Sk
))) {
22911 if (ANDSI (FLD (f_ACC40Si
), SUBSI (2, 1))) {
22912 frvbf_media_acc_not_aligned (current_cpu
);
22916 tmp_tmp
= SUBDI (GET_H_ACC40S (FLD (f_ACC40Si
)), GET_H_ACC40S (((FLD (f_ACC40Si
)) + (1))));
22917 if (GTDI (tmp_tmp
, 549755813887)) {
22920 DI opval
= 549755813887;
22921 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
22922 written
|= (1 << 4);
22923 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
22925 frvbf_media_overflow (current_cpu
, 8);
22928 if (LTDI (tmp_tmp
, INVDI (549755813887))) {
22931 DI opval
= INVDI (549755813887);
22932 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
22933 written
|= (1 << 4);
22934 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
22936 frvbf_media_overflow (current_cpu
, 8);
22940 DI opval
= tmp_tmp
;
22941 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
22942 written
|= (1 << 4);
22943 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
22952 abuf
->written
= written
;
22957 /* mdaddaccs: mdaddaccs$pack $ACC40Si,$ACC40Sk */
22960 SEM_FN_NAME (frvbf
,mdaddaccs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
22962 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
22963 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
22964 int UNUSED written
= 0;
22965 IADDR UNUSED pc
= abuf
->addr
;
22966 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
22968 if (frvbf_check_acc_range (current_cpu
, FLD (f_ACC40Si
))) {
22969 if (frvbf_check_acc_range (current_cpu
, FLD (f_ACC40Sk
))) {
22970 if (ANDSI (FLD (f_ACC40Si
), SUBSI (4, 1))) {
22971 frvbf_media_acc_not_aligned (current_cpu
);
22973 if (ANDSI (FLD (f_ACC40Sk
), SUBSI (2, 1))) {
22974 frvbf_media_acc_not_aligned (current_cpu
);
22979 tmp_tmp
= ADDDI (GET_H_ACC40S (FLD (f_ACC40Si
)), GET_H_ACC40S (((FLD (f_ACC40Si
)) + (1))));
22980 if (GTDI (tmp_tmp
, 549755813887)) {
22983 DI opval
= 549755813887;
22984 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
22985 written
|= (1 << 6);
22986 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
22988 frvbf_media_overflow (current_cpu
, 8);
22991 if (LTDI (tmp_tmp
, INVDI (549755813887))) {
22994 DI opval
= INVDI (549755813887);
22995 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
22996 written
|= (1 << 6);
22997 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
22999 frvbf_media_overflow (current_cpu
, 8);
23003 DI opval
= tmp_tmp
;
23004 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
23005 written
|= (1 << 6);
23006 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23013 tmp_tmp
= ADDDI (GET_H_ACC40S (((FLD (f_ACC40Si
)) + (2))), GET_H_ACC40S (((FLD (f_ACC40Si
)) + (3))));
23014 if (GTDI (tmp_tmp
, 549755813887)) {
23017 DI opval
= 549755813887;
23018 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (1)), opval
);
23019 written
|= (1 << 7);
23020 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23022 frvbf_media_overflow (current_cpu
, 4);
23025 if (LTDI (tmp_tmp
, INVDI (549755813887))) {
23028 DI opval
= INVDI (549755813887);
23029 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (1)), opval
);
23030 written
|= (1 << 7);
23031 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23033 frvbf_media_overflow (current_cpu
, 4);
23037 DI opval
= tmp_tmp
;
23038 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (1)), opval
);
23039 written
|= (1 << 7);
23040 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23051 abuf
->written
= written
;
23056 /* mdsubaccs: mdsubaccs$pack $ACC40Si,$ACC40Sk */
23059 SEM_FN_NAME (frvbf
,mdsubaccs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
23061 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
23062 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
23063 int UNUSED written
= 0;
23064 IADDR UNUSED pc
= abuf
->addr
;
23065 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
23067 if (frvbf_check_acc_range (current_cpu
, FLD (f_ACC40Si
))) {
23068 if (frvbf_check_acc_range (current_cpu
, FLD (f_ACC40Sk
))) {
23069 if (ANDSI (FLD (f_ACC40Si
), SUBSI (4, 1))) {
23070 frvbf_media_acc_not_aligned (current_cpu
);
23072 if (ANDSI (FLD (f_ACC40Sk
), SUBSI (2, 1))) {
23073 frvbf_media_acc_not_aligned (current_cpu
);
23078 tmp_tmp
= SUBDI (GET_H_ACC40S (FLD (f_ACC40Si
)), GET_H_ACC40S (((FLD (f_ACC40Si
)) + (1))));
23079 if (GTDI (tmp_tmp
, 549755813887)) {
23082 DI opval
= 549755813887;
23083 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
23084 written
|= (1 << 6);
23085 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23087 frvbf_media_overflow (current_cpu
, 8);
23090 if (LTDI (tmp_tmp
, INVDI (549755813887))) {
23093 DI opval
= INVDI (549755813887);
23094 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
23095 written
|= (1 << 6);
23096 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23098 frvbf_media_overflow (current_cpu
, 8);
23102 DI opval
= tmp_tmp
;
23103 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
23104 written
|= (1 << 6);
23105 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23112 tmp_tmp
= SUBDI (GET_H_ACC40S (((FLD (f_ACC40Si
)) + (2))), GET_H_ACC40S (((FLD (f_ACC40Si
)) + (3))));
23113 if (GTDI (tmp_tmp
, 549755813887)) {
23116 DI opval
= 549755813887;
23117 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (1)), opval
);
23118 written
|= (1 << 7);
23119 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23121 frvbf_media_overflow (current_cpu
, 4);
23124 if (LTDI (tmp_tmp
, INVDI (549755813887))) {
23127 DI opval
= INVDI (549755813887);
23128 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (1)), opval
);
23129 written
|= (1 << 7);
23130 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23132 frvbf_media_overflow (current_cpu
, 4);
23136 DI opval
= tmp_tmp
;
23137 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (1)), opval
);
23138 written
|= (1 << 7);
23139 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23150 abuf
->written
= written
;
23155 /* masaccs: masaccs$pack $ACC40Si,$ACC40Sk */
23158 SEM_FN_NAME (frvbf
,masaccs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
23160 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
23161 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
23162 int UNUSED written
= 0;
23163 IADDR UNUSED pc
= abuf
->addr
;
23164 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
23166 if (frvbf_check_acc_range (current_cpu
, FLD (f_ACC40Si
))) {
23167 if (frvbf_check_acc_range (current_cpu
, FLD (f_ACC40Sk
))) {
23168 if (ANDSI (FLD (f_ACC40Si
), SUBSI (2, 1))) {
23169 frvbf_media_acc_not_aligned (current_cpu
);
23171 if (ANDSI (FLD (f_ACC40Sk
), SUBSI (2, 1))) {
23172 frvbf_media_acc_not_aligned (current_cpu
);
23177 tmp_tmp
= ADDDI (GET_H_ACC40S (FLD (f_ACC40Si
)), GET_H_ACC40S (((FLD (f_ACC40Si
)) + (1))));
23178 if (GTDI (tmp_tmp
, 549755813887)) {
23181 DI opval
= 549755813887;
23182 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
23183 written
|= (1 << 4);
23184 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23186 frvbf_media_overflow (current_cpu
, 8);
23189 if (LTDI (tmp_tmp
, INVDI (549755813887))) {
23192 DI opval
= INVDI (549755813887);
23193 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
23194 written
|= (1 << 4);
23195 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23197 frvbf_media_overflow (current_cpu
, 8);
23201 DI opval
= tmp_tmp
;
23202 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
23203 written
|= (1 << 4);
23204 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23211 tmp_tmp
= SUBDI (GET_H_ACC40S (FLD (f_ACC40Si
)), GET_H_ACC40S (((FLD (f_ACC40Si
)) + (1))));
23212 if (GTDI (tmp_tmp
, 549755813887)) {
23215 DI opval
= 549755813887;
23216 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (1)), opval
);
23217 written
|= (1 << 5);
23218 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23220 frvbf_media_overflow (current_cpu
, 4);
23223 if (LTDI (tmp_tmp
, INVDI (549755813887))) {
23226 DI opval
= INVDI (549755813887);
23227 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (1)), opval
);
23228 written
|= (1 << 5);
23229 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23231 frvbf_media_overflow (current_cpu
, 4);
23235 DI opval
= tmp_tmp
;
23236 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (1)), opval
);
23237 written
|= (1 << 5);
23238 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23249 abuf
->written
= written
;
23254 /* mdasaccs: mdasaccs$pack $ACC40Si,$ACC40Sk */
23257 SEM_FN_NAME (frvbf
,mdasaccs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
23259 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
23260 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
23261 int UNUSED written
= 0;
23262 IADDR UNUSED pc
= abuf
->addr
;
23263 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
23265 if (frvbf_check_acc_range (current_cpu
, FLD (f_ACC40Si
))) {
23266 if (frvbf_check_acc_range (current_cpu
, FLD (f_ACC40Sk
))) {
23267 if (ANDSI (FLD (f_ACC40Si
), SUBSI (4, 1))) {
23268 frvbf_media_acc_not_aligned (current_cpu
);
23270 if (ANDSI (FLD (f_ACC40Sk
), SUBSI (4, 1))) {
23271 frvbf_media_acc_not_aligned (current_cpu
);
23276 tmp_tmp
= ADDDI (GET_H_ACC40S (FLD (f_ACC40Si
)), GET_H_ACC40S (((FLD (f_ACC40Si
)) + (1))));
23277 if (GTDI (tmp_tmp
, 549755813887)) {
23280 DI opval
= 549755813887;
23281 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
23282 written
|= (1 << 6);
23283 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23285 frvbf_media_overflow (current_cpu
, 8);
23288 if (LTDI (tmp_tmp
, INVDI (549755813887))) {
23291 DI opval
= INVDI (549755813887);
23292 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
23293 written
|= (1 << 6);
23294 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23296 frvbf_media_overflow (current_cpu
, 8);
23300 DI opval
= tmp_tmp
;
23301 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
23302 written
|= (1 << 6);
23303 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23310 tmp_tmp
= SUBDI (GET_H_ACC40S (FLD (f_ACC40Si
)), GET_H_ACC40S (((FLD (f_ACC40Si
)) + (1))));
23311 if (GTDI (tmp_tmp
, 549755813887)) {
23314 DI opval
= 549755813887;
23315 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (1)), opval
);
23316 written
|= (1 << 7);
23317 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23319 frvbf_media_overflow (current_cpu
, 4);
23322 if (LTDI (tmp_tmp
, INVDI (549755813887))) {
23325 DI opval
= INVDI (549755813887);
23326 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (1)), opval
);
23327 written
|= (1 << 7);
23328 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23330 frvbf_media_overflow (current_cpu
, 4);
23334 DI opval
= tmp_tmp
;
23335 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (1)), opval
);
23336 written
|= (1 << 7);
23337 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23344 tmp_tmp
= ADDDI (GET_H_ACC40S (((FLD (f_ACC40Si
)) + (2))), GET_H_ACC40S (((FLD (f_ACC40Si
)) + (3))));
23345 if (GTDI (tmp_tmp
, 549755813887)) {
23348 DI opval
= 549755813887;
23349 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (2)), opval
);
23350 written
|= (1 << 8);
23351 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23353 frvbf_media_overflow (current_cpu
, 2);
23356 if (LTDI (tmp_tmp
, INVDI (549755813887))) {
23359 DI opval
= INVDI (549755813887);
23360 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (2)), opval
);
23361 written
|= (1 << 8);
23362 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23364 frvbf_media_overflow (current_cpu
, 2);
23368 DI opval
= tmp_tmp
;
23369 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (2)), opval
);
23370 written
|= (1 << 8);
23371 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23378 tmp_tmp
= SUBDI (GET_H_ACC40S (((FLD (f_ACC40Si
)) + (2))), GET_H_ACC40S (((FLD (f_ACC40Si
)) + (3))));
23379 if (GTDI (tmp_tmp
, 549755813887)) {
23382 DI opval
= 549755813887;
23383 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (3)), opval
);
23384 written
|= (1 << 9);
23385 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23387 frvbf_media_overflow (current_cpu
, 1);
23390 if (LTDI (tmp_tmp
, INVDI (549755813887))) {
23393 DI opval
= INVDI (549755813887);
23394 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (3)), opval
);
23395 written
|= (1 << 9);
23396 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23398 frvbf_media_overflow (current_cpu
, 1);
23402 DI opval
= tmp_tmp
;
23403 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (3)), opval
);
23404 written
|= (1 << 9);
23405 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23416 abuf
->written
= written
;
23421 /* mmulhs: mmulhs$pack $FRinti,$FRintj,$ACC40Sk */
23424 SEM_FN_NAME (frvbf
,mmulhs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
23426 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23427 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
23428 int UNUSED written
= 0;
23429 IADDR UNUSED pc
= abuf
->addr
;
23430 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
23432 if (frvbf_check_acc_range (current_cpu
, FLD (f_ACC40Sk
))) {
23433 if (ANDSI (FLD (f_ACC40Sk
), SUBSI (2, 1))) {
23434 frvbf_media_acc_not_aligned (current_cpu
);
23442 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
23443 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
23444 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
23445 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
23448 DI opval
= MULDI (EXTHIDI (tmp_argihi
), EXTHIDI (tmp_argjhi
));
23449 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
23450 written
|= (1 << 9);
23451 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23454 DI opval
= MULDI (EXTHIDI (tmp_argilo
), EXTHIDI (tmp_argjlo
));
23455 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (1)), opval
);
23456 written
|= (1 << 10);
23457 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23463 abuf
->written
= written
;
23468 /* mmulhu: mmulhu$pack $FRinti,$FRintj,$ACC40Sk */
23471 SEM_FN_NAME (frvbf
,mmulhu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
23473 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23474 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
23475 int UNUSED written
= 0;
23476 IADDR UNUSED pc
= abuf
->addr
;
23477 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
23479 if (frvbf_check_acc_range (current_cpu
, FLD (f_ACC40Sk
))) {
23480 if (ANDSI (FLD (f_ACC40Sk
), SUBSI (2, 1))) {
23481 frvbf_media_acc_not_aligned (current_cpu
);
23489 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
23490 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
23491 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
23492 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
23495 DI opval
= MULDI (ZEXTHIDI (tmp_argihi
), ZEXTHIDI (tmp_argjhi
));
23496 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
23497 written
|= (1 << 9);
23498 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23501 DI opval
= MULDI (ZEXTHIDI (tmp_argilo
), ZEXTHIDI (tmp_argjlo
));
23502 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (1)), opval
);
23503 written
|= (1 << 10);
23504 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23510 abuf
->written
= written
;
23515 /* mmulxhs: mmulxhs$pack $FRinti,$FRintj,$ACC40Sk */
23518 SEM_FN_NAME (frvbf
,mmulxhs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
23520 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23521 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
23522 int UNUSED written
= 0;
23523 IADDR UNUSED pc
= abuf
->addr
;
23524 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
23526 if (frvbf_check_acc_range (current_cpu
, FLD (f_ACC40Sk
))) {
23527 if (ANDSI (FLD (f_ACC40Sk
), SUBSI (2, 1))) {
23528 frvbf_media_acc_not_aligned (current_cpu
);
23536 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
23537 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
23538 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
23539 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
23542 DI opval
= MULDI (EXTHIDI (tmp_argihi
), EXTHIDI (tmp_argjlo
));
23543 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
23544 written
|= (1 << 9);
23545 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23548 DI opval
= MULDI (EXTHIDI (tmp_argilo
), EXTHIDI (tmp_argjhi
));
23549 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (1)), opval
);
23550 written
|= (1 << 10);
23551 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23557 abuf
->written
= written
;
23562 /* mmulxhu: mmulxhu$pack $FRinti,$FRintj,$ACC40Sk */
23565 SEM_FN_NAME (frvbf
,mmulxhu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
23567 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23568 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
23569 int UNUSED written
= 0;
23570 IADDR UNUSED pc
= abuf
->addr
;
23571 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
23573 if (frvbf_check_acc_range (current_cpu
, FLD (f_ACC40Sk
))) {
23574 if (ANDSI (FLD (f_ACC40Sk
), SUBSI (2, 1))) {
23575 frvbf_media_acc_not_aligned (current_cpu
);
23583 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
23584 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
23585 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
23586 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
23589 DI opval
= MULDI (ZEXTHIDI (tmp_argihi
), ZEXTHIDI (tmp_argjlo
));
23590 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
23591 written
|= (1 << 9);
23592 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23595 DI opval
= MULDI (ZEXTHIDI (tmp_argilo
), ZEXTHIDI (tmp_argjhi
));
23596 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (1)), opval
);
23597 written
|= (1 << 10);
23598 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23604 abuf
->written
= written
;
23609 /* cmmulhs: cmmulhs$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
23612 SEM_FN_NAME (frvbf
,cmmulhs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
23614 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23615 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
23616 int UNUSED written
= 0;
23617 IADDR UNUSED pc
= abuf
->addr
;
23618 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
23620 if (frvbf_check_acc_range (current_cpu
, FLD (f_ACC40Sk
))) {
23621 if (ANDSI (FLD (f_ACC40Sk
), SUBSI (2, 1))) {
23622 frvbf_media_acc_not_aligned (current_cpu
);
23624 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
23631 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
23632 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
23633 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
23634 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
23637 DI opval
= MULDI (EXTHIDI (tmp_argihi
), EXTHIDI (tmp_argjhi
));
23638 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
23639 written
|= (1 << 11);
23640 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23643 DI opval
= MULDI (EXTHIDI (tmp_argilo
), EXTHIDI (tmp_argjlo
));
23644 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (1)), opval
);
23645 written
|= (1 << 12);
23646 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23653 abuf
->written
= written
;
23658 /* cmmulhu: cmmulhu$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
23661 SEM_FN_NAME (frvbf
,cmmulhu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
23663 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23664 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
23665 int UNUSED written
= 0;
23666 IADDR UNUSED pc
= abuf
->addr
;
23667 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
23669 if (frvbf_check_acc_range (current_cpu
, FLD (f_ACC40Sk
))) {
23670 if (ANDSI (FLD (f_ACC40Sk
), SUBSI (2, 1))) {
23671 frvbf_media_acc_not_aligned (current_cpu
);
23673 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
23680 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
23681 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
23682 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
23683 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
23686 DI opval
= MULDI (ZEXTHIDI (tmp_argihi
), ZEXTHIDI (tmp_argjhi
));
23687 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
23688 written
|= (1 << 11);
23689 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23692 DI opval
= MULDI (ZEXTHIDI (tmp_argilo
), ZEXTHIDI (tmp_argjlo
));
23693 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (1)), opval
);
23694 written
|= (1 << 12);
23695 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23702 abuf
->written
= written
;
23707 /* mqmulhs: mqmulhs$pack $FRintieven,$FRintjeven,$ACC40Sk */
23710 SEM_FN_NAME (frvbf
,mqmulhs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
23712 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
23713 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
23714 int UNUSED written
= 0;
23715 IADDR UNUSED pc
= abuf
->addr
;
23716 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
23718 if (frvbf_check_acc_range (current_cpu
, FLD (f_ACC40Sk
))) {
23719 if (ANDSI (FLD (f_ACC40Sk
), SUBSI (4, 1))) {
23720 frvbf_media_acc_not_aligned (current_cpu
);
23722 if (ORIF (ANDSI (FLD (f_FRi
), SUBSI (2, 1)), ANDSI (FLD (f_FRj
), SUBSI (2, 1)))) {
23723 frvbf_media_register_not_aligned (current_cpu
);
23731 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
23732 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
23733 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
23734 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
23737 DI opval
= MULDI (EXTHIDI (tmp_argihi
), EXTHIDI (tmp_argjhi
));
23738 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
23739 written
|= (1 << 13);
23740 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23743 DI opval
= MULDI (EXTHIDI (tmp_argilo
), EXTHIDI (tmp_argjlo
));
23744 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (1)), opval
);
23745 written
|= (1 << 14);
23746 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23749 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
23750 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
23751 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
23752 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
23755 DI opval
= MULDI (EXTHIDI (tmp_argihi
), EXTHIDI (tmp_argjhi
));
23756 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (2)), opval
);
23757 written
|= (1 << 15);
23758 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23761 DI opval
= MULDI (EXTHIDI (tmp_argilo
), EXTHIDI (tmp_argjlo
));
23762 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (3)), opval
);
23763 written
|= (1 << 16);
23764 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23771 abuf
->written
= written
;
23776 /* mqmulhu: mqmulhu$pack $FRintieven,$FRintjeven,$ACC40Sk */
23779 SEM_FN_NAME (frvbf
,mqmulhu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
23781 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
23782 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
23783 int UNUSED written
= 0;
23784 IADDR UNUSED pc
= abuf
->addr
;
23785 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
23787 if (frvbf_check_acc_range (current_cpu
, FLD (f_ACC40Sk
))) {
23788 if (ANDSI (FLD (f_ACC40Sk
), SUBSI (4, 1))) {
23789 frvbf_media_acc_not_aligned (current_cpu
);
23791 if (ORIF (ANDSI (FLD (f_FRi
), SUBSI (2, 1)), ANDSI (FLD (f_FRj
), SUBSI (2, 1)))) {
23792 frvbf_media_register_not_aligned (current_cpu
);
23800 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
23801 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
23802 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
23803 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
23806 DI opval
= MULDI (ZEXTHIDI (tmp_argihi
), ZEXTHIDI (tmp_argjhi
));
23807 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
23808 written
|= (1 << 13);
23809 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23812 DI opval
= MULDI (ZEXTHIDI (tmp_argilo
), ZEXTHIDI (tmp_argjlo
));
23813 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (1)), opval
);
23814 written
|= (1 << 14);
23815 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23818 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
23819 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
23820 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
23821 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
23824 DI opval
= MULDI (ZEXTHIDI (tmp_argihi
), ZEXTHIDI (tmp_argjhi
));
23825 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (2)), opval
);
23826 written
|= (1 << 15);
23827 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23830 DI opval
= MULDI (ZEXTHIDI (tmp_argilo
), ZEXTHIDI (tmp_argjlo
));
23831 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (3)), opval
);
23832 written
|= (1 << 16);
23833 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23840 abuf
->written
= written
;
23845 /* mqmulxhs: mqmulxhs$pack $FRintieven,$FRintjeven,$ACC40Sk */
23848 SEM_FN_NAME (frvbf
,mqmulxhs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
23850 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
23851 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
23852 int UNUSED written
= 0;
23853 IADDR UNUSED pc
= abuf
->addr
;
23854 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
23856 if (frvbf_check_acc_range (current_cpu
, FLD (f_ACC40Sk
))) {
23857 if (ANDSI (FLD (f_ACC40Sk
), SUBSI (4, 1))) {
23858 frvbf_media_acc_not_aligned (current_cpu
);
23860 if (ORIF (ANDSI (FLD (f_FRi
), SUBSI (2, 1)), ANDSI (FLD (f_FRj
), SUBSI (2, 1)))) {
23861 frvbf_media_register_not_aligned (current_cpu
);
23869 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
23870 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
23871 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
23872 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
23875 DI opval
= MULDI (EXTHIDI (tmp_argihi
), EXTHIDI (tmp_argjlo
));
23876 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
23877 written
|= (1 << 13);
23878 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23881 DI opval
= MULDI (EXTHIDI (tmp_argilo
), EXTHIDI (tmp_argjhi
));
23882 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (1)), opval
);
23883 written
|= (1 << 14);
23884 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23887 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
23888 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
23889 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
23890 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
23893 DI opval
= MULDI (EXTHIDI (tmp_argihi
), EXTHIDI (tmp_argjlo
));
23894 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (2)), opval
);
23895 written
|= (1 << 15);
23896 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23899 DI opval
= MULDI (EXTHIDI (tmp_argilo
), EXTHIDI (tmp_argjhi
));
23900 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (3)), opval
);
23901 written
|= (1 << 16);
23902 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23909 abuf
->written
= written
;
23914 /* mqmulxhu: mqmulxhu$pack $FRintieven,$FRintjeven,$ACC40Sk */
23917 SEM_FN_NAME (frvbf
,mqmulxhu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
23919 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
23920 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
23921 int UNUSED written
= 0;
23922 IADDR UNUSED pc
= abuf
->addr
;
23923 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
23925 if (frvbf_check_acc_range (current_cpu
, FLD (f_ACC40Sk
))) {
23926 if (ANDSI (FLD (f_ACC40Sk
), SUBSI (4, 1))) {
23927 frvbf_media_acc_not_aligned (current_cpu
);
23929 if (ORIF (ANDSI (FLD (f_FRi
), SUBSI (2, 1)), ANDSI (FLD (f_FRj
), SUBSI (2, 1)))) {
23930 frvbf_media_register_not_aligned (current_cpu
);
23938 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
23939 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
23940 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
23941 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
23944 DI opval
= MULDI (ZEXTHIDI (tmp_argihi
), ZEXTHIDI (tmp_argjlo
));
23945 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
23946 written
|= (1 << 13);
23947 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23950 DI opval
= MULDI (ZEXTHIDI (tmp_argilo
), ZEXTHIDI (tmp_argjhi
));
23951 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (1)), opval
);
23952 written
|= (1 << 14);
23953 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23956 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
23957 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
23958 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
23959 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
23962 DI opval
= MULDI (ZEXTHIDI (tmp_argihi
), ZEXTHIDI (tmp_argjlo
));
23963 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (2)), opval
);
23964 written
|= (1 << 15);
23965 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23968 DI opval
= MULDI (ZEXTHIDI (tmp_argilo
), ZEXTHIDI (tmp_argjhi
));
23969 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (3)), opval
);
23970 written
|= (1 << 16);
23971 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
23978 abuf
->written
= written
;
23983 /* cmqmulhs: cmqmulhs$pack $FRintieven,$FRintjeven,$ACC40Sk,$CCi,$cond */
23986 SEM_FN_NAME (frvbf
,cmqmulhs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
23988 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
23989 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
23990 int UNUSED written
= 0;
23991 IADDR UNUSED pc
= abuf
->addr
;
23992 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
23994 if (frvbf_check_acc_range (current_cpu
, FLD (f_ACC40Sk
))) {
23995 if (ANDSI (FLD (f_ACC40Sk
), SUBSI (4, 1))) {
23996 frvbf_media_acc_not_aligned (current_cpu
);
23998 if (ORIF (ANDSI (FLD (f_FRi
), SUBSI (2, 1)), ANDSI (FLD (f_FRj
), SUBSI (2, 1)))) {
23999 frvbf_media_register_not_aligned (current_cpu
);
24001 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
24008 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
24009 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
24010 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
24011 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
24014 DI opval
= MULDI (EXTHIDI (tmp_argihi
), EXTHIDI (tmp_argjhi
));
24015 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
24016 written
|= (1 << 15);
24017 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
24020 DI opval
= MULDI (EXTHIDI (tmp_argilo
), EXTHIDI (tmp_argjlo
));
24021 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (1)), opval
);
24022 written
|= (1 << 16);
24023 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
24026 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
24027 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
24028 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
24029 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
24032 DI opval
= MULDI (EXTHIDI (tmp_argihi
), EXTHIDI (tmp_argjhi
));
24033 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (2)), opval
);
24034 written
|= (1 << 17);
24035 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
24038 DI opval
= MULDI (EXTHIDI (tmp_argilo
), EXTHIDI (tmp_argjlo
));
24039 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (3)), opval
);
24040 written
|= (1 << 18);
24041 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
24049 abuf
->written
= written
;
24054 /* cmqmulhu: cmqmulhu$pack $FRintieven,$FRintjeven,$ACC40Sk,$CCi,$cond */
24057 SEM_FN_NAME (frvbf
,cmqmulhu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
24059 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
24060 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
24061 int UNUSED written
= 0;
24062 IADDR UNUSED pc
= abuf
->addr
;
24063 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
24065 if (frvbf_check_acc_range (current_cpu
, FLD (f_ACC40Sk
))) {
24066 if (ANDSI (FLD (f_ACC40Sk
), SUBSI (4, 1))) {
24067 frvbf_media_acc_not_aligned (current_cpu
);
24069 if (ORIF (ANDSI (FLD (f_FRi
), SUBSI (2, 1)), ANDSI (FLD (f_FRj
), SUBSI (2, 1)))) {
24070 frvbf_media_register_not_aligned (current_cpu
);
24072 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
24079 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
24080 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
24081 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
24082 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
24085 DI opval
= MULDI (ZEXTHIDI (tmp_argihi
), ZEXTHIDI (tmp_argjhi
));
24086 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
24087 written
|= (1 << 15);
24088 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
24091 DI opval
= MULDI (ZEXTHIDI (tmp_argilo
), ZEXTHIDI (tmp_argjlo
));
24092 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (1)), opval
);
24093 written
|= (1 << 16);
24094 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
24097 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
24098 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
24099 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
24100 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
24103 DI opval
= MULDI (ZEXTHIDI (tmp_argihi
), ZEXTHIDI (tmp_argjhi
));
24104 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (2)), opval
);
24105 written
|= (1 << 17);
24106 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
24109 DI opval
= MULDI (ZEXTHIDI (tmp_argilo
), ZEXTHIDI (tmp_argjlo
));
24110 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (3)), opval
);
24111 written
|= (1 << 18);
24112 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
24120 abuf
->written
= written
;
24125 /* mmachs: mmachs$pack $FRinti,$FRintj,$ACC40Sk */
24128 SEM_FN_NAME (frvbf
,mmachs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
24130 #define FLD(f) abuf->fields.sfmt_cmmachs.f
24131 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
24132 int UNUSED written
= 0;
24133 IADDR UNUSED pc
= abuf
->addr
;
24134 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
24136 if (frvbf_check_acc_range (current_cpu
, FLD (f_ACC40Sk
))) {
24137 if (ANDSI (FLD (f_ACC40Sk
), SUBSI (2, 1))) {
24138 frvbf_media_acc_not_aligned (current_cpu
);
24146 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
24147 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
24148 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
24149 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
24153 tmp_tmp
= ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk
)), MULDI (EXTHIDI (tmp_argihi
), EXTHIDI (tmp_argjhi
)));
24154 if (GTDI (tmp_tmp
, MAKEDI (127, 0xffffffff))) {
24157 DI opval
= MAKEDI (127, 0xffffffff);
24158 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
24159 written
|= (1 << 11);
24160 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
24162 frvbf_media_overflow (current_cpu
, 8);
24165 if (LTDI (tmp_tmp
, MAKEDI (0xffffff80, 0))) {
24168 DI opval
= MAKEDI (0xffffff80, 0);
24169 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
24170 written
|= (1 << 11);
24171 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
24173 frvbf_media_overflow (current_cpu
, 8);
24177 DI opval
= tmp_tmp
;
24178 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
24179 written
|= (1 << 11);
24180 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
24187 tmp_tmp
= ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk
)) + (1))), MULDI (EXTHIDI (tmp_argilo
), EXTHIDI (tmp_argjlo
)));
24188 if (GTDI (tmp_tmp
, MAKEDI (127, 0xffffffff))) {
24191 DI opval
= MAKEDI (127, 0xffffffff);
24192 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (1)), opval
);
24193 written
|= (1 << 12);
24194 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
24196 frvbf_media_overflow (current_cpu
, 4);
24199 if (LTDI (tmp_tmp
, MAKEDI (0xffffff80, 0))) {
24202 DI opval
= MAKEDI (0xffffff80, 0);
24203 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (1)), opval
);
24204 written
|= (1 << 12);
24205 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
24207 frvbf_media_overflow (current_cpu
, 4);
24211 DI opval
= tmp_tmp
;
24212 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (1)), opval
);
24213 written
|= (1 << 12);
24214 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
24223 abuf
->written
= written
;
24228 /* mmachu: mmachu$pack $FRinti,$FRintj,$ACC40Uk */
24231 SEM_FN_NAME (frvbf
,mmachu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
24233 #define FLD(f) abuf->fields.sfmt_cmmachu.f
24234 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
24235 int UNUSED written
= 0;
24236 IADDR UNUSED pc
= abuf
->addr
;
24237 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
24239 if (frvbf_check_acc_range (current_cpu
, FLD (f_ACC40Uk
))) {
24240 if (ANDSI (FLD (f_ACC40Uk
), SUBSI (2, 1))) {
24241 frvbf_media_acc_not_aligned (current_cpu
);
24249 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
24250 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
24251 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
24252 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
24256 tmp_tmp
= ADDDI (GET_H_ACC40U (FLD (f_ACC40Uk
)), MULDI (ZEXTHIDI (tmp_argihi
), ZEXTHIDI (tmp_argjhi
)));
24257 if (GTDI (tmp_tmp
, MAKEDI (255, 0xffffffff))) {
24260 UDI opval
= MAKEDI (255, 0xffffffff);
24261 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, FLD (f_ACC40Uk
), opval
);
24262 written
|= (1 << 11);
24263 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
24265 frvbf_media_overflow (current_cpu
, 8);
24268 if (LTDI (tmp_tmp
, MAKEDI (0, 0))) {
24271 UDI opval
= MAKEDI (0, 0);
24272 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, FLD (f_ACC40Uk
), opval
);
24273 written
|= (1 << 11);
24274 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
24276 frvbf_media_overflow (current_cpu
, 8);
24280 UDI opval
= tmp_tmp
;
24281 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, FLD (f_ACC40Uk
), opval
);
24282 written
|= (1 << 11);
24283 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
24290 tmp_tmp
= ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk
)) + (1))), MULDI (ZEXTHIDI (tmp_argilo
), ZEXTHIDI (tmp_argjlo
)));
24291 if (GTDI (tmp_tmp
, MAKEDI (255, 0xffffffff))) {
24294 UDI opval
= MAKEDI (255, 0xffffffff);
24295 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, ((FLD (f_ACC40Uk
)) + (1)), opval
);
24296 written
|= (1 << 12);
24297 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
24299 frvbf_media_overflow (current_cpu
, 4);
24302 if (LTDI (tmp_tmp
, MAKEDI (0, 0))) {
24305 UDI opval
= MAKEDI (0, 0);
24306 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, ((FLD (f_ACC40Uk
)) + (1)), opval
);
24307 written
|= (1 << 12);
24308 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
24310 frvbf_media_overflow (current_cpu
, 4);
24314 UDI opval
= tmp_tmp
;
24315 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, ((FLD (f_ACC40Uk
)) + (1)), opval
);
24316 written
|= (1 << 12);
24317 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
24326 abuf
->written
= written
;
24331 /* mmrdhs: mmrdhs$pack $FRinti,$FRintj,$ACC40Sk */
24334 SEM_FN_NAME (frvbf
,mmrdhs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
24336 #define FLD(f) abuf->fields.sfmt_cmmachs.f
24337 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
24338 int UNUSED written
= 0;
24339 IADDR UNUSED pc
= abuf
->addr
;
24340 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
24342 if (frvbf_check_acc_range (current_cpu
, FLD (f_ACC40Sk
))) {
24343 if (ANDSI (FLD (f_ACC40Sk
), SUBSI (2, 1))) {
24344 frvbf_media_acc_not_aligned (current_cpu
);
24352 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
24353 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
24354 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
24355 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
24359 tmp_tmp
= SUBDI (GET_H_ACC40S (FLD (f_ACC40Sk
)), MULDI (EXTHIDI (tmp_argihi
), EXTHIDI (tmp_argjhi
)));
24360 if (GTDI (tmp_tmp
, MAKEDI (127, 0xffffffff))) {
24363 DI opval
= MAKEDI (127, 0xffffffff);
24364 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
24365 written
|= (1 << 11);
24366 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
24368 frvbf_media_overflow (current_cpu
, 8);
24371 if (LTDI (tmp_tmp
, MAKEDI (0xffffff80, 0))) {
24374 DI opval
= MAKEDI (0xffffff80, 0);
24375 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
24376 written
|= (1 << 11);
24377 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
24379 frvbf_media_overflow (current_cpu
, 8);
24383 DI opval
= tmp_tmp
;
24384 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
24385 written
|= (1 << 11);
24386 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
24393 tmp_tmp
= SUBDI (GET_H_ACC40S (((FLD (f_ACC40Sk
)) + (1))), MULDI (EXTHIDI (tmp_argilo
), EXTHIDI (tmp_argjlo
)));
24394 if (GTDI (tmp_tmp
, MAKEDI (127, 0xffffffff))) {
24397 DI opval
= MAKEDI (127, 0xffffffff);
24398 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (1)), opval
);
24399 written
|= (1 << 12);
24400 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
24402 frvbf_media_overflow (current_cpu
, 4);
24405 if (LTDI (tmp_tmp
, MAKEDI (0xffffff80, 0))) {
24408 DI opval
= MAKEDI (0xffffff80, 0);
24409 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (1)), opval
);
24410 written
|= (1 << 12);
24411 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
24413 frvbf_media_overflow (current_cpu
, 4);
24417 DI opval
= tmp_tmp
;
24418 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (1)), opval
);
24419 written
|= (1 << 12);
24420 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
24429 abuf
->written
= written
;
24434 /* mmrdhu: mmrdhu$pack $FRinti,$FRintj,$ACC40Uk */
24437 SEM_FN_NAME (frvbf
,mmrdhu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
24439 #define FLD(f) abuf->fields.sfmt_cmmachu.f
24440 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
24441 int UNUSED written
= 0;
24442 IADDR UNUSED pc
= abuf
->addr
;
24443 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
24445 if (frvbf_check_acc_range (current_cpu
, FLD (f_ACC40Uk
))) {
24446 if (ANDSI (FLD (f_ACC40Uk
), SUBSI (2, 1))) {
24447 frvbf_media_acc_not_aligned (current_cpu
);
24455 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
24456 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
24457 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
24458 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
24462 tmp_tmp
= SUBDI (GET_H_ACC40U (FLD (f_ACC40Uk
)), MULDI (ZEXTHIDI (tmp_argihi
), ZEXTHIDI (tmp_argjhi
)));
24463 if (GTDI (tmp_tmp
, MAKEDI (255, 0xffffffff))) {
24466 UDI opval
= MAKEDI (255, 0xffffffff);
24467 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, FLD (f_ACC40Uk
), opval
);
24468 written
|= (1 << 11);
24469 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
24471 frvbf_media_overflow (current_cpu
, 8);
24474 if (LTDI (tmp_tmp
, MAKEDI (0, 0))) {
24477 UDI opval
= MAKEDI (0, 0);
24478 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, FLD (f_ACC40Uk
), opval
);
24479 written
|= (1 << 11);
24480 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
24482 frvbf_media_overflow (current_cpu
, 8);
24486 UDI opval
= tmp_tmp
;
24487 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, FLD (f_ACC40Uk
), opval
);
24488 written
|= (1 << 11);
24489 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
24496 tmp_tmp
= SUBDI (GET_H_ACC40U (((FLD (f_ACC40Uk
)) + (1))), MULDI (ZEXTHIDI (tmp_argilo
), ZEXTHIDI (tmp_argjlo
)));
24497 if (GTDI (tmp_tmp
, MAKEDI (255, 0xffffffff))) {
24500 UDI opval
= MAKEDI (255, 0xffffffff);
24501 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, ((FLD (f_ACC40Uk
)) + (1)), opval
);
24502 written
|= (1 << 12);
24503 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
24505 frvbf_media_overflow (current_cpu
, 4);
24508 if (LTDI (tmp_tmp
, MAKEDI (0, 0))) {
24511 UDI opval
= MAKEDI (0, 0);
24512 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, ((FLD (f_ACC40Uk
)) + (1)), opval
);
24513 written
|= (1 << 12);
24514 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
24516 frvbf_media_overflow (current_cpu
, 4);
24520 UDI opval
= tmp_tmp
;
24521 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, ((FLD (f_ACC40Uk
)) + (1)), opval
);
24522 written
|= (1 << 12);
24523 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
24532 abuf
->written
= written
;
24537 /* cmmachs: cmmachs$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
24540 SEM_FN_NAME (frvbf
,cmmachs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
24542 #define FLD(f) abuf->fields.sfmt_cmmachs.f
24543 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
24544 int UNUSED written
= 0;
24545 IADDR UNUSED pc
= abuf
->addr
;
24546 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
24548 if (frvbf_check_acc_range (current_cpu
, FLD (f_ACC40Sk
))) {
24549 if (ANDSI (FLD (f_ACC40Sk
), SUBSI (2, 1))) {
24550 frvbf_media_acc_not_aligned (current_cpu
);
24552 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
24559 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
24560 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
24561 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
24562 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
24566 tmp_tmp
= ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk
)), MULDI (EXTHIDI (tmp_argihi
), EXTHIDI (tmp_argjhi
)));
24567 if (GTDI (tmp_tmp
, MAKEDI (127, 0xffffffff))) {
24570 DI opval
= MAKEDI (127, 0xffffffff);
24571 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
24572 written
|= (1 << 13);
24573 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
24575 frvbf_media_overflow (current_cpu
, 8);
24578 if (LTDI (tmp_tmp
, MAKEDI (0xffffff80, 0))) {
24581 DI opval
= MAKEDI (0xffffff80, 0);
24582 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
24583 written
|= (1 << 13);
24584 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
24586 frvbf_media_overflow (current_cpu
, 8);
24590 DI opval
= tmp_tmp
;
24591 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
24592 written
|= (1 << 13);
24593 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
24600 tmp_tmp
= ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk
)) + (1))), MULDI (EXTHIDI (tmp_argilo
), EXTHIDI (tmp_argjlo
)));
24601 if (GTDI (tmp_tmp
, MAKEDI (127, 0xffffffff))) {
24604 DI opval
= MAKEDI (127, 0xffffffff);
24605 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (1)), opval
);
24606 written
|= (1 << 14);
24607 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
24609 frvbf_media_overflow (current_cpu
, 4);
24612 if (LTDI (tmp_tmp
, MAKEDI (0xffffff80, 0))) {
24615 DI opval
= MAKEDI (0xffffff80, 0);
24616 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (1)), opval
);
24617 written
|= (1 << 14);
24618 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
24620 frvbf_media_overflow (current_cpu
, 4);
24624 DI opval
= tmp_tmp
;
24625 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (1)), opval
);
24626 written
|= (1 << 14);
24627 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
24637 abuf
->written
= written
;
24642 /* cmmachu: cmmachu$pack $FRinti,$FRintj,$ACC40Uk,$CCi,$cond */
24645 SEM_FN_NAME (frvbf
,cmmachu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
24647 #define FLD(f) abuf->fields.sfmt_cmmachu.f
24648 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
24649 int UNUSED written
= 0;
24650 IADDR UNUSED pc
= abuf
->addr
;
24651 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
24653 if (frvbf_check_acc_range (current_cpu
, FLD (f_ACC40Uk
))) {
24654 if (ANDSI (FLD (f_ACC40Uk
), SUBSI (2, 1))) {
24655 frvbf_media_acc_not_aligned (current_cpu
);
24657 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
24664 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
24665 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
24666 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
24667 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
24671 tmp_tmp
= ADDDI (GET_H_ACC40U (FLD (f_ACC40Uk
)), MULDI (ZEXTHIDI (tmp_argihi
), ZEXTHIDI (tmp_argjhi
)));
24672 if (GTDI (tmp_tmp
, MAKEDI (255, 0xffffffff))) {
24675 UDI opval
= MAKEDI (255, 0xffffffff);
24676 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, FLD (f_ACC40Uk
), opval
);
24677 written
|= (1 << 13);
24678 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
24680 frvbf_media_overflow (current_cpu
, 8);
24683 if (LTDI (tmp_tmp
, MAKEDI (0, 0))) {
24686 UDI opval
= MAKEDI (0, 0);
24687 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, FLD (f_ACC40Uk
), opval
);
24688 written
|= (1 << 13);
24689 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
24691 frvbf_media_overflow (current_cpu
, 8);
24695 UDI opval
= tmp_tmp
;
24696 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, FLD (f_ACC40Uk
), opval
);
24697 written
|= (1 << 13);
24698 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
24705 tmp_tmp
= ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk
)) + (1))), MULDI (ZEXTHIDI (tmp_argilo
), ZEXTHIDI (tmp_argjlo
)));
24706 if (GTDI (tmp_tmp
, MAKEDI (255, 0xffffffff))) {
24709 UDI opval
= MAKEDI (255, 0xffffffff);
24710 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, ((FLD (f_ACC40Uk
)) + (1)), opval
);
24711 written
|= (1 << 14);
24712 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
24714 frvbf_media_overflow (current_cpu
, 4);
24717 if (LTDI (tmp_tmp
, MAKEDI (0, 0))) {
24720 UDI opval
= MAKEDI (0, 0);
24721 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, ((FLD (f_ACC40Uk
)) + (1)), opval
);
24722 written
|= (1 << 14);
24723 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
24725 frvbf_media_overflow (current_cpu
, 4);
24729 UDI opval
= tmp_tmp
;
24730 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, ((FLD (f_ACC40Uk
)) + (1)), opval
);
24731 written
|= (1 << 14);
24732 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
24742 abuf
->written
= written
;
24747 /* mqmachs: mqmachs$pack $FRintieven,$FRintjeven,$ACC40Sk */
24750 SEM_FN_NAME (frvbf
,mqmachs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
24752 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
24753 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
24754 int UNUSED written
= 0;
24755 IADDR UNUSED pc
= abuf
->addr
;
24756 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
24758 if (frvbf_check_acc_range (current_cpu
, FLD (f_ACC40Sk
))) {
24759 if (ANDSI (FLD (f_ACC40Sk
), SUBSI (4, 1))) {
24760 frvbf_media_acc_not_aligned (current_cpu
);
24762 if (ORIF (ANDSI (FLD (f_FRi
), SUBSI (2, 1)), ANDSI (FLD (f_FRj
), SUBSI (2, 1)))) {
24763 frvbf_media_register_not_aligned (current_cpu
);
24771 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
24772 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
24773 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
24774 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
24778 tmp_tmp
= ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk
)), MULDI (EXTHIDI (tmp_argihi
), EXTHIDI (tmp_argjhi
)));
24779 if (GTDI (tmp_tmp
, MAKEDI (127, 0xffffffff))) {
24782 DI opval
= MAKEDI (127, 0xffffffff);
24783 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
24784 written
|= (1 << 17);
24785 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
24787 frvbf_media_overflow (current_cpu
, 8);
24790 if (LTDI (tmp_tmp
, MAKEDI (0xffffff80, 0))) {
24793 DI opval
= MAKEDI (0xffffff80, 0);
24794 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
24795 written
|= (1 << 17);
24796 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
24798 frvbf_media_overflow (current_cpu
, 8);
24802 DI opval
= tmp_tmp
;
24803 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
24804 written
|= (1 << 17);
24805 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
24812 tmp_tmp
= ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk
)) + (1))), MULDI (EXTHIDI (tmp_argilo
), EXTHIDI (tmp_argjlo
)));
24813 if (GTDI (tmp_tmp
, MAKEDI (127, 0xffffffff))) {
24816 DI opval
= MAKEDI (127, 0xffffffff);
24817 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (1)), opval
);
24818 written
|= (1 << 18);
24819 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
24821 frvbf_media_overflow (current_cpu
, 4);
24824 if (LTDI (tmp_tmp
, MAKEDI (0xffffff80, 0))) {
24827 DI opval
= MAKEDI (0xffffff80, 0);
24828 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (1)), opval
);
24829 written
|= (1 << 18);
24830 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
24832 frvbf_media_overflow (current_cpu
, 4);
24836 DI opval
= tmp_tmp
;
24837 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (1)), opval
);
24838 written
|= (1 << 18);
24839 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
24845 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
24846 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
24847 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
24848 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
24852 tmp_tmp
= ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk
)) + (2))), MULDI (EXTHIDI (tmp_argihi
), EXTHIDI (tmp_argjhi
)));
24853 if (GTDI (tmp_tmp
, MAKEDI (127, 0xffffffff))) {
24856 DI opval
= MAKEDI (127, 0xffffffff);
24857 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (2)), opval
);
24858 written
|= (1 << 19);
24859 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
24861 frvbf_media_overflow (current_cpu
, 2);
24864 if (LTDI (tmp_tmp
, MAKEDI (0xffffff80, 0))) {
24867 DI opval
= MAKEDI (0xffffff80, 0);
24868 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (2)), opval
);
24869 written
|= (1 << 19);
24870 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
24872 frvbf_media_overflow (current_cpu
, 2);
24876 DI opval
= tmp_tmp
;
24877 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (2)), opval
);
24878 written
|= (1 << 19);
24879 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
24886 tmp_tmp
= ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk
)) + (3))), MULDI (EXTHIDI (tmp_argilo
), EXTHIDI (tmp_argjlo
)));
24887 if (GTDI (tmp_tmp
, MAKEDI (127, 0xffffffff))) {
24890 DI opval
= MAKEDI (127, 0xffffffff);
24891 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (3)), opval
);
24892 written
|= (1 << 20);
24893 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
24895 frvbf_media_overflow (current_cpu
, 1);
24898 if (LTDI (tmp_tmp
, MAKEDI (0xffffff80, 0))) {
24901 DI opval
= MAKEDI (0xffffff80, 0);
24902 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (3)), opval
);
24903 written
|= (1 << 20);
24904 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
24906 frvbf_media_overflow (current_cpu
, 1);
24910 DI opval
= tmp_tmp
;
24911 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (3)), opval
);
24912 written
|= (1 << 20);
24913 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
24923 abuf
->written
= written
;
24928 /* mqmachu: mqmachu$pack $FRintieven,$FRintjeven,$ACC40Uk */
24931 SEM_FN_NAME (frvbf
,mqmachu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
24933 #define FLD(f) abuf->fields.sfmt_cmqmachu.f
24934 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
24935 int UNUSED written
= 0;
24936 IADDR UNUSED pc
= abuf
->addr
;
24937 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
24939 if (frvbf_check_acc_range (current_cpu
, FLD (f_ACC40Uk
))) {
24940 if (ANDSI (FLD (f_ACC40Uk
), SUBSI (4, 1))) {
24941 frvbf_media_acc_not_aligned (current_cpu
);
24943 if (ORIF (ANDSI (FLD (f_FRi
), SUBSI (2, 1)), ANDSI (FLD (f_FRj
), SUBSI (2, 1)))) {
24944 frvbf_media_register_not_aligned (current_cpu
);
24952 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
24953 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
24954 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
24955 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
24959 tmp_tmp
= ADDDI (GET_H_ACC40U (FLD (f_ACC40Uk
)), MULDI (ZEXTHIDI (tmp_argihi
), ZEXTHIDI (tmp_argjhi
)));
24960 if (GTDI (tmp_tmp
, MAKEDI (255, 0xffffffff))) {
24963 UDI opval
= MAKEDI (255, 0xffffffff);
24964 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, FLD (f_ACC40Uk
), opval
);
24965 written
|= (1 << 17);
24966 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
24968 frvbf_media_overflow (current_cpu
, 8);
24971 if (LTDI (tmp_tmp
, MAKEDI (0, 0))) {
24974 UDI opval
= MAKEDI (0, 0);
24975 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, FLD (f_ACC40Uk
), opval
);
24976 written
|= (1 << 17);
24977 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
24979 frvbf_media_overflow (current_cpu
, 8);
24983 UDI opval
= tmp_tmp
;
24984 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, FLD (f_ACC40Uk
), opval
);
24985 written
|= (1 << 17);
24986 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
24993 tmp_tmp
= ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk
)) + (1))), MULDI (ZEXTHIDI (tmp_argilo
), ZEXTHIDI (tmp_argjlo
)));
24994 if (GTDI (tmp_tmp
, MAKEDI (255, 0xffffffff))) {
24997 UDI opval
= MAKEDI (255, 0xffffffff);
24998 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, ((FLD (f_ACC40Uk
)) + (1)), opval
);
24999 written
|= (1 << 18);
25000 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
25002 frvbf_media_overflow (current_cpu
, 4);
25005 if (LTDI (tmp_tmp
, MAKEDI (0, 0))) {
25008 UDI opval
= MAKEDI (0, 0);
25009 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, ((FLD (f_ACC40Uk
)) + (1)), opval
);
25010 written
|= (1 << 18);
25011 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
25013 frvbf_media_overflow (current_cpu
, 4);
25017 UDI opval
= tmp_tmp
;
25018 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, ((FLD (f_ACC40Uk
)) + (1)), opval
);
25019 written
|= (1 << 18);
25020 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
25026 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
25027 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
25028 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
25029 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
25033 tmp_tmp
= ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk
)) + (2))), MULDI (ZEXTHIDI (tmp_argihi
), ZEXTHIDI (tmp_argjhi
)));
25034 if (GTDI (tmp_tmp
, MAKEDI (255, 0xffffffff))) {
25037 UDI opval
= MAKEDI (255, 0xffffffff);
25038 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, ((FLD (f_ACC40Uk
)) + (2)), opval
);
25039 written
|= (1 << 19);
25040 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
25042 frvbf_media_overflow (current_cpu
, 2);
25045 if (LTDI (tmp_tmp
, MAKEDI (0, 0))) {
25048 UDI opval
= MAKEDI (0, 0);
25049 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, ((FLD (f_ACC40Uk
)) + (2)), opval
);
25050 written
|= (1 << 19);
25051 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
25053 frvbf_media_overflow (current_cpu
, 2);
25057 UDI opval
= tmp_tmp
;
25058 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, ((FLD (f_ACC40Uk
)) + (2)), opval
);
25059 written
|= (1 << 19);
25060 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
25067 tmp_tmp
= ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk
)) + (3))), MULDI (ZEXTHIDI (tmp_argilo
), ZEXTHIDI (tmp_argjlo
)));
25068 if (GTDI (tmp_tmp
, MAKEDI (255, 0xffffffff))) {
25071 UDI opval
= MAKEDI (255, 0xffffffff);
25072 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, ((FLD (f_ACC40Uk
)) + (3)), opval
);
25073 written
|= (1 << 20);
25074 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
25076 frvbf_media_overflow (current_cpu
, 1);
25079 if (LTDI (tmp_tmp
, MAKEDI (0, 0))) {
25082 UDI opval
= MAKEDI (0, 0);
25083 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, ((FLD (f_ACC40Uk
)) + (3)), opval
);
25084 written
|= (1 << 20);
25085 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
25087 frvbf_media_overflow (current_cpu
, 1);
25091 UDI opval
= tmp_tmp
;
25092 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, ((FLD (f_ACC40Uk
)) + (3)), opval
);
25093 written
|= (1 << 20);
25094 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
25104 abuf
->written
= written
;
25109 /* cmqmachs: cmqmachs$pack $FRintieven,$FRintjeven,$ACC40Sk,$CCi,$cond */
25112 SEM_FN_NAME (frvbf
,cmqmachs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
25114 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
25115 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
25116 int UNUSED written
= 0;
25117 IADDR UNUSED pc
= abuf
->addr
;
25118 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
25120 if (frvbf_check_acc_range (current_cpu
, FLD (f_ACC40Sk
))) {
25121 if (ANDSI (FLD (f_ACC40Sk
), SUBSI (4, 1))) {
25122 frvbf_media_acc_not_aligned (current_cpu
);
25124 if (ORIF (ANDSI (FLD (f_FRi
), SUBSI (2, 1)), ANDSI (FLD (f_FRj
), SUBSI (2, 1)))) {
25125 frvbf_media_register_not_aligned (current_cpu
);
25127 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
25134 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
25135 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
25136 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
25137 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
25141 tmp_tmp
= ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk
)), MULDI (EXTHIDI (tmp_argihi
), EXTHIDI (tmp_argjhi
)));
25142 if (GTDI (tmp_tmp
, MAKEDI (127, 0xffffffff))) {
25145 DI opval
= MAKEDI (127, 0xffffffff);
25146 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
25147 written
|= (1 << 19);
25148 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25150 frvbf_media_overflow (current_cpu
, 8);
25153 if (LTDI (tmp_tmp
, MAKEDI (0xffffff80, 0))) {
25156 DI opval
= MAKEDI (0xffffff80, 0);
25157 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
25158 written
|= (1 << 19);
25159 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25161 frvbf_media_overflow (current_cpu
, 8);
25165 DI opval
= tmp_tmp
;
25166 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
25167 written
|= (1 << 19);
25168 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25175 tmp_tmp
= ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk
)) + (1))), MULDI (EXTHIDI (tmp_argilo
), EXTHIDI (tmp_argjlo
)));
25176 if (GTDI (tmp_tmp
, MAKEDI (127, 0xffffffff))) {
25179 DI opval
= MAKEDI (127, 0xffffffff);
25180 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (1)), opval
);
25181 written
|= (1 << 20);
25182 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25184 frvbf_media_overflow (current_cpu
, 4);
25187 if (LTDI (tmp_tmp
, MAKEDI (0xffffff80, 0))) {
25190 DI opval
= MAKEDI (0xffffff80, 0);
25191 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (1)), opval
);
25192 written
|= (1 << 20);
25193 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25195 frvbf_media_overflow (current_cpu
, 4);
25199 DI opval
= tmp_tmp
;
25200 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (1)), opval
);
25201 written
|= (1 << 20);
25202 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25208 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
25209 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
25210 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
25211 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
25215 tmp_tmp
= ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk
)) + (2))), MULDI (EXTHIDI (tmp_argihi
), EXTHIDI (tmp_argjhi
)));
25216 if (GTDI (tmp_tmp
, MAKEDI (127, 0xffffffff))) {
25219 DI opval
= MAKEDI (127, 0xffffffff);
25220 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (2)), opval
);
25221 written
|= (1 << 21);
25222 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25224 frvbf_media_overflow (current_cpu
, 2);
25227 if (LTDI (tmp_tmp
, MAKEDI (0xffffff80, 0))) {
25230 DI opval
= MAKEDI (0xffffff80, 0);
25231 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (2)), opval
);
25232 written
|= (1 << 21);
25233 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25235 frvbf_media_overflow (current_cpu
, 2);
25239 DI opval
= tmp_tmp
;
25240 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (2)), opval
);
25241 written
|= (1 << 21);
25242 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25249 tmp_tmp
= ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk
)) + (3))), MULDI (EXTHIDI (tmp_argilo
), EXTHIDI (tmp_argjlo
)));
25250 if (GTDI (tmp_tmp
, MAKEDI (127, 0xffffffff))) {
25253 DI opval
= MAKEDI (127, 0xffffffff);
25254 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (3)), opval
);
25255 written
|= (1 << 22);
25256 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25258 frvbf_media_overflow (current_cpu
, 1);
25261 if (LTDI (tmp_tmp
, MAKEDI (0xffffff80, 0))) {
25264 DI opval
= MAKEDI (0xffffff80, 0);
25265 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (3)), opval
);
25266 written
|= (1 << 22);
25267 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25269 frvbf_media_overflow (current_cpu
, 1);
25273 DI opval
= tmp_tmp
;
25274 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (3)), opval
);
25275 written
|= (1 << 22);
25276 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25287 abuf
->written
= written
;
25292 /* cmqmachu: cmqmachu$pack $FRintieven,$FRintjeven,$ACC40Uk,$CCi,$cond */
25295 SEM_FN_NAME (frvbf
,cmqmachu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
25297 #define FLD(f) abuf->fields.sfmt_cmqmachu.f
25298 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
25299 int UNUSED written
= 0;
25300 IADDR UNUSED pc
= abuf
->addr
;
25301 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
25303 if (frvbf_check_acc_range (current_cpu
, FLD (f_ACC40Uk
))) {
25304 if (ANDSI (FLD (f_ACC40Uk
), SUBSI (4, 1))) {
25305 frvbf_media_acc_not_aligned (current_cpu
);
25307 if (ORIF (ANDSI (FLD (f_FRi
), SUBSI (2, 1)), ANDSI (FLD (f_FRj
), SUBSI (2, 1)))) {
25308 frvbf_media_register_not_aligned (current_cpu
);
25310 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
25317 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
25318 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
25319 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
25320 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
25324 tmp_tmp
= ADDDI (GET_H_ACC40U (FLD (f_ACC40Uk
)), MULDI (ZEXTHIDI (tmp_argihi
), ZEXTHIDI (tmp_argjhi
)));
25325 if (GTDI (tmp_tmp
, MAKEDI (255, 0xffffffff))) {
25328 UDI opval
= MAKEDI (255, 0xffffffff);
25329 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, FLD (f_ACC40Uk
), opval
);
25330 written
|= (1 << 19);
25331 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
25333 frvbf_media_overflow (current_cpu
, 8);
25336 if (LTDI (tmp_tmp
, MAKEDI (0, 0))) {
25339 UDI opval
= MAKEDI (0, 0);
25340 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, FLD (f_ACC40Uk
), opval
);
25341 written
|= (1 << 19);
25342 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
25344 frvbf_media_overflow (current_cpu
, 8);
25348 UDI opval
= tmp_tmp
;
25349 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, FLD (f_ACC40Uk
), opval
);
25350 written
|= (1 << 19);
25351 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
25358 tmp_tmp
= ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk
)) + (1))), MULDI (ZEXTHIDI (tmp_argilo
), ZEXTHIDI (tmp_argjlo
)));
25359 if (GTDI (tmp_tmp
, MAKEDI (255, 0xffffffff))) {
25362 UDI opval
= MAKEDI (255, 0xffffffff);
25363 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, ((FLD (f_ACC40Uk
)) + (1)), opval
);
25364 written
|= (1 << 20);
25365 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
25367 frvbf_media_overflow (current_cpu
, 4);
25370 if (LTDI (tmp_tmp
, MAKEDI (0, 0))) {
25373 UDI opval
= MAKEDI (0, 0);
25374 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, ((FLD (f_ACC40Uk
)) + (1)), opval
);
25375 written
|= (1 << 20);
25376 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
25378 frvbf_media_overflow (current_cpu
, 4);
25382 UDI opval
= tmp_tmp
;
25383 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, ((FLD (f_ACC40Uk
)) + (1)), opval
);
25384 written
|= (1 << 20);
25385 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
25391 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
25392 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
25393 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
25394 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
25398 tmp_tmp
= ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk
)) + (2))), MULDI (ZEXTHIDI (tmp_argihi
), ZEXTHIDI (tmp_argjhi
)));
25399 if (GTDI (tmp_tmp
, MAKEDI (255, 0xffffffff))) {
25402 UDI opval
= MAKEDI (255, 0xffffffff);
25403 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, ((FLD (f_ACC40Uk
)) + (2)), opval
);
25404 written
|= (1 << 21);
25405 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
25407 frvbf_media_overflow (current_cpu
, 2);
25410 if (LTDI (tmp_tmp
, MAKEDI (0, 0))) {
25413 UDI opval
= MAKEDI (0, 0);
25414 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, ((FLD (f_ACC40Uk
)) + (2)), opval
);
25415 written
|= (1 << 21);
25416 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
25418 frvbf_media_overflow (current_cpu
, 2);
25422 UDI opval
= tmp_tmp
;
25423 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, ((FLD (f_ACC40Uk
)) + (2)), opval
);
25424 written
|= (1 << 21);
25425 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
25432 tmp_tmp
= ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk
)) + (3))), MULDI (ZEXTHIDI (tmp_argilo
), ZEXTHIDI (tmp_argjlo
)));
25433 if (GTDI (tmp_tmp
, MAKEDI (255, 0xffffffff))) {
25436 UDI opval
= MAKEDI (255, 0xffffffff);
25437 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, ((FLD (f_ACC40Uk
)) + (3)), opval
);
25438 written
|= (1 << 22);
25439 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
25441 frvbf_media_overflow (current_cpu
, 1);
25444 if (LTDI (tmp_tmp
, MAKEDI (0, 0))) {
25447 UDI opval
= MAKEDI (0, 0);
25448 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, ((FLD (f_ACC40Uk
)) + (3)), opval
);
25449 written
|= (1 << 22);
25450 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
25452 frvbf_media_overflow (current_cpu
, 1);
25456 UDI opval
= tmp_tmp
;
25457 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40U_set
, ((FLD (f_ACC40Uk
)) + (3)), opval
);
25458 written
|= (1 << 22);
25459 TRACE_RESULT (current_cpu
, abuf
, "acc40U", 'D', opval
);
25470 abuf
->written
= written
;
25475 /* mqxmachs: mqxmachs$pack $FRintieven,$FRintjeven,$ACC40Sk */
25478 SEM_FN_NAME (frvbf
,mqxmachs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
25480 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
25481 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
25482 int UNUSED written
= 0;
25483 IADDR UNUSED pc
= abuf
->addr
;
25484 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
25486 if (frvbf_check_acc_range (current_cpu
, FLD (f_ACC40Sk
))) {
25487 if (ANDSI (FLD (f_ACC40Sk
), SUBSI (4, 1))) {
25488 frvbf_media_acc_not_aligned (current_cpu
);
25490 if (ORIF (ANDSI (FLD (f_FRi
), SUBSI (2, 1)), ANDSI (FLD (f_FRj
), SUBSI (2, 1)))) {
25491 frvbf_media_register_not_aligned (current_cpu
);
25499 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
25500 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
25501 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
25502 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
25506 tmp_tmp
= ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk
)) + (2))), MULDI (EXTHIDI (tmp_argihi
), EXTHIDI (tmp_argjhi
)));
25507 if (GTDI (tmp_tmp
, MAKEDI (127, 0xffffffff))) {
25510 DI opval
= MAKEDI (127, 0xffffffff);
25511 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (2)), opval
);
25512 written
|= (1 << 19);
25513 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25515 frvbf_media_overflow (current_cpu
, 2);
25518 if (LTDI (tmp_tmp
, MAKEDI (0xffffff80, 0))) {
25521 DI opval
= MAKEDI (0xffffff80, 0);
25522 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (2)), opval
);
25523 written
|= (1 << 19);
25524 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25526 frvbf_media_overflow (current_cpu
, 2);
25530 DI opval
= tmp_tmp
;
25531 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (2)), opval
);
25532 written
|= (1 << 19);
25533 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25540 tmp_tmp
= ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk
)) + (3))), MULDI (EXTHIDI (tmp_argilo
), EXTHIDI (tmp_argjlo
)));
25541 if (GTDI (tmp_tmp
, MAKEDI (127, 0xffffffff))) {
25544 DI opval
= MAKEDI (127, 0xffffffff);
25545 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (3)), opval
);
25546 written
|= (1 << 20);
25547 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25549 frvbf_media_overflow (current_cpu
, 1);
25552 if (LTDI (tmp_tmp
, MAKEDI (0xffffff80, 0))) {
25555 DI opval
= MAKEDI (0xffffff80, 0);
25556 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (3)), opval
);
25557 written
|= (1 << 20);
25558 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25560 frvbf_media_overflow (current_cpu
, 1);
25564 DI opval
= tmp_tmp
;
25565 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (3)), opval
);
25566 written
|= (1 << 20);
25567 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25573 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
25574 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
25575 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
25576 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
25580 tmp_tmp
= ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk
)), MULDI (EXTHIDI (tmp_argihi
), EXTHIDI (tmp_argjhi
)));
25581 if (GTDI (tmp_tmp
, MAKEDI (127, 0xffffffff))) {
25584 DI opval
= MAKEDI (127, 0xffffffff);
25585 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
25586 written
|= (1 << 17);
25587 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25589 frvbf_media_overflow (current_cpu
, 8);
25592 if (LTDI (tmp_tmp
, MAKEDI (0xffffff80, 0))) {
25595 DI opval
= MAKEDI (0xffffff80, 0);
25596 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
25597 written
|= (1 << 17);
25598 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25600 frvbf_media_overflow (current_cpu
, 8);
25604 DI opval
= tmp_tmp
;
25605 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
25606 written
|= (1 << 17);
25607 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25614 tmp_tmp
= ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk
)) + (1))), MULDI (EXTHIDI (tmp_argilo
), EXTHIDI (tmp_argjlo
)));
25615 if (GTDI (tmp_tmp
, MAKEDI (127, 0xffffffff))) {
25618 DI opval
= MAKEDI (127, 0xffffffff);
25619 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (1)), opval
);
25620 written
|= (1 << 18);
25621 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25623 frvbf_media_overflow (current_cpu
, 4);
25626 if (LTDI (tmp_tmp
, MAKEDI (0xffffff80, 0))) {
25629 DI opval
= MAKEDI (0xffffff80, 0);
25630 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (1)), opval
);
25631 written
|= (1 << 18);
25632 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25634 frvbf_media_overflow (current_cpu
, 4);
25638 DI opval
= tmp_tmp
;
25639 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (1)), opval
);
25640 written
|= (1 << 18);
25641 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25651 abuf
->written
= written
;
25656 /* mqxmacxhs: mqxmacxhs$pack $FRintieven,$FRintjeven,$ACC40Sk */
25659 SEM_FN_NAME (frvbf
,mqxmacxhs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
25661 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
25662 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
25663 int UNUSED written
= 0;
25664 IADDR UNUSED pc
= abuf
->addr
;
25665 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
25667 if (frvbf_check_acc_range (current_cpu
, FLD (f_ACC40Sk
))) {
25668 if (ANDSI (FLD (f_ACC40Sk
), SUBSI (4, 1))) {
25669 frvbf_media_acc_not_aligned (current_cpu
);
25671 if (ORIF (ANDSI (FLD (f_FRi
), SUBSI (2, 1)), ANDSI (FLD (f_FRj
), SUBSI (2, 1)))) {
25672 frvbf_media_register_not_aligned (current_cpu
);
25680 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
25681 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
25682 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
25683 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
25687 tmp_tmp
= ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk
)) + (2))), MULDI (EXTHIDI (tmp_argihi
), EXTHIDI (tmp_argjlo
)));
25688 if (GTDI (tmp_tmp
, MAKEDI (127, 0xffffffff))) {
25691 DI opval
= MAKEDI (127, 0xffffffff);
25692 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (2)), opval
);
25693 written
|= (1 << 19);
25694 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25696 frvbf_media_overflow (current_cpu
, 2);
25699 if (LTDI (tmp_tmp
, MAKEDI (0xffffff80, 0))) {
25702 DI opval
= MAKEDI (0xffffff80, 0);
25703 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (2)), opval
);
25704 written
|= (1 << 19);
25705 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25707 frvbf_media_overflow (current_cpu
, 2);
25711 DI opval
= tmp_tmp
;
25712 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (2)), opval
);
25713 written
|= (1 << 19);
25714 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25721 tmp_tmp
= ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk
)) + (3))), MULDI (EXTHIDI (tmp_argilo
), EXTHIDI (tmp_argjhi
)));
25722 if (GTDI (tmp_tmp
, MAKEDI (127, 0xffffffff))) {
25725 DI opval
= MAKEDI (127, 0xffffffff);
25726 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (3)), opval
);
25727 written
|= (1 << 20);
25728 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25730 frvbf_media_overflow (current_cpu
, 1);
25733 if (LTDI (tmp_tmp
, MAKEDI (0xffffff80, 0))) {
25736 DI opval
= MAKEDI (0xffffff80, 0);
25737 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (3)), opval
);
25738 written
|= (1 << 20);
25739 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25741 frvbf_media_overflow (current_cpu
, 1);
25745 DI opval
= tmp_tmp
;
25746 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (3)), opval
);
25747 written
|= (1 << 20);
25748 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25754 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
25755 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
25756 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
25757 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
25761 tmp_tmp
= ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk
)), MULDI (EXTHIDI (tmp_argihi
), EXTHIDI (tmp_argjlo
)));
25762 if (GTDI (tmp_tmp
, MAKEDI (127, 0xffffffff))) {
25765 DI opval
= MAKEDI (127, 0xffffffff);
25766 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
25767 written
|= (1 << 17);
25768 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25770 frvbf_media_overflow (current_cpu
, 8);
25773 if (LTDI (tmp_tmp
, MAKEDI (0xffffff80, 0))) {
25776 DI opval
= MAKEDI (0xffffff80, 0);
25777 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
25778 written
|= (1 << 17);
25779 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25781 frvbf_media_overflow (current_cpu
, 8);
25785 DI opval
= tmp_tmp
;
25786 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
25787 written
|= (1 << 17);
25788 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25795 tmp_tmp
= ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk
)) + (1))), MULDI (EXTHIDI (tmp_argilo
), EXTHIDI (tmp_argjhi
)));
25796 if (GTDI (tmp_tmp
, MAKEDI (127, 0xffffffff))) {
25799 DI opval
= MAKEDI (127, 0xffffffff);
25800 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (1)), opval
);
25801 written
|= (1 << 18);
25802 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25804 frvbf_media_overflow (current_cpu
, 4);
25807 if (LTDI (tmp_tmp
, MAKEDI (0xffffff80, 0))) {
25810 DI opval
= MAKEDI (0xffffff80, 0);
25811 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (1)), opval
);
25812 written
|= (1 << 18);
25813 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25815 frvbf_media_overflow (current_cpu
, 4);
25819 DI opval
= tmp_tmp
;
25820 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (1)), opval
);
25821 written
|= (1 << 18);
25822 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25832 abuf
->written
= written
;
25837 /* mqmacxhs: mqmacxhs$pack $FRintieven,$FRintjeven,$ACC40Sk */
25840 SEM_FN_NAME (frvbf
,mqmacxhs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
25842 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
25843 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
25844 int UNUSED written
= 0;
25845 IADDR UNUSED pc
= abuf
->addr
;
25846 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
25848 if (frvbf_check_acc_range (current_cpu
, FLD (f_ACC40Sk
))) {
25849 if (ANDSI (FLD (f_ACC40Sk
), SUBSI (4, 1))) {
25850 frvbf_media_acc_not_aligned (current_cpu
);
25852 if (ORIF (ANDSI (FLD (f_FRi
), SUBSI (2, 1)), ANDSI (FLD (f_FRj
), SUBSI (2, 1)))) {
25853 frvbf_media_register_not_aligned (current_cpu
);
25861 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
25862 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
25863 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
25864 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
25868 tmp_tmp
= ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk
)), MULDI (EXTHIDI (tmp_argihi
), EXTHIDI (tmp_argjlo
)));
25869 if (GTDI (tmp_tmp
, MAKEDI (127, 0xffffffff))) {
25872 DI opval
= MAKEDI (127, 0xffffffff);
25873 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
25874 written
|= (1 << 17);
25875 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25877 frvbf_media_overflow (current_cpu
, 8);
25880 if (LTDI (tmp_tmp
, MAKEDI (0xffffff80, 0))) {
25883 DI opval
= MAKEDI (0xffffff80, 0);
25884 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
25885 written
|= (1 << 17);
25886 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25888 frvbf_media_overflow (current_cpu
, 8);
25892 DI opval
= tmp_tmp
;
25893 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
25894 written
|= (1 << 17);
25895 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25902 tmp_tmp
= ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk
)) + (1))), MULDI (EXTHIDI (tmp_argilo
), EXTHIDI (tmp_argjhi
)));
25903 if (GTDI (tmp_tmp
, MAKEDI (127, 0xffffffff))) {
25906 DI opval
= MAKEDI (127, 0xffffffff);
25907 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (1)), opval
);
25908 written
|= (1 << 18);
25909 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25911 frvbf_media_overflow (current_cpu
, 4);
25914 if (LTDI (tmp_tmp
, MAKEDI (0xffffff80, 0))) {
25917 DI opval
= MAKEDI (0xffffff80, 0);
25918 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (1)), opval
);
25919 written
|= (1 << 18);
25920 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25922 frvbf_media_overflow (current_cpu
, 4);
25926 DI opval
= tmp_tmp
;
25927 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (1)), opval
);
25928 written
|= (1 << 18);
25929 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25935 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
25936 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
25937 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
25938 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
25942 tmp_tmp
= ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk
)) + (2))), MULDI (EXTHIDI (tmp_argihi
), EXTHIDI (tmp_argjlo
)));
25943 if (GTDI (tmp_tmp
, MAKEDI (127, 0xffffffff))) {
25946 DI opval
= MAKEDI (127, 0xffffffff);
25947 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (2)), opval
);
25948 written
|= (1 << 19);
25949 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25951 frvbf_media_overflow (current_cpu
, 2);
25954 if (LTDI (tmp_tmp
, MAKEDI (0xffffff80, 0))) {
25957 DI opval
= MAKEDI (0xffffff80, 0);
25958 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (2)), opval
);
25959 written
|= (1 << 19);
25960 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25962 frvbf_media_overflow (current_cpu
, 2);
25966 DI opval
= tmp_tmp
;
25967 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (2)), opval
);
25968 written
|= (1 << 19);
25969 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25976 tmp_tmp
= ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk
)) + (3))), MULDI (EXTHIDI (tmp_argilo
), EXTHIDI (tmp_argjhi
)));
25977 if (GTDI (tmp_tmp
, MAKEDI (127, 0xffffffff))) {
25980 DI opval
= MAKEDI (127, 0xffffffff);
25981 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (3)), opval
);
25982 written
|= (1 << 20);
25983 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25985 frvbf_media_overflow (current_cpu
, 1);
25988 if (LTDI (tmp_tmp
, MAKEDI (0xffffff80, 0))) {
25991 DI opval
= MAKEDI (0xffffff80, 0);
25992 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (3)), opval
);
25993 written
|= (1 << 20);
25994 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
25996 frvbf_media_overflow (current_cpu
, 1);
26000 DI opval
= tmp_tmp
;
26001 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (3)), opval
);
26002 written
|= (1 << 20);
26003 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26013 abuf
->written
= written
;
26018 /* mcpxrs: mcpxrs$pack $FRinti,$FRintj,$ACC40Sk */
26021 SEM_FN_NAME (frvbf
,mcpxrs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
26023 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26024 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
26025 int UNUSED written
= 0;
26026 IADDR UNUSED pc
= abuf
->addr
;
26027 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
26029 if (frvbf_check_acc_range (current_cpu
, FLD (f_ACC40Sk
))) {
26036 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
26037 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
26038 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
26039 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
26044 tmp_tmp1
= MULDI (EXTHIDI (tmp_argihi
), EXTHIDI (tmp_argjhi
));
26045 tmp_tmp2
= MULDI (EXTHIDI (tmp_argilo
), EXTHIDI (tmp_argjlo
));
26046 tmp_tmp1
= SUBDI (tmp_tmp1
, tmp_tmp2
);
26047 if (GTDI (tmp_tmp1
, MAKEDI (127, 0xffffffff))) {
26050 DI opval
= MAKEDI (127, 0xffffffff);
26051 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
26052 written
|= (1 << 9);
26053 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26055 frvbf_media_overflow (current_cpu
, 8);
26058 if (LTDI (tmp_tmp1
, MAKEDI (0xffffff80, 0))) {
26061 DI opval
= MAKEDI (0xffffff80, 0);
26062 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
26063 written
|= (1 << 9);
26064 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26066 frvbf_media_overflow (current_cpu
, 8);
26070 DI opval
= tmp_tmp1
;
26071 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
26072 written
|= (1 << 9);
26073 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26081 abuf
->written
= written
;
26086 /* mcpxru: mcpxru$pack $FRinti,$FRintj,$ACC40Sk */
26089 SEM_FN_NAME (frvbf
,mcpxru
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
26091 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26092 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
26093 int UNUSED written
= 0;
26094 IADDR UNUSED pc
= abuf
->addr
;
26095 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
26097 if (frvbf_check_acc_range (current_cpu
, FLD (f_ACC40Sk
))) {
26104 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
26105 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
26106 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
26107 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
26112 tmp_tmp1
= MULDI (ZEXTHIDI (tmp_argihi
), ZEXTHIDI (tmp_argjhi
));
26113 tmp_tmp2
= MULDI (ZEXTHIDI (tmp_argilo
), ZEXTHIDI (tmp_argjlo
));
26114 tmp_tmp1
= SUBDI (tmp_tmp1
, tmp_tmp2
);
26115 if (GTDI (tmp_tmp1
, MAKEDI (255, 0xffffffff))) {
26118 DI opval
= MAKEDI (255, 0xffffffff);
26119 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
26120 written
|= (1 << 9);
26121 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26123 frvbf_media_overflow (current_cpu
, 8);
26126 if (LTDI (tmp_tmp1
, MAKEDI (0, 0))) {
26129 DI opval
= MAKEDI (0, 0);
26130 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
26131 written
|= (1 << 9);
26132 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26134 frvbf_media_overflow (current_cpu
, 8);
26138 DI opval
= tmp_tmp1
;
26139 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
26140 written
|= (1 << 9);
26141 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26149 abuf
->written
= written
;
26154 /* mcpxis: mcpxis$pack $FRinti,$FRintj,$ACC40Sk */
26157 SEM_FN_NAME (frvbf
,mcpxis
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
26159 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26160 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
26161 int UNUSED written
= 0;
26162 IADDR UNUSED pc
= abuf
->addr
;
26163 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
26165 if (frvbf_check_acc_range (current_cpu
, FLD (f_ACC40Sk
))) {
26172 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
26173 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
26174 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
26175 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
26180 tmp_tmp1
= MULDI (EXTHIDI (tmp_argihi
), EXTHIDI (tmp_argjlo
));
26181 tmp_tmp2
= MULDI (EXTHIDI (tmp_argilo
), EXTHIDI (tmp_argjhi
));
26182 tmp_tmp1
= ADDDI (tmp_tmp1
, tmp_tmp2
);
26183 if (GTDI (tmp_tmp1
, MAKEDI (127, 0xffffffff))) {
26186 DI opval
= MAKEDI (127, 0xffffffff);
26187 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
26188 written
|= (1 << 9);
26189 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26191 frvbf_media_overflow (current_cpu
, 8);
26194 if (LTDI (tmp_tmp1
, MAKEDI (0xffffff80, 0))) {
26197 DI opval
= MAKEDI (0xffffff80, 0);
26198 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
26199 written
|= (1 << 9);
26200 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26202 frvbf_media_overflow (current_cpu
, 8);
26206 DI opval
= tmp_tmp1
;
26207 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
26208 written
|= (1 << 9);
26209 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26217 abuf
->written
= written
;
26222 /* mcpxiu: mcpxiu$pack $FRinti,$FRintj,$ACC40Sk */
26225 SEM_FN_NAME (frvbf
,mcpxiu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
26227 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26228 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
26229 int UNUSED written
= 0;
26230 IADDR UNUSED pc
= abuf
->addr
;
26231 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
26233 if (frvbf_check_acc_range (current_cpu
, FLD (f_ACC40Sk
))) {
26240 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
26241 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
26242 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
26243 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
26248 tmp_tmp1
= MULDI (ZEXTHIDI (tmp_argihi
), ZEXTHIDI (tmp_argjlo
));
26249 tmp_tmp2
= MULDI (ZEXTHIDI (tmp_argilo
), ZEXTHIDI (tmp_argjhi
));
26250 tmp_tmp1
= ADDDI (tmp_tmp1
, tmp_tmp2
);
26251 if (GTDI (tmp_tmp1
, MAKEDI (255, 0xffffffff))) {
26254 DI opval
= MAKEDI (255, 0xffffffff);
26255 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
26256 written
|= (1 << 9);
26257 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26259 frvbf_media_overflow (current_cpu
, 8);
26262 if (LTDI (tmp_tmp1
, MAKEDI (0, 0))) {
26265 DI opval
= MAKEDI (0, 0);
26266 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
26267 written
|= (1 << 9);
26268 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26270 frvbf_media_overflow (current_cpu
, 8);
26274 DI opval
= tmp_tmp1
;
26275 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
26276 written
|= (1 << 9);
26277 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26285 abuf
->written
= written
;
26290 /* cmcpxrs: cmcpxrs$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
26293 SEM_FN_NAME (frvbf
,cmcpxrs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
26295 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26296 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
26297 int UNUSED written
= 0;
26298 IADDR UNUSED pc
= abuf
->addr
;
26299 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
26301 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
26302 if (frvbf_check_acc_range (current_cpu
, FLD (f_ACC40Sk
))) {
26309 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
26310 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
26311 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
26312 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
26317 tmp_tmp1
= MULDI (EXTHIDI (tmp_argihi
), EXTHIDI (tmp_argjhi
));
26318 tmp_tmp2
= MULDI (EXTHIDI (tmp_argilo
), EXTHIDI (tmp_argjlo
));
26319 tmp_tmp1
= SUBDI (tmp_tmp1
, tmp_tmp2
);
26320 if (GTDI (tmp_tmp1
, MAKEDI (127, 0xffffffff))) {
26323 DI opval
= MAKEDI (127, 0xffffffff);
26324 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
26325 written
|= (1 << 11);
26326 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26328 frvbf_media_overflow (current_cpu
, 8);
26331 if (LTDI (tmp_tmp1
, MAKEDI (0xffffff80, 0))) {
26334 DI opval
= MAKEDI (0xffffff80, 0);
26335 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
26336 written
|= (1 << 11);
26337 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26339 frvbf_media_overflow (current_cpu
, 8);
26343 DI opval
= tmp_tmp1
;
26344 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
26345 written
|= (1 << 11);
26346 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26355 abuf
->written
= written
;
26360 /* cmcpxru: cmcpxru$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
26363 SEM_FN_NAME (frvbf
,cmcpxru
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
26365 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26366 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
26367 int UNUSED written
= 0;
26368 IADDR UNUSED pc
= abuf
->addr
;
26369 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
26371 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
26372 if (frvbf_check_acc_range (current_cpu
, FLD (f_ACC40Sk
))) {
26379 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
26380 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
26381 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
26382 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
26387 tmp_tmp1
= MULDI (ZEXTHIDI (tmp_argihi
), ZEXTHIDI (tmp_argjhi
));
26388 tmp_tmp2
= MULDI (ZEXTHIDI (tmp_argilo
), ZEXTHIDI (tmp_argjlo
));
26389 tmp_tmp1
= SUBDI (tmp_tmp1
, tmp_tmp2
);
26390 if (GTDI (tmp_tmp1
, MAKEDI (255, 0xffffffff))) {
26393 DI opval
= MAKEDI (255, 0xffffffff);
26394 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
26395 written
|= (1 << 11);
26396 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26398 frvbf_media_overflow (current_cpu
, 8);
26401 if (LTDI (tmp_tmp1
, MAKEDI (0, 0))) {
26404 DI opval
= MAKEDI (0, 0);
26405 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
26406 written
|= (1 << 11);
26407 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26409 frvbf_media_overflow (current_cpu
, 8);
26413 DI opval
= tmp_tmp1
;
26414 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
26415 written
|= (1 << 11);
26416 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26425 abuf
->written
= written
;
26430 /* cmcpxis: cmcpxis$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
26433 SEM_FN_NAME (frvbf
,cmcpxis
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
26435 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26436 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
26437 int UNUSED written
= 0;
26438 IADDR UNUSED pc
= abuf
->addr
;
26439 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
26441 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
26442 if (frvbf_check_acc_range (current_cpu
, FLD (f_ACC40Sk
))) {
26449 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
26450 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
26451 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
26452 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
26457 tmp_tmp1
= MULDI (EXTHIDI (tmp_argihi
), EXTHIDI (tmp_argjlo
));
26458 tmp_tmp2
= MULDI (EXTHIDI (tmp_argilo
), EXTHIDI (tmp_argjhi
));
26459 tmp_tmp1
= ADDDI (tmp_tmp1
, tmp_tmp2
);
26460 if (GTDI (tmp_tmp1
, MAKEDI (127, 0xffffffff))) {
26463 DI opval
= MAKEDI (127, 0xffffffff);
26464 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
26465 written
|= (1 << 11);
26466 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26468 frvbf_media_overflow (current_cpu
, 8);
26471 if (LTDI (tmp_tmp1
, MAKEDI (0xffffff80, 0))) {
26474 DI opval
= MAKEDI (0xffffff80, 0);
26475 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
26476 written
|= (1 << 11);
26477 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26479 frvbf_media_overflow (current_cpu
, 8);
26483 DI opval
= tmp_tmp1
;
26484 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
26485 written
|= (1 << 11);
26486 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26495 abuf
->written
= written
;
26500 /* cmcpxiu: cmcpxiu$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
26503 SEM_FN_NAME (frvbf
,cmcpxiu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
26505 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26506 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
26507 int UNUSED written
= 0;
26508 IADDR UNUSED pc
= abuf
->addr
;
26509 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
26511 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
26512 if (frvbf_check_acc_range (current_cpu
, FLD (f_ACC40Sk
))) {
26519 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
26520 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
26521 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
26522 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
26527 tmp_tmp1
= MULDI (ZEXTHIDI (tmp_argihi
), ZEXTHIDI (tmp_argjlo
));
26528 tmp_tmp2
= MULDI (ZEXTHIDI (tmp_argilo
), ZEXTHIDI (tmp_argjhi
));
26529 tmp_tmp1
= ADDDI (tmp_tmp1
, tmp_tmp2
);
26530 if (GTDI (tmp_tmp1
, MAKEDI (255, 0xffffffff))) {
26533 DI opval
= MAKEDI (255, 0xffffffff);
26534 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
26535 written
|= (1 << 11);
26536 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26538 frvbf_media_overflow (current_cpu
, 8);
26541 if (LTDI (tmp_tmp1
, MAKEDI (0, 0))) {
26544 DI opval
= MAKEDI (0, 0);
26545 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
26546 written
|= (1 << 11);
26547 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26549 frvbf_media_overflow (current_cpu
, 8);
26553 DI opval
= tmp_tmp1
;
26554 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
26555 written
|= (1 << 11);
26556 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26565 abuf
->written
= written
;
26570 /* mqcpxrs: mqcpxrs$pack $FRintieven,$FRintjeven,$ACC40Sk */
26573 SEM_FN_NAME (frvbf
,mqcpxrs
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
26575 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
26576 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
26577 int UNUSED written
= 0;
26578 IADDR UNUSED pc
= abuf
->addr
;
26579 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
26581 if (frvbf_check_acc_range (current_cpu
, FLD (f_ACC40Sk
))) {
26582 if (ANDSI (FLD (f_ACC40Sk
), SUBSI (2, 1))) {
26583 frvbf_media_acc_not_aligned (current_cpu
);
26585 if (ORIF (ANDSI (FLD (f_FRi
), SUBSI (2, 1)), ANDSI (FLD (f_FRj
), SUBSI (2, 1)))) {
26586 frvbf_media_register_not_aligned (current_cpu
);
26594 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
26595 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
26596 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
26597 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
26602 tmp_tmp1
= MULDI (EXTHIDI (tmp_argihi
), EXTHIDI (tmp_argjhi
));
26603 tmp_tmp2
= MULDI (EXTHIDI (tmp_argilo
), EXTHIDI (tmp_argjlo
));
26604 tmp_tmp1
= SUBDI (tmp_tmp1
, tmp_tmp2
);
26605 if (GTDI (tmp_tmp1
, MAKEDI (127, 0xffffffff))) {
26608 DI opval
= MAKEDI (127, 0xffffffff);
26609 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
26610 written
|= (1 << 13);
26611 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26613 frvbf_media_overflow (current_cpu
, 8);
26616 if (LTDI (tmp_tmp1
, MAKEDI (0xffffff80, 0))) {
26619 DI opval
= MAKEDI (0xffffff80, 0);
26620 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
26621 written
|= (1 << 13);
26622 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26624 frvbf_media_overflow (current_cpu
, 8);
26628 DI opval
= tmp_tmp1
;
26629 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
26630 written
|= (1 << 13);
26631 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26637 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
26638 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
26639 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
26640 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
26645 tmp_tmp1
= MULDI (EXTHIDI (tmp_argihi
), EXTHIDI (tmp_argjhi
));
26646 tmp_tmp2
= MULDI (EXTHIDI (tmp_argilo
), EXTHIDI (tmp_argjlo
));
26647 tmp_tmp1
= SUBDI (tmp_tmp1
, tmp_tmp2
);
26648 if (GTDI (tmp_tmp1
, MAKEDI (127, 0xffffffff))) {
26651 DI opval
= MAKEDI (127, 0xffffffff);
26652 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (1)), opval
);
26653 written
|= (1 << 14);
26654 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26656 frvbf_media_overflow (current_cpu
, 4);
26659 if (LTDI (tmp_tmp1
, MAKEDI (0xffffff80, 0))) {
26662 DI opval
= MAKEDI (0xffffff80, 0);
26663 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (1)), opval
);
26664 written
|= (1 << 14);
26665 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26667 frvbf_media_overflow (current_cpu
, 4);
26671 DI opval
= tmp_tmp1
;
26672 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (1)), opval
);
26673 written
|= (1 << 14);
26674 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26684 abuf
->written
= written
;
26689 /* mqcpxru: mqcpxru$pack $FRintieven,$FRintjeven,$ACC40Sk */
26692 SEM_FN_NAME (frvbf
,mqcpxru
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
26694 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
26695 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
26696 int UNUSED written
= 0;
26697 IADDR UNUSED pc
= abuf
->addr
;
26698 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
26700 if (frvbf_check_acc_range (current_cpu
, FLD (f_ACC40Sk
))) {
26701 if (ANDSI (FLD (f_ACC40Sk
), SUBSI (2, 1))) {
26702 frvbf_media_acc_not_aligned (current_cpu
);
26704 if (ORIF (ANDSI (FLD (f_FRi
), SUBSI (2, 1)), ANDSI (FLD (f_FRj
), SUBSI (2, 1)))) {
26705 frvbf_media_register_not_aligned (current_cpu
);
26713 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
26714 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
26715 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
26716 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
26721 tmp_tmp1
= MULDI (ZEXTHIDI (tmp_argihi
), ZEXTHIDI (tmp_argjhi
));
26722 tmp_tmp2
= MULDI (ZEXTHIDI (tmp_argilo
), ZEXTHIDI (tmp_argjlo
));
26723 tmp_tmp1
= SUBDI (tmp_tmp1
, tmp_tmp2
);
26724 if (GTDI (tmp_tmp1
, MAKEDI (255, 0xffffffff))) {
26727 DI opval
= MAKEDI (255, 0xffffffff);
26728 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
26729 written
|= (1 << 13);
26730 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26732 frvbf_media_overflow (current_cpu
, 8);
26735 if (LTDI (tmp_tmp1
, MAKEDI (0, 0))) {
26738 DI opval
= MAKEDI (0, 0);
26739 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
26740 written
|= (1 << 13);
26741 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26743 frvbf_media_overflow (current_cpu
, 8);
26747 DI opval
= tmp_tmp1
;
26748 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
26749 written
|= (1 << 13);
26750 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26756 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
26757 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
26758 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
26759 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
26764 tmp_tmp1
= MULDI (ZEXTHIDI (tmp_argihi
), ZEXTHIDI (tmp_argjhi
));
26765 tmp_tmp2
= MULDI (ZEXTHIDI (tmp_argilo
), ZEXTHIDI (tmp_argjlo
));
26766 tmp_tmp1
= SUBDI (tmp_tmp1
, tmp_tmp2
);
26767 if (GTDI (tmp_tmp1
, MAKEDI (255, 0xffffffff))) {
26770 DI opval
= MAKEDI (255, 0xffffffff);
26771 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (1)), opval
);
26772 written
|= (1 << 14);
26773 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26775 frvbf_media_overflow (current_cpu
, 4);
26778 if (LTDI (tmp_tmp1
, MAKEDI (0, 0))) {
26781 DI opval
= MAKEDI (0, 0);
26782 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (1)), opval
);
26783 written
|= (1 << 14);
26784 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26786 frvbf_media_overflow (current_cpu
, 4);
26790 DI opval
= tmp_tmp1
;
26791 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (1)), opval
);
26792 written
|= (1 << 14);
26793 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26803 abuf
->written
= written
;
26808 /* mqcpxis: mqcpxis$pack $FRintieven,$FRintjeven,$ACC40Sk */
26811 SEM_FN_NAME (frvbf
,mqcpxis
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
26813 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
26814 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
26815 int UNUSED written
= 0;
26816 IADDR UNUSED pc
= abuf
->addr
;
26817 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
26819 if (frvbf_check_acc_range (current_cpu
, FLD (f_ACC40Sk
))) {
26820 if (ANDSI (FLD (f_ACC40Sk
), SUBSI (2, 1))) {
26821 frvbf_media_acc_not_aligned (current_cpu
);
26823 if (ORIF (ANDSI (FLD (f_FRi
), SUBSI (2, 1)), ANDSI (FLD (f_FRj
), SUBSI (2, 1)))) {
26824 frvbf_media_register_not_aligned (current_cpu
);
26832 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
26833 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
26834 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
26835 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
26840 tmp_tmp1
= MULDI (EXTHIDI (tmp_argihi
), EXTHIDI (tmp_argjlo
));
26841 tmp_tmp2
= MULDI (EXTHIDI (tmp_argilo
), EXTHIDI (tmp_argjhi
));
26842 tmp_tmp1
= ADDDI (tmp_tmp1
, tmp_tmp2
);
26843 if (GTDI (tmp_tmp1
, MAKEDI (127, 0xffffffff))) {
26846 DI opval
= MAKEDI (127, 0xffffffff);
26847 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
26848 written
|= (1 << 13);
26849 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26851 frvbf_media_overflow (current_cpu
, 8);
26854 if (LTDI (tmp_tmp1
, MAKEDI (0xffffff80, 0))) {
26857 DI opval
= MAKEDI (0xffffff80, 0);
26858 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
26859 written
|= (1 << 13);
26860 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26862 frvbf_media_overflow (current_cpu
, 8);
26866 DI opval
= tmp_tmp1
;
26867 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
26868 written
|= (1 << 13);
26869 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26875 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
26876 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
26877 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
26878 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
26883 tmp_tmp1
= MULDI (EXTHIDI (tmp_argihi
), EXTHIDI (tmp_argjlo
));
26884 tmp_tmp2
= MULDI (EXTHIDI (tmp_argilo
), EXTHIDI (tmp_argjhi
));
26885 tmp_tmp1
= ADDDI (tmp_tmp1
, tmp_tmp2
);
26886 if (GTDI (tmp_tmp1
, MAKEDI (127, 0xffffffff))) {
26889 DI opval
= MAKEDI (127, 0xffffffff);
26890 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (1)), opval
);
26891 written
|= (1 << 14);
26892 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26894 frvbf_media_overflow (current_cpu
, 4);
26897 if (LTDI (tmp_tmp1
, MAKEDI (0xffffff80, 0))) {
26900 DI opval
= MAKEDI (0xffffff80, 0);
26901 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (1)), opval
);
26902 written
|= (1 << 14);
26903 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26905 frvbf_media_overflow (current_cpu
, 4);
26909 DI opval
= tmp_tmp1
;
26910 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (1)), opval
);
26911 written
|= (1 << 14);
26912 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26922 abuf
->written
= written
;
26927 /* mqcpxiu: mqcpxiu$pack $FRintieven,$FRintjeven,$ACC40Sk */
26930 SEM_FN_NAME (frvbf
,mqcpxiu
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
26932 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
26933 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
26934 int UNUSED written
= 0;
26935 IADDR UNUSED pc
= abuf
->addr
;
26936 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
26938 if (frvbf_check_acc_range (current_cpu
, FLD (f_ACC40Sk
))) {
26939 if (ANDSI (FLD (f_ACC40Sk
), SUBSI (2, 1))) {
26940 frvbf_media_acc_not_aligned (current_cpu
);
26942 if (ORIF (ANDSI (FLD (f_FRi
), SUBSI (2, 1)), ANDSI (FLD (f_FRj
), SUBSI (2, 1)))) {
26943 frvbf_media_register_not_aligned (current_cpu
);
26951 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
26952 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
26953 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
26954 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
26959 tmp_tmp1
= MULDI (ZEXTHIDI (tmp_argihi
), ZEXTHIDI (tmp_argjlo
));
26960 tmp_tmp2
= MULDI (ZEXTHIDI (tmp_argilo
), ZEXTHIDI (tmp_argjhi
));
26961 tmp_tmp1
= ADDDI (tmp_tmp1
, tmp_tmp2
);
26962 if (GTDI (tmp_tmp1
, MAKEDI (255, 0xffffffff))) {
26965 DI opval
= MAKEDI (255, 0xffffffff);
26966 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
26967 written
|= (1 << 13);
26968 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26970 frvbf_media_overflow (current_cpu
, 8);
26973 if (LTDI (tmp_tmp1
, MAKEDI (0, 0))) {
26976 DI opval
= MAKEDI (0, 0);
26977 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
26978 written
|= (1 << 13);
26979 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26981 frvbf_media_overflow (current_cpu
, 8);
26985 DI opval
= tmp_tmp1
;
26986 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
26987 written
|= (1 << 13);
26988 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
26994 tmp_argihi
= ADDHI (GET_H_FR_HI (((FLD (f_FRi
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
26995 tmp_argilo
= ADDHI (GET_H_FR_LO (((FLD (f_FRi
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi
)), 0));
26996 tmp_argjhi
= ADDHI (GET_H_FR_HI (((FLD (f_FRj
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
26997 tmp_argjlo
= ADDHI (GET_H_FR_LO (((FLD (f_FRj
)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj
)), 0));
27002 tmp_tmp1
= MULDI (ZEXTHIDI (tmp_argihi
), ZEXTHIDI (tmp_argjlo
));
27003 tmp_tmp2
= MULDI (ZEXTHIDI (tmp_argilo
), ZEXTHIDI (tmp_argjhi
));
27004 tmp_tmp1
= ADDDI (tmp_tmp1
, tmp_tmp2
);
27005 if (GTDI (tmp_tmp1
, MAKEDI (255, 0xffffffff))) {
27008 DI opval
= MAKEDI (255, 0xffffffff);
27009 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (1)), opval
);
27010 written
|= (1 << 14);
27011 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
27013 frvbf_media_overflow (current_cpu
, 4);
27016 if (LTDI (tmp_tmp1
, MAKEDI (0, 0))) {
27019 DI opval
= MAKEDI (0, 0);
27020 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (1)), opval
);
27021 written
|= (1 << 14);
27022 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
27024 frvbf_media_overflow (current_cpu
, 4);
27028 DI opval
= tmp_tmp1
;
27029 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, ((FLD (f_ACC40Sk
)) + (1)), opval
);
27030 written
|= (1 << 14);
27031 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
27041 abuf
->written
= written
;
27046 /* mexpdhw: mexpdhw$pack $FRinti,$u6,$FRintk */
27049 SEM_FN_NAME (frvbf
,mexpdhw
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
27051 #define FLD(f) abuf->fields.sfmt_cmexpdhw.f
27052 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
27053 int UNUSED written
= 0;
27054 IADDR UNUSED pc
= abuf
->addr
;
27055 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
27059 if (ANDSI (FLD (f_u6
), 1)) {
27060 tmp_tmp
= GET_H_FR_LO (((FLD (f_FRi
)) + (0)));
27062 tmp_tmp
= GET_H_FR_HI (((FLD (f_FRi
)) + (0)));
27065 UHI opval
= tmp_tmp
;
27066 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
27067 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
27070 UHI opval
= tmp_tmp
;
27071 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
27072 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
27080 /* cmexpdhw: cmexpdhw$pack $FRinti,$u6,$FRintk,$CCi,$cond */
27083 SEM_FN_NAME (frvbf
,cmexpdhw
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
27085 #define FLD(f) abuf->fields.sfmt_cmexpdhw.f
27086 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
27087 int UNUSED written
= 0;
27088 IADDR UNUSED pc
= abuf
->addr
;
27089 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
27091 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
27094 if (ANDSI (FLD (f_u6
), 1)) {
27095 tmp_tmp
= GET_H_FR_LO (((FLD (f_FRi
)) + (0)));
27097 tmp_tmp
= GET_H_FR_HI (((FLD (f_FRi
)) + (0)));
27100 UHI opval
= tmp_tmp
;
27101 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
27102 written
|= (1 << 7);
27103 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
27106 UHI opval
= tmp_tmp
;
27107 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
27108 written
|= (1 << 8);
27109 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
27114 abuf
->written
= written
;
27119 /* mexpdhd: mexpdhd$pack $FRinti,$u6,$FRintkeven */
27122 SEM_FN_NAME (frvbf
,mexpdhd
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
27124 #define FLD(f) abuf->fields.sfmt_cmexpdhd.f
27125 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
27126 int UNUSED written
= 0;
27127 IADDR UNUSED pc
= abuf
->addr
;
27128 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
27130 if (ANDSI (FLD (f_FRk
), SUBSI (2, 1))) {
27131 frvbf_media_register_not_aligned (current_cpu
);
27136 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRk
)));
27137 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
27138 written
|= (1 << 6);
27139 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
27141 if (ANDSI (FLD (f_u6
), 1)) {
27142 tmp_tmp
= GET_H_FR_LO (((FLD (f_FRi
)) + (0)));
27144 tmp_tmp
= GET_H_FR_HI (((FLD (f_FRi
)) + (0)));
27147 UHI opval
= tmp_tmp
;
27148 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
27149 written
|= (1 << 7);
27150 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
27153 UHI opval
= tmp_tmp
;
27154 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
27155 written
|= (1 << 9);
27156 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
27159 UHI opval
= tmp_tmp
;
27160 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (1)), opval
);
27161 written
|= (1 << 8);
27162 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
27165 UHI opval
= tmp_tmp
;
27166 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (1)), opval
);
27167 written
|= (1 << 10);
27168 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
27173 abuf
->written
= written
;
27178 /* cmexpdhd: cmexpdhd$pack $FRinti,$u6,$FRintkeven,$CCi,$cond */
27181 SEM_FN_NAME (frvbf
,cmexpdhd
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
27183 #define FLD(f) abuf->fields.sfmt_cmexpdhd.f
27184 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
27185 int UNUSED written
= 0;
27186 IADDR UNUSED pc
= abuf
->addr
;
27187 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
27189 if (ANDSI (FLD (f_FRk
), SUBSI (2, 1))) {
27190 frvbf_media_register_not_aligned (current_cpu
);
27192 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
27196 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRk
)));
27197 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
27198 written
|= (1 << 8);
27199 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
27201 if (ANDSI (FLD (f_u6
), 1)) {
27202 tmp_tmp
= GET_H_FR_LO (((FLD (f_FRi
)) + (0)));
27204 tmp_tmp
= GET_H_FR_HI (((FLD (f_FRi
)) + (0)));
27207 UHI opval
= tmp_tmp
;
27208 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
27209 written
|= (1 << 9);
27210 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
27213 UHI opval
= tmp_tmp
;
27214 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
27215 written
|= (1 << 11);
27216 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
27219 UHI opval
= tmp_tmp
;
27220 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (1)), opval
);
27221 written
|= (1 << 10);
27222 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
27225 UHI opval
= tmp_tmp
;
27226 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (1)), opval
);
27227 written
|= (1 << 12);
27228 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
27234 abuf
->written
= written
;
27239 /* mpackh: mpackh$pack $FRinti,$FRintj,$FRintk */
27242 SEM_FN_NAME (frvbf
,mpackh
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
27244 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
27245 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
27246 int UNUSED written
= 0;
27247 IADDR UNUSED pc
= abuf
->addr
;
27248 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
27252 UHI opval
= GET_H_FR_LO (((FLD (f_FRi
)) + (0)));
27253 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
27254 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
27257 UHI opval
= GET_H_FR_LO (((FLD (f_FRj
)) + (0)));
27258 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
27259 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
27267 /* mdpackh: mdpackh$pack $FRintieven,$FRintjeven,$FRintkeven */
27270 SEM_FN_NAME (frvbf
,mdpackh
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
27272 #define FLD(f) abuf->fields.sfmt_mdpackh.f
27273 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
27274 int UNUSED written
= 0;
27275 IADDR UNUSED pc
= abuf
->addr
;
27276 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
27278 if (ORIF (ANDSI (FLD (f_FRi
), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj
), SUBSI (2, 1)), ANDSI (FLD (f_FRk
), SUBSI (2, 1))))) {
27279 frvbf_media_register_not_aligned (current_cpu
);
27283 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRi
)));
27284 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRi
), opval
);
27285 written
|= (1 << 10);
27286 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
27289 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRj
)));
27290 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRj
), opval
);
27291 written
|= (1 << 11);
27292 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
27295 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRk
)));
27296 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
27297 written
|= (1 << 12);
27298 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
27302 UHI opval
= GET_H_FR_LO (((FLD (f_FRi
)) + (0)));
27303 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
27304 written
|= (1 << 13);
27305 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
27308 UHI opval
= GET_H_FR_LO (((FLD (f_FRj
)) + (0)));
27309 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
27310 written
|= (1 << 15);
27311 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
27316 UHI opval
= GET_H_FR_LO (((FLD (f_FRi
)) + (1)));
27317 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (1)), opval
);
27318 written
|= (1 << 14);
27319 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
27322 UHI opval
= GET_H_FR_LO (((FLD (f_FRj
)) + (1)));
27323 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (1)), opval
);
27324 written
|= (1 << 16);
27325 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
27331 abuf
->written
= written
;
27336 /* munpackh: munpackh$pack $FRinti,$FRintkeven */
27339 SEM_FN_NAME (frvbf
,munpackh
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
27341 #define FLD(f) abuf->fields.sfmt_munpackh.f
27342 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
27343 int UNUSED written
= 0;
27344 IADDR UNUSED pc
= abuf
->addr
;
27345 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
27347 if (ANDSI (FLD (f_FRk
), SUBSI (2, 1))) {
27348 frvbf_media_register_not_aligned (current_cpu
);
27352 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRi
)));
27353 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRi
), opval
);
27354 written
|= (1 << 6);
27355 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
27358 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRk
)));
27359 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
27360 written
|= (1 << 7);
27361 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
27365 UHI opval
= GET_H_FR_HI (((FLD (f_FRi
)) + (0)));
27366 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
27367 written
|= (1 << 8);
27368 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
27371 UHI opval
= GET_H_FR_HI (((FLD (f_FRi
)) + (0)));
27372 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
27373 written
|= (1 << 10);
27374 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
27377 UHI opval
= GET_H_FR_LO (((FLD (f_FRi
)) + (0)));
27378 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (ADDSI (0, 1))), opval
);
27379 written
|= (1 << 9);
27380 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
27383 UHI opval
= GET_H_FR_LO (((FLD (f_FRi
)) + (0)));
27384 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (ADDSI (0, 1))), opval
);
27385 written
|= (1 << 11);
27386 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
27392 abuf
->written
= written
;
27397 /* mdunpackh: mdunpackh$pack $FRintieven,$FRintk */
27400 SEM_FN_NAME (frvbf
,mdunpackh
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
27402 #define FLD(f) abuf->fields.sfmt_mdunpackh.f
27403 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
27404 int UNUSED written
= 0;
27405 IADDR UNUSED pc
= abuf
->addr
;
27406 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
27408 if (ORIF (ANDSI (FLD (f_FRi
), SUBSI (2, 1)), ANDSI (FLD (f_FRk
), SUBSI (4, 1)))) {
27409 frvbf_media_register_not_aligned (current_cpu
);
27413 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRi
)));
27414 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRi
), opval
);
27415 written
|= (1 << 8);
27416 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
27419 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRk
)));
27420 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
27421 written
|= (1 << 9);
27422 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
27426 UHI opval
= GET_H_FR_HI (((FLD (f_FRi
)) + (0)));
27427 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
27428 written
|= (1 << 10);
27429 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
27432 UHI opval
= GET_H_FR_HI (((FLD (f_FRi
)) + (0)));
27433 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
27434 written
|= (1 << 14);
27435 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
27438 UHI opval
= GET_H_FR_LO (((FLD (f_FRi
)) + (0)));
27439 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (ADDSI (0, 1))), opval
);
27440 written
|= (1 << 12);
27441 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
27444 UHI opval
= GET_H_FR_LO (((FLD (f_FRi
)) + (0)));
27445 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (ADDSI (0, 1))), opval
);
27446 written
|= (1 << 16);
27447 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
27452 UHI opval
= GET_H_FR_HI (((FLD (f_FRi
)) + (1)));
27453 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (2)), opval
);
27454 written
|= (1 << 11);
27455 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
27458 UHI opval
= GET_H_FR_HI (((FLD (f_FRi
)) + (1)));
27459 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (2)), opval
);
27460 written
|= (1 << 15);
27461 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
27464 UHI opval
= GET_H_FR_LO (((FLD (f_FRi
)) + (1)));
27465 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (ADDSI (2, 1))), opval
);
27466 written
|= (1 << 13);
27467 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
27470 UHI opval
= GET_H_FR_LO (((FLD (f_FRi
)) + (1)));
27471 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (ADDSI (2, 1))), opval
);
27472 written
|= (1 << 17);
27473 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
27479 abuf
->written
= written
;
27484 /* mbtoh: mbtoh$pack $FRintj,$FRintkeven */
27487 SEM_FN_NAME (frvbf
,mbtoh
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
27489 #define FLD(f) abuf->fields.sfmt_cmbtoh.f
27490 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
27491 int UNUSED written
= 0;
27492 IADDR UNUSED pc
= abuf
->addr
;
27493 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
27497 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRj
)));
27498 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRj
), opval
);
27499 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
27502 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRk
)));
27503 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
27504 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
27506 if (ANDSI (FLD (f_FRk
), SUBSI (2, 1))) {
27507 frvbf_media_register_not_aligned (current_cpu
);
27511 UHI opval
= GET_H_FR_3 (((FLD (f_FRj
)) + (0)));
27512 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
27513 written
|= (1 << 10);
27514 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
27517 UHI opval
= GET_H_FR_2 (((FLD (f_FRj
)) + (0)));
27518 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
27519 written
|= (1 << 12);
27520 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
27523 UHI opval
= GET_H_FR_1 (((FLD (f_FRj
)) + (0)));
27524 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (1)), opval
);
27525 written
|= (1 << 11);
27526 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
27529 UHI opval
= GET_H_FR_0 (((FLD (f_FRj
)) + (0)));
27530 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (1)), opval
);
27531 written
|= (1 << 13);
27532 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
27538 abuf
->written
= written
;
27543 /* cmbtoh: cmbtoh$pack $FRintj,$FRintkeven,$CCi,$cond */
27546 SEM_FN_NAME (frvbf
,cmbtoh
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
27548 #define FLD(f) abuf->fields.sfmt_cmbtoh.f
27549 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
27550 int UNUSED written
= 0;
27551 IADDR UNUSED pc
= abuf
->addr
;
27552 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
27556 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRj
)));
27557 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRj
), opval
);
27558 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
27561 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRk
)));
27562 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
27563 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
27565 if (ANDSI (FLD (f_FRk
), SUBSI (2, 1))) {
27566 frvbf_media_register_not_aligned (current_cpu
);
27568 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
27571 UHI opval
= GET_H_FR_3 (((FLD (f_FRj
)) + (0)));
27572 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
27573 written
|= (1 << 12);
27574 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
27577 UHI opval
= GET_H_FR_2 (((FLD (f_FRj
)) + (0)));
27578 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
27579 written
|= (1 << 14);
27580 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
27583 UHI opval
= GET_H_FR_1 (((FLD (f_FRj
)) + (0)));
27584 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (1)), opval
);
27585 written
|= (1 << 13);
27586 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
27589 UHI opval
= GET_H_FR_0 (((FLD (f_FRj
)) + (0)));
27590 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (1)), opval
);
27591 written
|= (1 << 15);
27592 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
27599 abuf
->written
= written
;
27604 /* mhtob: mhtob$pack $FRintjeven,$FRintk */
27607 SEM_FN_NAME (frvbf
,mhtob
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
27609 #define FLD(f) abuf->fields.sfmt_cmhtob.f
27610 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
27611 int UNUSED written
= 0;
27612 IADDR UNUSED pc
= abuf
->addr
;
27613 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
27617 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRj
)));
27618 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRj
), opval
);
27619 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
27622 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRk
)));
27623 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
27624 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
27626 if (ANDSI (FLD (f_FRj
), SUBSI (2, 1))) {
27627 frvbf_media_register_not_aligned (current_cpu
);
27631 UHI opval
= GET_H_FR_HI (((FLD (f_FRj
)) + (0)));
27632 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_3_set
, ((FLD (f_FRk
)) + (0)), opval
);
27633 written
|= (1 << 13);
27634 TRACE_RESULT (current_cpu
, abuf
, "fr_3", 'x', opval
);
27637 UHI opval
= GET_H_FR_LO (((FLD (f_FRj
)) + (0)));
27638 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_2_set
, ((FLD (f_FRk
)) + (0)), opval
);
27639 written
|= (1 << 12);
27640 TRACE_RESULT (current_cpu
, abuf
, "fr_2", 'x', opval
);
27643 UHI opval
= GET_H_FR_HI (((FLD (f_FRj
)) + (1)));
27644 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_1_set
, ((FLD (f_FRk
)) + (0)), opval
);
27645 written
|= (1 << 11);
27646 TRACE_RESULT (current_cpu
, abuf
, "fr_1", 'x', opval
);
27649 UHI opval
= GET_H_FR_LO (((FLD (f_FRj
)) + (1)));
27650 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_0_set
, ((FLD (f_FRk
)) + (0)), opval
);
27651 written
|= (1 << 10);
27652 TRACE_RESULT (current_cpu
, abuf
, "fr_0", 'x', opval
);
27658 abuf
->written
= written
;
27663 /* cmhtob: cmhtob$pack $FRintjeven,$FRintk,$CCi,$cond */
27666 SEM_FN_NAME (frvbf
,cmhtob
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
27668 #define FLD(f) abuf->fields.sfmt_cmhtob.f
27669 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
27670 int UNUSED written
= 0;
27671 IADDR UNUSED pc
= abuf
->addr
;
27672 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
27676 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRj
)));
27677 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRj
), opval
);
27678 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
27681 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRk
)));
27682 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
27683 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
27685 if (ANDSI (FLD (f_FRj
), SUBSI (2, 1))) {
27686 frvbf_media_register_not_aligned (current_cpu
);
27688 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
27691 UHI opval
= GET_H_FR_HI (((FLD (f_FRj
)) + (0)));
27692 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_3_set
, ((FLD (f_FRk
)) + (0)), opval
);
27693 written
|= (1 << 15);
27694 TRACE_RESULT (current_cpu
, abuf
, "fr_3", 'x', opval
);
27697 UHI opval
= GET_H_FR_LO (((FLD (f_FRj
)) + (0)));
27698 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_2_set
, ((FLD (f_FRk
)) + (0)), opval
);
27699 written
|= (1 << 14);
27700 TRACE_RESULT (current_cpu
, abuf
, "fr_2", 'x', opval
);
27703 UHI opval
= GET_H_FR_HI (((FLD (f_FRj
)) + (1)));
27704 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_1_set
, ((FLD (f_FRk
)) + (0)), opval
);
27705 written
|= (1 << 13);
27706 TRACE_RESULT (current_cpu
, abuf
, "fr_1", 'x', opval
);
27709 UHI opval
= GET_H_FR_LO (((FLD (f_FRj
)) + (1)));
27710 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_0_set
, ((FLD (f_FRk
)) + (0)), opval
);
27711 written
|= (1 << 12);
27712 TRACE_RESULT (current_cpu
, abuf
, "fr_0", 'x', opval
);
27719 abuf
->written
= written
;
27724 /* mbtohe: mbtohe$pack $FRintj,$FRintk */
27727 SEM_FN_NAME (frvbf
,mbtohe
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
27729 #define FLD(f) abuf->fields.sfmt_cmbtohe.f
27730 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
27731 int UNUSED written
= 0;
27732 IADDR UNUSED pc
= abuf
->addr
;
27733 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
27737 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRj
)));
27738 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRj
), opval
);
27739 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
27742 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRk
)));
27743 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
27744 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
27746 if (ANDSI (FLD (f_FRk
), SUBSI (4, 1))) {
27747 frvbf_media_register_not_aligned (current_cpu
);
27751 UHI opval
= GET_H_FR_3 (((FLD (f_FRj
)) + (0)));
27752 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
27753 written
|= (1 << 10);
27754 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
27757 UHI opval
= GET_H_FR_3 (((FLD (f_FRj
)) + (0)));
27758 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
27759 written
|= (1 << 14);
27760 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
27763 UHI opval
= GET_H_FR_2 (((FLD (f_FRj
)) + (0)));
27764 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (1)), opval
);
27765 written
|= (1 << 11);
27766 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
27769 UHI opval
= GET_H_FR_2 (((FLD (f_FRj
)) + (0)));
27770 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (1)), opval
);
27771 written
|= (1 << 15);
27772 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
27775 UHI opval
= GET_H_FR_1 (((FLD (f_FRj
)) + (0)));
27776 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (2)), opval
);
27777 written
|= (1 << 12);
27778 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
27781 UHI opval
= GET_H_FR_1 (((FLD (f_FRj
)) + (0)));
27782 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (2)), opval
);
27783 written
|= (1 << 16);
27784 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
27787 UHI opval
= GET_H_FR_0 (((FLD (f_FRj
)) + (0)));
27788 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (3)), opval
);
27789 written
|= (1 << 13);
27790 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
27793 UHI opval
= GET_H_FR_0 (((FLD (f_FRj
)) + (0)));
27794 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (3)), opval
);
27795 written
|= (1 << 17);
27796 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
27802 abuf
->written
= written
;
27807 /* cmbtohe: cmbtohe$pack $FRintj,$FRintk,$CCi,$cond */
27810 SEM_FN_NAME (frvbf
,cmbtohe
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
27812 #define FLD(f) abuf->fields.sfmt_cmbtohe.f
27813 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
27814 int UNUSED written
= 0;
27815 IADDR UNUSED pc
= abuf
->addr
;
27816 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
27820 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRj
)));
27821 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRj
), opval
);
27822 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
27825 SI opval
= frv_ref_SI (GET_H_FR_INT (FLD (f_FRk
)));
27826 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
27827 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
27829 if (ANDSI (FLD (f_FRk
), SUBSI (4, 1))) {
27830 frvbf_media_register_not_aligned (current_cpu
);
27832 if (EQQI (CPU (h_cccr
[FLD (f_CCi
)]), ORSI (FLD (f_cond
), 2))) {
27835 UHI opval
= GET_H_FR_3 (((FLD (f_FRj
)) + (0)));
27836 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (0)), opval
);
27837 written
|= (1 << 12);
27838 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
27841 UHI opval
= GET_H_FR_3 (((FLD (f_FRj
)) + (0)));
27842 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (0)), opval
);
27843 written
|= (1 << 16);
27844 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
27847 UHI opval
= GET_H_FR_2 (((FLD (f_FRj
)) + (0)));
27848 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (1)), opval
);
27849 written
|= (1 << 13);
27850 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
27853 UHI opval
= GET_H_FR_2 (((FLD (f_FRj
)) + (0)));
27854 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (1)), opval
);
27855 written
|= (1 << 17);
27856 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
27859 UHI opval
= GET_H_FR_1 (((FLD (f_FRj
)) + (0)));
27860 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (2)), opval
);
27861 written
|= (1 << 14);
27862 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
27865 UHI opval
= GET_H_FR_1 (((FLD (f_FRj
)) + (0)));
27866 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (2)), opval
);
27867 written
|= (1 << 18);
27868 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
27871 UHI opval
= GET_H_FR_0 (((FLD (f_FRj
)) + (0)));
27872 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_hi_set
, ((FLD (f_FRk
)) + (3)), opval
);
27873 written
|= (1 << 15);
27874 TRACE_RESULT (current_cpu
, abuf
, "fr_hi", 'x', opval
);
27877 UHI opval
= GET_H_FR_0 (((FLD (f_FRj
)) + (0)));
27878 sim_queue_fn_hi_write (current_cpu
, frvbf_h_fr_lo_set
, ((FLD (f_FRk
)) + (3)), opval
);
27879 written
|= (1 << 19);
27880 TRACE_RESULT (current_cpu
, abuf
, "fr_lo", 'x', opval
);
27887 abuf
->written
= written
;
27892 /* mnop: mnop$pack */
27895 SEM_FN_NAME (frvbf
,mnop
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
27897 #define FLD(f) abuf->fields.fmt_empty.f
27898 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
27899 int UNUSED written
= 0;
27900 IADDR UNUSED pc
= abuf
->addr
;
27901 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
27903 ((void) 0); /*nop*/
27909 /* mclracc-0: mclracc$pack $ACC40Sk,$A0 */
27912 SEM_FN_NAME (frvbf
,mclracc_0
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
27914 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
27915 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
27916 int UNUSED written
= 0;
27917 IADDR UNUSED pc
= abuf
->addr
;
27918 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
27920 frvbf_clear_accumulators (current_cpu
, FLD (f_ACC40Sk
), 0);
27926 /* mclracc-1: mclracc$pack $ACC40Sk,$A1 */
27929 SEM_FN_NAME (frvbf
,mclracc_1
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
27931 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
27932 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
27933 int UNUSED written
= 0;
27934 IADDR UNUSED pc
= abuf
->addr
;
27935 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
27937 frvbf_clear_accumulators (current_cpu
, FLD (f_ACC40Sk
), 1);
27943 /* mrdacc: mrdacc$pack $ACC40Si,$FRintk */
27946 SEM_FN_NAME (frvbf
,mrdacc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
27948 #define FLD(f) abuf->fields.sfmt_mcuti.f
27949 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
27950 int UNUSED written
= 0;
27951 IADDR UNUSED pc
= abuf
->addr
;
27952 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
27955 SI opval
= GET_H_ACC40S (FLD (f_ACC40Si
));
27956 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
27957 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
27964 /* mrdaccg: mrdaccg$pack $ACCGi,$FRintk */
27967 SEM_FN_NAME (frvbf
,mrdaccg
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
27969 #define FLD(f) abuf->fields.sfmt_mrdaccg.f
27970 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
27971 int UNUSED written
= 0;
27972 IADDR UNUSED pc
= abuf
->addr
;
27973 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
27976 SI opval
= GET_H_ACCG (FLD (f_ACCGi
));
27977 sim_queue_fn_si_write (current_cpu
, frvbf_h_fr_int_set
, FLD (f_FRk
), opval
);
27978 TRACE_RESULT (current_cpu
, abuf
, "fr_int", 'x', opval
);
27985 /* mwtacc: mwtacc$pack $FRinti,$ACC40Sk */
27988 SEM_FN_NAME (frvbf
,mwtacc
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
27990 #define FLD(f) abuf->fields.sfmt_cmmachs.f
27991 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
27992 int UNUSED written
= 0;
27993 IADDR UNUSED pc
= abuf
->addr
;
27994 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
27997 DI opval
= ORDI (ANDDI (GET_H_ACC40S (FLD (f_ACC40Sk
)), MAKEDI (0xffffffff, 0)), GET_H_FR_INT (FLD (f_FRi
)));
27998 sim_queue_fn_di_write (current_cpu
, frvbf_h_acc40S_set
, FLD (f_ACC40Sk
), opval
);
27999 TRACE_RESULT (current_cpu
, abuf
, "acc40S", 'D', opval
);
28006 /* mwtaccg: mwtaccg$pack $FRinti,$ACCGk */
28009 SEM_FN_NAME (frvbf
,mwtaccg
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
28011 #define FLD(f) abuf->fields.sfmt_mwtaccg.f
28012 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
28013 int UNUSED written
= 0;
28014 IADDR UNUSED pc
= abuf
->addr
;
28015 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
28018 frv_ref_SI (GET_H_ACCG (FLD (f_ACCGk
)));
28020 USI opval
= GET_H_FR_INT (FLD (f_FRi
));
28021 sim_queue_fn_si_write (current_cpu
, frvbf_h_accg_set
, FLD (f_ACCGk
), opval
);
28022 TRACE_RESULT (current_cpu
, abuf
, "accg", 'x', opval
);
28030 /* mcop1: mcop1$pack $FRi,$FRj,$FRk */
28033 SEM_FN_NAME (frvbf
,mcop1
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
28035 #define FLD(f) abuf->fields.fmt_empty.f
28036 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
28037 int UNUSED written
= 0;
28038 IADDR UNUSED pc
= abuf
->addr
;
28039 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
28041 frvbf_media_cop (current_cpu
, 1);
28047 /* mcop2: mcop2$pack $FRi,$FRj,$FRk */
28050 SEM_FN_NAME (frvbf
,mcop2
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
28052 #define FLD(f) abuf->fields.fmt_empty.f
28053 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
28054 int UNUSED written
= 0;
28055 IADDR UNUSED pc
= abuf
->addr
;
28056 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
28058 frvbf_media_cop (current_cpu
, 2);
28064 /* fnop: fnop$pack */
28067 SEM_FN_NAME (frvbf
,fnop
) (SIM_CPU
*current_cpu
, SEM_ARG sem_arg
)
28069 #define FLD(f) abuf->fields.fmt_empty.f
28070 ARGBUF
*abuf
= SEM_ARGBUF (sem_arg
);
28071 int UNUSED written
= 0;
28072 IADDR UNUSED pc
= abuf
->addr
;
28073 SEM_PC vpc
= SEM_NEXT_VPC (sem_arg
, pc
, 4);
28075 ((void) 0); /*nop*/
28081 /* Table of all semantic fns. */
28083 static const struct sem_fn_desc sem_fns
[] = {
28084 { FRVBF_INSN_X_INVALID
, SEM_FN_NAME (frvbf
,x_invalid
) },
28085 { FRVBF_INSN_X_AFTER
, SEM_FN_NAME (frvbf
,x_after
) },
28086 { FRVBF_INSN_X_BEFORE
, SEM_FN_NAME (frvbf
,x_before
) },
28087 { FRVBF_INSN_X_CTI_CHAIN
, SEM_FN_NAME (frvbf
,x_cti_chain
) },
28088 { FRVBF_INSN_X_CHAIN
, SEM_FN_NAME (frvbf
,x_chain
) },
28089 { FRVBF_INSN_X_BEGIN
, SEM_FN_NAME (frvbf
,x_begin
) },
28090 { FRVBF_INSN_ADD
, SEM_FN_NAME (frvbf
,add
) },
28091 { FRVBF_INSN_SUB
, SEM_FN_NAME (frvbf
,sub
) },
28092 { FRVBF_INSN_AND
, SEM_FN_NAME (frvbf
,and) },
28093 { FRVBF_INSN_OR
, SEM_FN_NAME (frvbf
,or) },
28094 { FRVBF_INSN_XOR
, SEM_FN_NAME (frvbf
,xor) },
28095 { FRVBF_INSN_NOT
, SEM_FN_NAME (frvbf
,not) },
28096 { FRVBF_INSN_SDIV
, SEM_FN_NAME (frvbf
,sdiv
) },
28097 { FRVBF_INSN_NSDIV
, SEM_FN_NAME (frvbf
,nsdiv
) },
28098 { FRVBF_INSN_UDIV
, SEM_FN_NAME (frvbf
,udiv
) },
28099 { FRVBF_INSN_NUDIV
, SEM_FN_NAME (frvbf
,nudiv
) },
28100 { FRVBF_INSN_SMUL
, SEM_FN_NAME (frvbf
,smul
) },
28101 { FRVBF_INSN_UMUL
, SEM_FN_NAME (frvbf
,umul
) },
28102 { FRVBF_INSN_SMU
, SEM_FN_NAME (frvbf
,smu
) },
28103 { FRVBF_INSN_SMASS
, SEM_FN_NAME (frvbf
,smass
) },
28104 { FRVBF_INSN_SMSSS
, SEM_FN_NAME (frvbf
,smsss
) },
28105 { FRVBF_INSN_SLL
, SEM_FN_NAME (frvbf
,sll
) },
28106 { FRVBF_INSN_SRL
, SEM_FN_NAME (frvbf
,srl
) },
28107 { FRVBF_INSN_SRA
, SEM_FN_NAME (frvbf
,sra
) },
28108 { FRVBF_INSN_SLASS
, SEM_FN_NAME (frvbf
,slass
) },
28109 { FRVBF_INSN_SCUTSS
, SEM_FN_NAME (frvbf
,scutss
) },
28110 { FRVBF_INSN_SCAN
, SEM_FN_NAME (frvbf
,scan
) },
28111 { FRVBF_INSN_CADD
, SEM_FN_NAME (frvbf
,cadd
) },
28112 { FRVBF_INSN_CSUB
, SEM_FN_NAME (frvbf
,csub
) },
28113 { FRVBF_INSN_CAND
, SEM_FN_NAME (frvbf
,cand
) },
28114 { FRVBF_INSN_COR
, SEM_FN_NAME (frvbf
,cor
) },
28115 { FRVBF_INSN_CXOR
, SEM_FN_NAME (frvbf
,cxor
) },
28116 { FRVBF_INSN_CNOT
, SEM_FN_NAME (frvbf
,cnot
) },
28117 { FRVBF_INSN_CSMUL
, SEM_FN_NAME (frvbf
,csmul
) },
28118 { FRVBF_INSN_CSDIV
, SEM_FN_NAME (frvbf
,csdiv
) },
28119 { FRVBF_INSN_CUDIV
, SEM_FN_NAME (frvbf
,cudiv
) },
28120 { FRVBF_INSN_CSLL
, SEM_FN_NAME (frvbf
,csll
) },
28121 { FRVBF_INSN_CSRL
, SEM_FN_NAME (frvbf
,csrl
) },
28122 { FRVBF_INSN_CSRA
, SEM_FN_NAME (frvbf
,csra
) },
28123 { FRVBF_INSN_CSCAN
, SEM_FN_NAME (frvbf
,cscan
) },
28124 { FRVBF_INSN_ADDCC
, SEM_FN_NAME (frvbf
,addcc
) },
28125 { FRVBF_INSN_SUBCC
, SEM_FN_NAME (frvbf
,subcc
) },
28126 { FRVBF_INSN_ANDCC
, SEM_FN_NAME (frvbf
,andcc
) },
28127 { FRVBF_INSN_ORCC
, SEM_FN_NAME (frvbf
,orcc
) },
28128 { FRVBF_INSN_XORCC
, SEM_FN_NAME (frvbf
,xorcc
) },
28129 { FRVBF_INSN_SLLCC
, SEM_FN_NAME (frvbf
,sllcc
) },
28130 { FRVBF_INSN_SRLCC
, SEM_FN_NAME (frvbf
,srlcc
) },
28131 { FRVBF_INSN_SRACC
, SEM_FN_NAME (frvbf
,sracc
) },
28132 { FRVBF_INSN_SMULCC
, SEM_FN_NAME (frvbf
,smulcc
) },
28133 { FRVBF_INSN_UMULCC
, SEM_FN_NAME (frvbf
,umulcc
) },
28134 { FRVBF_INSN_CADDCC
, SEM_FN_NAME (frvbf
,caddcc
) },
28135 { FRVBF_INSN_CSUBCC
, SEM_FN_NAME (frvbf
,csubcc
) },
28136 { FRVBF_INSN_CSMULCC
, SEM_FN_NAME (frvbf
,csmulcc
) },
28137 { FRVBF_INSN_CANDCC
, SEM_FN_NAME (frvbf
,candcc
) },
28138 { FRVBF_INSN_CORCC
, SEM_FN_NAME (frvbf
,corcc
) },
28139 { FRVBF_INSN_CXORCC
, SEM_FN_NAME (frvbf
,cxorcc
) },
28140 { FRVBF_INSN_CSLLCC
, SEM_FN_NAME (frvbf
,csllcc
) },
28141 { FRVBF_INSN_CSRLCC
, SEM_FN_NAME (frvbf
,csrlcc
) },
28142 { FRVBF_INSN_CSRACC
, SEM_FN_NAME (frvbf
,csracc
) },
28143 { FRVBF_INSN_ADDX
, SEM_FN_NAME (frvbf
,addx
) },
28144 { FRVBF_INSN_SUBX
, SEM_FN_NAME (frvbf
,subx
) },
28145 { FRVBF_INSN_ADDXCC
, SEM_FN_NAME (frvbf
,addxcc
) },
28146 { FRVBF_INSN_SUBXCC
, SEM_FN_NAME (frvbf
,subxcc
) },
28147 { FRVBF_INSN_ADDSS
, SEM_FN_NAME (frvbf
,addss
) },
28148 { FRVBF_INSN_SUBSS
, SEM_FN_NAME (frvbf
,subss
) },
28149 { FRVBF_INSN_ADDI
, SEM_FN_NAME (frvbf
,addi
) },
28150 { FRVBF_INSN_SUBI
, SEM_FN_NAME (frvbf
,subi
) },
28151 { FRVBF_INSN_ANDI
, SEM_FN_NAME (frvbf
,andi
) },
28152 { FRVBF_INSN_ORI
, SEM_FN_NAME (frvbf
,ori
) },
28153 { FRVBF_INSN_XORI
, SEM_FN_NAME (frvbf
,xori
) },
28154 { FRVBF_INSN_SDIVI
, SEM_FN_NAME (frvbf
,sdivi
) },
28155 { FRVBF_INSN_NSDIVI
, SEM_FN_NAME (frvbf
,nsdivi
) },
28156 { FRVBF_INSN_UDIVI
, SEM_FN_NAME (frvbf
,udivi
) },
28157 { FRVBF_INSN_NUDIVI
, SEM_FN_NAME (frvbf
,nudivi
) },
28158 { FRVBF_INSN_SMULI
, SEM_FN_NAME (frvbf
,smuli
) },
28159 { FRVBF_INSN_UMULI
, SEM_FN_NAME (frvbf
,umuli
) },
28160 { FRVBF_INSN_SLLI
, SEM_FN_NAME (frvbf
,slli
) },
28161 { FRVBF_INSN_SRLI
, SEM_FN_NAME (frvbf
,srli
) },
28162 { FRVBF_INSN_SRAI
, SEM_FN_NAME (frvbf
,srai
) },
28163 { FRVBF_INSN_SCANI
, SEM_FN_NAME (frvbf
,scani
) },
28164 { FRVBF_INSN_ADDICC
, SEM_FN_NAME (frvbf
,addicc
) },
28165 { FRVBF_INSN_SUBICC
, SEM_FN_NAME (frvbf
,subicc
) },
28166 { FRVBF_INSN_ANDICC
, SEM_FN_NAME (frvbf
,andicc
) },
28167 { FRVBF_INSN_ORICC
, SEM_FN_NAME (frvbf
,oricc
) },
28168 { FRVBF_INSN_XORICC
, SEM_FN_NAME (frvbf
,xoricc
) },
28169 { FRVBF_INSN_SMULICC
, SEM_FN_NAME (frvbf
,smulicc
) },
28170 { FRVBF_INSN_UMULICC
, SEM_FN_NAME (frvbf
,umulicc
) },
28171 { FRVBF_INSN_SLLICC
, SEM_FN_NAME (frvbf
,sllicc
) },
28172 { FRVBF_INSN_SRLICC
, SEM_FN_NAME (frvbf
,srlicc
) },
28173 { FRVBF_INSN_SRAICC
, SEM_FN_NAME (frvbf
,sraicc
) },
28174 { FRVBF_INSN_ADDXI
, SEM_FN_NAME (frvbf
,addxi
) },
28175 { FRVBF_INSN_SUBXI
, SEM_FN_NAME (frvbf
,subxi
) },
28176 { FRVBF_INSN_ADDXICC
, SEM_FN_NAME (frvbf
,addxicc
) },
28177 { FRVBF_INSN_SUBXICC
, SEM_FN_NAME (frvbf
,subxicc
) },
28178 { FRVBF_INSN_CMPB
, SEM_FN_NAME (frvbf
,cmpb
) },
28179 { FRVBF_INSN_CMPBA
, SEM_FN_NAME (frvbf
,cmpba
) },
28180 { FRVBF_INSN_SETLO
, SEM_FN_NAME (frvbf
,setlo
) },
28181 { FRVBF_INSN_SETHI
, SEM_FN_NAME (frvbf
,sethi
) },
28182 { FRVBF_INSN_SETLOS
, SEM_FN_NAME (frvbf
,setlos
) },
28183 { FRVBF_INSN_LDSB
, SEM_FN_NAME (frvbf
,ldsb
) },
28184 { FRVBF_INSN_LDUB
, SEM_FN_NAME (frvbf
,ldub
) },
28185 { FRVBF_INSN_LDSH
, SEM_FN_NAME (frvbf
,ldsh
) },
28186 { FRVBF_INSN_LDUH
, SEM_FN_NAME (frvbf
,lduh
) },
28187 { FRVBF_INSN_LD
, SEM_FN_NAME (frvbf
,ld
) },
28188 { FRVBF_INSN_LDBF
, SEM_FN_NAME (frvbf
,ldbf
) },
28189 { FRVBF_INSN_LDHF
, SEM_FN_NAME (frvbf
,ldhf
) },
28190 { FRVBF_INSN_LDF
, SEM_FN_NAME (frvbf
,ldf
) },
28191 { FRVBF_INSN_LDC
, SEM_FN_NAME (frvbf
,ldc
) },
28192 { FRVBF_INSN_NLDSB
, SEM_FN_NAME (frvbf
,nldsb
) },
28193 { FRVBF_INSN_NLDUB
, SEM_FN_NAME (frvbf
,nldub
) },
28194 { FRVBF_INSN_NLDSH
, SEM_FN_NAME (frvbf
,nldsh
) },
28195 { FRVBF_INSN_NLDUH
, SEM_FN_NAME (frvbf
,nlduh
) },
28196 { FRVBF_INSN_NLD
, SEM_FN_NAME (frvbf
,nld
) },
28197 { FRVBF_INSN_NLDBF
, SEM_FN_NAME (frvbf
,nldbf
) },
28198 { FRVBF_INSN_NLDHF
, SEM_FN_NAME (frvbf
,nldhf
) },
28199 { FRVBF_INSN_NLDF
, SEM_FN_NAME (frvbf
,nldf
) },
28200 { FRVBF_INSN_LDD
, SEM_FN_NAME (frvbf
,ldd
) },
28201 { FRVBF_INSN_LDDF
, SEM_FN_NAME (frvbf
,lddf
) },
28202 { FRVBF_INSN_LDDC
, SEM_FN_NAME (frvbf
,lddc
) },
28203 { FRVBF_INSN_NLDD
, SEM_FN_NAME (frvbf
,nldd
) },
28204 { FRVBF_INSN_NLDDF
, SEM_FN_NAME (frvbf
,nlddf
) },
28205 { FRVBF_INSN_LDQ
, SEM_FN_NAME (frvbf
,ldq
) },
28206 { FRVBF_INSN_LDQF
, SEM_FN_NAME (frvbf
,ldqf
) },
28207 { FRVBF_INSN_LDQC
, SEM_FN_NAME (frvbf
,ldqc
) },
28208 { FRVBF_INSN_NLDQ
, SEM_FN_NAME (frvbf
,nldq
) },
28209 { FRVBF_INSN_NLDQF
, SEM_FN_NAME (frvbf
,nldqf
) },
28210 { FRVBF_INSN_LDSBU
, SEM_FN_NAME (frvbf
,ldsbu
) },
28211 { FRVBF_INSN_LDUBU
, SEM_FN_NAME (frvbf
,ldubu
) },
28212 { FRVBF_INSN_LDSHU
, SEM_FN_NAME (frvbf
,ldshu
) },
28213 { FRVBF_INSN_LDUHU
, SEM_FN_NAME (frvbf
,lduhu
) },
28214 { FRVBF_INSN_LDU
, SEM_FN_NAME (frvbf
,ldu
) },
28215 { FRVBF_INSN_NLDSBU
, SEM_FN_NAME (frvbf
,nldsbu
) },
28216 { FRVBF_INSN_NLDUBU
, SEM_FN_NAME (frvbf
,nldubu
) },
28217 { FRVBF_INSN_NLDSHU
, SEM_FN_NAME (frvbf
,nldshu
) },
28218 { FRVBF_INSN_NLDUHU
, SEM_FN_NAME (frvbf
,nlduhu
) },
28219 { FRVBF_INSN_NLDU
, SEM_FN_NAME (frvbf
,nldu
) },
28220 { FRVBF_INSN_LDBFU
, SEM_FN_NAME (frvbf
,ldbfu
) },
28221 { FRVBF_INSN_LDHFU
, SEM_FN_NAME (frvbf
,ldhfu
) },
28222 { FRVBF_INSN_LDFU
, SEM_FN_NAME (frvbf
,ldfu
) },
28223 { FRVBF_INSN_LDCU
, SEM_FN_NAME (frvbf
,ldcu
) },
28224 { FRVBF_INSN_NLDBFU
, SEM_FN_NAME (frvbf
,nldbfu
) },
28225 { FRVBF_INSN_NLDHFU
, SEM_FN_NAME (frvbf
,nldhfu
) },
28226 { FRVBF_INSN_NLDFU
, SEM_FN_NAME (frvbf
,nldfu
) },
28227 { FRVBF_INSN_LDDU
, SEM_FN_NAME (frvbf
,lddu
) },
28228 { FRVBF_INSN_NLDDU
, SEM_FN_NAME (frvbf
,nlddu
) },
28229 { FRVBF_INSN_LDDFU
, SEM_FN_NAME (frvbf
,lddfu
) },
28230 { FRVBF_INSN_LDDCU
, SEM_FN_NAME (frvbf
,lddcu
) },
28231 { FRVBF_INSN_NLDDFU
, SEM_FN_NAME (frvbf
,nlddfu
) },
28232 { FRVBF_INSN_LDQU
, SEM_FN_NAME (frvbf
,ldqu
) },
28233 { FRVBF_INSN_NLDQU
, SEM_FN_NAME (frvbf
,nldqu
) },
28234 { FRVBF_INSN_LDQFU
, SEM_FN_NAME (frvbf
,ldqfu
) },
28235 { FRVBF_INSN_LDQCU
, SEM_FN_NAME (frvbf
,ldqcu
) },
28236 { FRVBF_INSN_NLDQFU
, SEM_FN_NAME (frvbf
,nldqfu
) },
28237 { FRVBF_INSN_LDSBI
, SEM_FN_NAME (frvbf
,ldsbi
) },
28238 { FRVBF_INSN_LDSHI
, SEM_FN_NAME (frvbf
,ldshi
) },
28239 { FRVBF_INSN_LDI
, SEM_FN_NAME (frvbf
,ldi
) },
28240 { FRVBF_INSN_LDUBI
, SEM_FN_NAME (frvbf
,ldubi
) },
28241 { FRVBF_INSN_LDUHI
, SEM_FN_NAME (frvbf
,lduhi
) },
28242 { FRVBF_INSN_LDBFI
, SEM_FN_NAME (frvbf
,ldbfi
) },
28243 { FRVBF_INSN_LDHFI
, SEM_FN_NAME (frvbf
,ldhfi
) },
28244 { FRVBF_INSN_LDFI
, SEM_FN_NAME (frvbf
,ldfi
) },
28245 { FRVBF_INSN_NLDSBI
, SEM_FN_NAME (frvbf
,nldsbi
) },
28246 { FRVBF_INSN_NLDUBI
, SEM_FN_NAME (frvbf
,nldubi
) },
28247 { FRVBF_INSN_NLDSHI
, SEM_FN_NAME (frvbf
,nldshi
) },
28248 { FRVBF_INSN_NLDUHI
, SEM_FN_NAME (frvbf
,nlduhi
) },
28249 { FRVBF_INSN_NLDI
, SEM_FN_NAME (frvbf
,nldi
) },
28250 { FRVBF_INSN_NLDBFI
, SEM_FN_NAME (frvbf
,nldbfi
) },
28251 { FRVBF_INSN_NLDHFI
, SEM_FN_NAME (frvbf
,nldhfi
) },
28252 { FRVBF_INSN_NLDFI
, SEM_FN_NAME (frvbf
,nldfi
) },
28253 { FRVBF_INSN_LDDI
, SEM_FN_NAME (frvbf
,lddi
) },
28254 { FRVBF_INSN_LDDFI
, SEM_FN_NAME (frvbf
,lddfi
) },
28255 { FRVBF_INSN_NLDDI
, SEM_FN_NAME (frvbf
,nlddi
) },
28256 { FRVBF_INSN_NLDDFI
, SEM_FN_NAME (frvbf
,nlddfi
) },
28257 { FRVBF_INSN_LDQI
, SEM_FN_NAME (frvbf
,ldqi
) },
28258 { FRVBF_INSN_LDQFI
, SEM_FN_NAME (frvbf
,ldqfi
) },
28259 { FRVBF_INSN_NLDQFI
, SEM_FN_NAME (frvbf
,nldqfi
) },
28260 { FRVBF_INSN_STB
, SEM_FN_NAME (frvbf
,stb
) },
28261 { FRVBF_INSN_STH
, SEM_FN_NAME (frvbf
,sth
) },
28262 { FRVBF_INSN_ST
, SEM_FN_NAME (frvbf
,st
) },
28263 { FRVBF_INSN_STBF
, SEM_FN_NAME (frvbf
,stbf
) },
28264 { FRVBF_INSN_STHF
, SEM_FN_NAME (frvbf
,sthf
) },
28265 { FRVBF_INSN_STF
, SEM_FN_NAME (frvbf
,stf
) },
28266 { FRVBF_INSN_STC
, SEM_FN_NAME (frvbf
,stc
) },
28267 { FRVBF_INSN_RSTB
, SEM_FN_NAME (frvbf
,rstb
) },
28268 { FRVBF_INSN_RSTH
, SEM_FN_NAME (frvbf
,rsth
) },
28269 { FRVBF_INSN_RST
, SEM_FN_NAME (frvbf
,rst
) },
28270 { FRVBF_INSN_RSTBF
, SEM_FN_NAME (frvbf
,rstbf
) },
28271 { FRVBF_INSN_RSTHF
, SEM_FN_NAME (frvbf
,rsthf
) },
28272 { FRVBF_INSN_RSTF
, SEM_FN_NAME (frvbf
,rstf
) },
28273 { FRVBF_INSN_STD
, SEM_FN_NAME (frvbf
,std
) },
28274 { FRVBF_INSN_STDF
, SEM_FN_NAME (frvbf
,stdf
) },
28275 { FRVBF_INSN_STDC
, SEM_FN_NAME (frvbf
,stdc
) },
28276 { FRVBF_INSN_RSTD
, SEM_FN_NAME (frvbf
,rstd
) },
28277 { FRVBF_INSN_RSTDF
, SEM_FN_NAME (frvbf
,rstdf
) },
28278 { FRVBF_INSN_STQ
, SEM_FN_NAME (frvbf
,stq
) },
28279 { FRVBF_INSN_STQF
, SEM_FN_NAME (frvbf
,stqf
) },
28280 { FRVBF_INSN_STQC
, SEM_FN_NAME (frvbf
,stqc
) },
28281 { FRVBF_INSN_RSTQ
, SEM_FN_NAME (frvbf
,rstq
) },
28282 { FRVBF_INSN_RSTQF
, SEM_FN_NAME (frvbf
,rstqf
) },
28283 { FRVBF_INSN_STBU
, SEM_FN_NAME (frvbf
,stbu
) },
28284 { FRVBF_INSN_STHU
, SEM_FN_NAME (frvbf
,sthu
) },
28285 { FRVBF_INSN_STU
, SEM_FN_NAME (frvbf
,stu
) },
28286 { FRVBF_INSN_STBFU
, SEM_FN_NAME (frvbf
,stbfu
) },
28287 { FRVBF_INSN_STHFU
, SEM_FN_NAME (frvbf
,sthfu
) },
28288 { FRVBF_INSN_STFU
, SEM_FN_NAME (frvbf
,stfu
) },
28289 { FRVBF_INSN_STCU
, SEM_FN_NAME (frvbf
,stcu
) },
28290 { FRVBF_INSN_STDU
, SEM_FN_NAME (frvbf
,stdu
) },
28291 { FRVBF_INSN_STDFU
, SEM_FN_NAME (frvbf
,stdfu
) },
28292 { FRVBF_INSN_STDCU
, SEM_FN_NAME (frvbf
,stdcu
) },
28293 { FRVBF_INSN_STQU
, SEM_FN_NAME (frvbf
,stqu
) },
28294 { FRVBF_INSN_STQFU
, SEM_FN_NAME (frvbf
,stqfu
) },
28295 { FRVBF_INSN_STQCU
, SEM_FN_NAME (frvbf
,stqcu
) },
28296 { FRVBF_INSN_CLDSB
, SEM_FN_NAME (frvbf
,cldsb
) },
28297 { FRVBF_INSN_CLDUB
, SEM_FN_NAME (frvbf
,cldub
) },
28298 { FRVBF_INSN_CLDSH
, SEM_FN_NAME (frvbf
,cldsh
) },
28299 { FRVBF_INSN_CLDUH
, SEM_FN_NAME (frvbf
,clduh
) },
28300 { FRVBF_INSN_CLD
, SEM_FN_NAME (frvbf
,cld
) },
28301 { FRVBF_INSN_CLDBF
, SEM_FN_NAME (frvbf
,cldbf
) },
28302 { FRVBF_INSN_CLDHF
, SEM_FN_NAME (frvbf
,cldhf
) },
28303 { FRVBF_INSN_CLDF
, SEM_FN_NAME (frvbf
,cldf
) },
28304 { FRVBF_INSN_CLDD
, SEM_FN_NAME (frvbf
,cldd
) },
28305 { FRVBF_INSN_CLDDF
, SEM_FN_NAME (frvbf
,clddf
) },
28306 { FRVBF_INSN_CLDQ
, SEM_FN_NAME (frvbf
,cldq
) },
28307 { FRVBF_INSN_CLDSBU
, SEM_FN_NAME (frvbf
,cldsbu
) },
28308 { FRVBF_INSN_CLDUBU
, SEM_FN_NAME (frvbf
,cldubu
) },
28309 { FRVBF_INSN_CLDSHU
, SEM_FN_NAME (frvbf
,cldshu
) },
28310 { FRVBF_INSN_CLDUHU
, SEM_FN_NAME (frvbf
,clduhu
) },
28311 { FRVBF_INSN_CLDU
, SEM_FN_NAME (frvbf
,cldu
) },
28312 { FRVBF_INSN_CLDBFU
, SEM_FN_NAME (frvbf
,cldbfu
) },
28313 { FRVBF_INSN_CLDHFU
, SEM_FN_NAME (frvbf
,cldhfu
) },
28314 { FRVBF_INSN_CLDFU
, SEM_FN_NAME (frvbf
,cldfu
) },
28315 { FRVBF_INSN_CLDDU
, SEM_FN_NAME (frvbf
,clddu
) },
28316 { FRVBF_INSN_CLDDFU
, SEM_FN_NAME (frvbf
,clddfu
) },
28317 { FRVBF_INSN_CLDQU
, SEM_FN_NAME (frvbf
,cldqu
) },
28318 { FRVBF_INSN_CSTB
, SEM_FN_NAME (frvbf
,cstb
) },
28319 { FRVBF_INSN_CSTH
, SEM_FN_NAME (frvbf
,csth
) },
28320 { FRVBF_INSN_CST
, SEM_FN_NAME (frvbf
,cst
) },
28321 { FRVBF_INSN_CSTBF
, SEM_FN_NAME (frvbf
,cstbf
) },
28322 { FRVBF_INSN_CSTHF
, SEM_FN_NAME (frvbf
,csthf
) },
28323 { FRVBF_INSN_CSTF
, SEM_FN_NAME (frvbf
,cstf
) },
28324 { FRVBF_INSN_CSTD
, SEM_FN_NAME (frvbf
,cstd
) },
28325 { FRVBF_INSN_CSTDF
, SEM_FN_NAME (frvbf
,cstdf
) },
28326 { FRVBF_INSN_CSTQ
, SEM_FN_NAME (frvbf
,cstq
) },
28327 { FRVBF_INSN_CSTBU
, SEM_FN_NAME (frvbf
,cstbu
) },
28328 { FRVBF_INSN_CSTHU
, SEM_FN_NAME (frvbf
,csthu
) },
28329 { FRVBF_INSN_CSTU
, SEM_FN_NAME (frvbf
,cstu
) },
28330 { FRVBF_INSN_CSTBFU
, SEM_FN_NAME (frvbf
,cstbfu
) },
28331 { FRVBF_INSN_CSTHFU
, SEM_FN_NAME (frvbf
,csthfu
) },
28332 { FRVBF_INSN_CSTFU
, SEM_FN_NAME (frvbf
,cstfu
) },
28333 { FRVBF_INSN_CSTDU
, SEM_FN_NAME (frvbf
,cstdu
) },
28334 { FRVBF_INSN_CSTDFU
, SEM_FN_NAME (frvbf
,cstdfu
) },
28335 { FRVBF_INSN_STBI
, SEM_FN_NAME (frvbf
,stbi
) },
28336 { FRVBF_INSN_STHI
, SEM_FN_NAME (frvbf
,sthi
) },
28337 { FRVBF_INSN_STI
, SEM_FN_NAME (frvbf
,sti
) },
28338 { FRVBF_INSN_STBFI
, SEM_FN_NAME (frvbf
,stbfi
) },
28339 { FRVBF_INSN_STHFI
, SEM_FN_NAME (frvbf
,sthfi
) },
28340 { FRVBF_INSN_STFI
, SEM_FN_NAME (frvbf
,stfi
) },
28341 { FRVBF_INSN_STDI
, SEM_FN_NAME (frvbf
,stdi
) },
28342 { FRVBF_INSN_STDFI
, SEM_FN_NAME (frvbf
,stdfi
) },
28343 { FRVBF_INSN_STQI
, SEM_FN_NAME (frvbf
,stqi
) },
28344 { FRVBF_INSN_STQFI
, SEM_FN_NAME (frvbf
,stqfi
) },
28345 { FRVBF_INSN_SWAP
, SEM_FN_NAME (frvbf
,swap
) },
28346 { FRVBF_INSN_SWAPI
, SEM_FN_NAME (frvbf
,swapi
) },
28347 { FRVBF_INSN_CSWAP
, SEM_FN_NAME (frvbf
,cswap
) },
28348 { FRVBF_INSN_MOVGF
, SEM_FN_NAME (frvbf
,movgf
) },
28349 { FRVBF_INSN_MOVFG
, SEM_FN_NAME (frvbf
,movfg
) },
28350 { FRVBF_INSN_MOVGFD
, SEM_FN_NAME (frvbf
,movgfd
) },
28351 { FRVBF_INSN_MOVFGD
, SEM_FN_NAME (frvbf
,movfgd
) },
28352 { FRVBF_INSN_MOVGFQ
, SEM_FN_NAME (frvbf
,movgfq
) },
28353 { FRVBF_INSN_MOVFGQ
, SEM_FN_NAME (frvbf
,movfgq
) },
28354 { FRVBF_INSN_CMOVGF
, SEM_FN_NAME (frvbf
,cmovgf
) },
28355 { FRVBF_INSN_CMOVFG
, SEM_FN_NAME (frvbf
,cmovfg
) },
28356 { FRVBF_INSN_CMOVGFD
, SEM_FN_NAME (frvbf
,cmovgfd
) },
28357 { FRVBF_INSN_CMOVFGD
, SEM_FN_NAME (frvbf
,cmovfgd
) },
28358 { FRVBF_INSN_MOVGS
, SEM_FN_NAME (frvbf
,movgs
) },
28359 { FRVBF_INSN_MOVSG
, SEM_FN_NAME (frvbf
,movsg
) },
28360 { FRVBF_INSN_BRA
, SEM_FN_NAME (frvbf
,bra
) },
28361 { FRVBF_INSN_BNO
, SEM_FN_NAME (frvbf
,bno
) },
28362 { FRVBF_INSN_BEQ
, SEM_FN_NAME (frvbf
,beq
) },
28363 { FRVBF_INSN_BNE
, SEM_FN_NAME (frvbf
,bne
) },
28364 { FRVBF_INSN_BLE
, SEM_FN_NAME (frvbf
,ble
) },
28365 { FRVBF_INSN_BGT
, SEM_FN_NAME (frvbf
,bgt
) },
28366 { FRVBF_INSN_BLT
, SEM_FN_NAME (frvbf
,blt
) },
28367 { FRVBF_INSN_BGE
, SEM_FN_NAME (frvbf
,bge
) },
28368 { FRVBF_INSN_BLS
, SEM_FN_NAME (frvbf
,bls
) },
28369 { FRVBF_INSN_BHI
, SEM_FN_NAME (frvbf
,bhi
) },
28370 { FRVBF_INSN_BC
, SEM_FN_NAME (frvbf
,bc
) },
28371 { FRVBF_INSN_BNC
, SEM_FN_NAME (frvbf
,bnc
) },
28372 { FRVBF_INSN_BN
, SEM_FN_NAME (frvbf
,bn
) },
28373 { FRVBF_INSN_BP
, SEM_FN_NAME (frvbf
,bp
) },
28374 { FRVBF_INSN_BV
, SEM_FN_NAME (frvbf
,bv
) },
28375 { FRVBF_INSN_BNV
, SEM_FN_NAME (frvbf
,bnv
) },
28376 { FRVBF_INSN_FBRA
, SEM_FN_NAME (frvbf
,fbra
) },
28377 { FRVBF_INSN_FBNO
, SEM_FN_NAME (frvbf
,fbno
) },
28378 { FRVBF_INSN_FBNE
, SEM_FN_NAME (frvbf
,fbne
) },
28379 { FRVBF_INSN_FBEQ
, SEM_FN_NAME (frvbf
,fbeq
) },
28380 { FRVBF_INSN_FBLG
, SEM_FN_NAME (frvbf
,fblg
) },
28381 { FRVBF_INSN_FBUE
, SEM_FN_NAME (frvbf
,fbue
) },
28382 { FRVBF_INSN_FBUL
, SEM_FN_NAME (frvbf
,fbul
) },
28383 { FRVBF_INSN_FBGE
, SEM_FN_NAME (frvbf
,fbge
) },
28384 { FRVBF_INSN_FBLT
, SEM_FN_NAME (frvbf
,fblt
) },
28385 { FRVBF_INSN_FBUGE
, SEM_FN_NAME (frvbf
,fbuge
) },
28386 { FRVBF_INSN_FBUG
, SEM_FN_NAME (frvbf
,fbug
) },
28387 { FRVBF_INSN_FBLE
, SEM_FN_NAME (frvbf
,fble
) },
28388 { FRVBF_INSN_FBGT
, SEM_FN_NAME (frvbf
,fbgt
) },
28389 { FRVBF_INSN_FBULE
, SEM_FN_NAME (frvbf
,fbule
) },
28390 { FRVBF_INSN_FBU
, SEM_FN_NAME (frvbf
,fbu
) },
28391 { FRVBF_INSN_FBO
, SEM_FN_NAME (frvbf
,fbo
) },
28392 { FRVBF_INSN_BCTRLR
, SEM_FN_NAME (frvbf
,bctrlr
) },
28393 { FRVBF_INSN_BRALR
, SEM_FN_NAME (frvbf
,bralr
) },
28394 { FRVBF_INSN_BNOLR
, SEM_FN_NAME (frvbf
,bnolr
) },
28395 { FRVBF_INSN_BEQLR
, SEM_FN_NAME (frvbf
,beqlr
) },
28396 { FRVBF_INSN_BNELR
, SEM_FN_NAME (frvbf
,bnelr
) },
28397 { FRVBF_INSN_BLELR
, SEM_FN_NAME (frvbf
,blelr
) },
28398 { FRVBF_INSN_BGTLR
, SEM_FN_NAME (frvbf
,bgtlr
) },
28399 { FRVBF_INSN_BLTLR
, SEM_FN_NAME (frvbf
,bltlr
) },
28400 { FRVBF_INSN_BGELR
, SEM_FN_NAME (frvbf
,bgelr
) },
28401 { FRVBF_INSN_BLSLR
, SEM_FN_NAME (frvbf
,blslr
) },
28402 { FRVBF_INSN_BHILR
, SEM_FN_NAME (frvbf
,bhilr
) },
28403 { FRVBF_INSN_BCLR
, SEM_FN_NAME (frvbf
,bclr
) },
28404 { FRVBF_INSN_BNCLR
, SEM_FN_NAME (frvbf
,bnclr
) },
28405 { FRVBF_INSN_BNLR
, SEM_FN_NAME (frvbf
,bnlr
) },
28406 { FRVBF_INSN_BPLR
, SEM_FN_NAME (frvbf
,bplr
) },
28407 { FRVBF_INSN_BVLR
, SEM_FN_NAME (frvbf
,bvlr
) },
28408 { FRVBF_INSN_BNVLR
, SEM_FN_NAME (frvbf
,bnvlr
) },
28409 { FRVBF_INSN_FBRALR
, SEM_FN_NAME (frvbf
,fbralr
) },
28410 { FRVBF_INSN_FBNOLR
, SEM_FN_NAME (frvbf
,fbnolr
) },
28411 { FRVBF_INSN_FBEQLR
, SEM_FN_NAME (frvbf
,fbeqlr
) },
28412 { FRVBF_INSN_FBNELR
, SEM_FN_NAME (frvbf
,fbnelr
) },
28413 { FRVBF_INSN_FBLGLR
, SEM_FN_NAME (frvbf
,fblglr
) },
28414 { FRVBF_INSN_FBUELR
, SEM_FN_NAME (frvbf
,fbuelr
) },
28415 { FRVBF_INSN_FBULLR
, SEM_FN_NAME (frvbf
,fbullr
) },
28416 { FRVBF_INSN_FBGELR
, SEM_FN_NAME (frvbf
,fbgelr
) },
28417 { FRVBF_INSN_FBLTLR
, SEM_FN_NAME (frvbf
,fbltlr
) },
28418 { FRVBF_INSN_FBUGELR
, SEM_FN_NAME (frvbf
,fbugelr
) },
28419 { FRVBF_INSN_FBUGLR
, SEM_FN_NAME (frvbf
,fbuglr
) },
28420 { FRVBF_INSN_FBLELR
, SEM_FN_NAME (frvbf
,fblelr
) },
28421 { FRVBF_INSN_FBGTLR
, SEM_FN_NAME (frvbf
,fbgtlr
) },
28422 { FRVBF_INSN_FBULELR
, SEM_FN_NAME (frvbf
,fbulelr
) },
28423 { FRVBF_INSN_FBULR
, SEM_FN_NAME (frvbf
,fbulr
) },
28424 { FRVBF_INSN_FBOLR
, SEM_FN_NAME (frvbf
,fbolr
) },
28425 { FRVBF_INSN_BCRALR
, SEM_FN_NAME (frvbf
,bcralr
) },
28426 { FRVBF_INSN_BCNOLR
, SEM_FN_NAME (frvbf
,bcnolr
) },
28427 { FRVBF_INSN_BCEQLR
, SEM_FN_NAME (frvbf
,bceqlr
) },
28428 { FRVBF_INSN_BCNELR
, SEM_FN_NAME (frvbf
,bcnelr
) },
28429 { FRVBF_INSN_BCLELR
, SEM_FN_NAME (frvbf
,bclelr
) },
28430 { FRVBF_INSN_BCGTLR
, SEM_FN_NAME (frvbf
,bcgtlr
) },
28431 { FRVBF_INSN_BCLTLR
, SEM_FN_NAME (frvbf
,bcltlr
) },
28432 { FRVBF_INSN_BCGELR
, SEM_FN_NAME (frvbf
,bcgelr
) },
28433 { FRVBF_INSN_BCLSLR
, SEM_FN_NAME (frvbf
,bclslr
) },
28434 { FRVBF_INSN_BCHILR
, SEM_FN_NAME (frvbf
,bchilr
) },
28435 { FRVBF_INSN_BCCLR
, SEM_FN_NAME (frvbf
,bcclr
) },
28436 { FRVBF_INSN_BCNCLR
, SEM_FN_NAME (frvbf
,bcnclr
) },
28437 { FRVBF_INSN_BCNLR
, SEM_FN_NAME (frvbf
,bcnlr
) },
28438 { FRVBF_INSN_BCPLR
, SEM_FN_NAME (frvbf
,bcplr
) },
28439 { FRVBF_INSN_BCVLR
, SEM_FN_NAME (frvbf
,bcvlr
) },
28440 { FRVBF_INSN_BCNVLR
, SEM_FN_NAME (frvbf
,bcnvlr
) },
28441 { FRVBF_INSN_FCBRALR
, SEM_FN_NAME (frvbf
,fcbralr
) },
28442 { FRVBF_INSN_FCBNOLR
, SEM_FN_NAME (frvbf
,fcbnolr
) },
28443 { FRVBF_INSN_FCBEQLR
, SEM_FN_NAME (frvbf
,fcbeqlr
) },
28444 { FRVBF_INSN_FCBNELR
, SEM_FN_NAME (frvbf
,fcbnelr
) },
28445 { FRVBF_INSN_FCBLGLR
, SEM_FN_NAME (frvbf
,fcblglr
) },
28446 { FRVBF_INSN_FCBUELR
, SEM_FN_NAME (frvbf
,fcbuelr
) },
28447 { FRVBF_INSN_FCBULLR
, SEM_FN_NAME (frvbf
,fcbullr
) },
28448 { FRVBF_INSN_FCBGELR
, SEM_FN_NAME (frvbf
,fcbgelr
) },
28449 { FRVBF_INSN_FCBLTLR
, SEM_FN_NAME (frvbf
,fcbltlr
) },
28450 { FRVBF_INSN_FCBUGELR
, SEM_FN_NAME (frvbf
,fcbugelr
) },
28451 { FRVBF_INSN_FCBUGLR
, SEM_FN_NAME (frvbf
,fcbuglr
) },
28452 { FRVBF_INSN_FCBLELR
, SEM_FN_NAME (frvbf
,fcblelr
) },
28453 { FRVBF_INSN_FCBGTLR
, SEM_FN_NAME (frvbf
,fcbgtlr
) },
28454 { FRVBF_INSN_FCBULELR
, SEM_FN_NAME (frvbf
,fcbulelr
) },
28455 { FRVBF_INSN_FCBULR
, SEM_FN_NAME (frvbf
,fcbulr
) },
28456 { FRVBF_INSN_FCBOLR
, SEM_FN_NAME (frvbf
,fcbolr
) },
28457 { FRVBF_INSN_JMPL
, SEM_FN_NAME (frvbf
,jmpl
) },
28458 { FRVBF_INSN_CALLL
, SEM_FN_NAME (frvbf
,calll
) },
28459 { FRVBF_INSN_JMPIL
, SEM_FN_NAME (frvbf
,jmpil
) },
28460 { FRVBF_INSN_CALLIL
, SEM_FN_NAME (frvbf
,callil
) },
28461 { FRVBF_INSN_CALL
, SEM_FN_NAME (frvbf
,call
) },
28462 { FRVBF_INSN_RETT
, SEM_FN_NAME (frvbf
,rett
) },
28463 { FRVBF_INSN_REI
, SEM_FN_NAME (frvbf
,rei
) },
28464 { FRVBF_INSN_TRA
, SEM_FN_NAME (frvbf
,tra
) },
28465 { FRVBF_INSN_TNO
, SEM_FN_NAME (frvbf
,tno
) },
28466 { FRVBF_INSN_TEQ
, SEM_FN_NAME (frvbf
,teq
) },
28467 { FRVBF_INSN_TNE
, SEM_FN_NAME (frvbf
,tne
) },
28468 { FRVBF_INSN_TLE
, SEM_FN_NAME (frvbf
,tle
) },
28469 { FRVBF_INSN_TGT
, SEM_FN_NAME (frvbf
,tgt
) },
28470 { FRVBF_INSN_TLT
, SEM_FN_NAME (frvbf
,tlt
) },
28471 { FRVBF_INSN_TGE
, SEM_FN_NAME (frvbf
,tge
) },
28472 { FRVBF_INSN_TLS
, SEM_FN_NAME (frvbf
,tls
) },
28473 { FRVBF_INSN_THI
, SEM_FN_NAME (frvbf
,thi
) },
28474 { FRVBF_INSN_TC
, SEM_FN_NAME (frvbf
,tc
) },
28475 { FRVBF_INSN_TNC
, SEM_FN_NAME (frvbf
,tnc
) },
28476 { FRVBF_INSN_TN
, SEM_FN_NAME (frvbf
,tn
) },
28477 { FRVBF_INSN_TP
, SEM_FN_NAME (frvbf
,tp
) },
28478 { FRVBF_INSN_TV
, SEM_FN_NAME (frvbf
,tv
) },
28479 { FRVBF_INSN_TNV
, SEM_FN_NAME (frvbf
,tnv
) },
28480 { FRVBF_INSN_FTRA
, SEM_FN_NAME (frvbf
,ftra
) },
28481 { FRVBF_INSN_FTNO
, SEM_FN_NAME (frvbf
,ftno
) },
28482 { FRVBF_INSN_FTNE
, SEM_FN_NAME (frvbf
,ftne
) },
28483 { FRVBF_INSN_FTEQ
, SEM_FN_NAME (frvbf
,fteq
) },
28484 { FRVBF_INSN_FTLG
, SEM_FN_NAME (frvbf
,ftlg
) },
28485 { FRVBF_INSN_FTUE
, SEM_FN_NAME (frvbf
,ftue
) },
28486 { FRVBF_INSN_FTUL
, SEM_FN_NAME (frvbf
,ftul
) },
28487 { FRVBF_INSN_FTGE
, SEM_FN_NAME (frvbf
,ftge
) },
28488 { FRVBF_INSN_FTLT
, SEM_FN_NAME (frvbf
,ftlt
) },
28489 { FRVBF_INSN_FTUGE
, SEM_FN_NAME (frvbf
,ftuge
) },
28490 { FRVBF_INSN_FTUG
, SEM_FN_NAME (frvbf
,ftug
) },
28491 { FRVBF_INSN_FTLE
, SEM_FN_NAME (frvbf
,ftle
) },
28492 { FRVBF_INSN_FTGT
, SEM_FN_NAME (frvbf
,ftgt
) },
28493 { FRVBF_INSN_FTULE
, SEM_FN_NAME (frvbf
,ftule
) },
28494 { FRVBF_INSN_FTU
, SEM_FN_NAME (frvbf
,ftu
) },
28495 { FRVBF_INSN_FTO
, SEM_FN_NAME (frvbf
,fto
) },
28496 { FRVBF_INSN_TIRA
, SEM_FN_NAME (frvbf
,tira
) },
28497 { FRVBF_INSN_TINO
, SEM_FN_NAME (frvbf
,tino
) },
28498 { FRVBF_INSN_TIEQ
, SEM_FN_NAME (frvbf
,tieq
) },
28499 { FRVBF_INSN_TINE
, SEM_FN_NAME (frvbf
,tine
) },
28500 { FRVBF_INSN_TILE
, SEM_FN_NAME (frvbf
,tile
) },
28501 { FRVBF_INSN_TIGT
, SEM_FN_NAME (frvbf
,tigt
) },
28502 { FRVBF_INSN_TILT
, SEM_FN_NAME (frvbf
,tilt
) },
28503 { FRVBF_INSN_TIGE
, SEM_FN_NAME (frvbf
,tige
) },
28504 { FRVBF_INSN_TILS
, SEM_FN_NAME (frvbf
,tils
) },
28505 { FRVBF_INSN_TIHI
, SEM_FN_NAME (frvbf
,tihi
) },
28506 { FRVBF_INSN_TIC
, SEM_FN_NAME (frvbf
,tic
) },
28507 { FRVBF_INSN_TINC
, SEM_FN_NAME (frvbf
,tinc
) },
28508 { FRVBF_INSN_TIN
, SEM_FN_NAME (frvbf
,tin
) },
28509 { FRVBF_INSN_TIP
, SEM_FN_NAME (frvbf
,tip
) },
28510 { FRVBF_INSN_TIV
, SEM_FN_NAME (frvbf
,tiv
) },
28511 { FRVBF_INSN_TINV
, SEM_FN_NAME (frvbf
,tinv
) },
28512 { FRVBF_INSN_FTIRA
, SEM_FN_NAME (frvbf
,ftira
) },
28513 { FRVBF_INSN_FTINO
, SEM_FN_NAME (frvbf
,ftino
) },
28514 { FRVBF_INSN_FTINE
, SEM_FN_NAME (frvbf
,ftine
) },
28515 { FRVBF_INSN_FTIEQ
, SEM_FN_NAME (frvbf
,ftieq
) },
28516 { FRVBF_INSN_FTILG
, SEM_FN_NAME (frvbf
,ftilg
) },
28517 { FRVBF_INSN_FTIUE
, SEM_FN_NAME (frvbf
,ftiue
) },
28518 { FRVBF_INSN_FTIUL
, SEM_FN_NAME (frvbf
,ftiul
) },
28519 { FRVBF_INSN_FTIGE
, SEM_FN_NAME (frvbf
,ftige
) },
28520 { FRVBF_INSN_FTILT
, SEM_FN_NAME (frvbf
,ftilt
) },
28521 { FRVBF_INSN_FTIUGE
, SEM_FN_NAME (frvbf
,ftiuge
) },
28522 { FRVBF_INSN_FTIUG
, SEM_FN_NAME (frvbf
,ftiug
) },
28523 { FRVBF_INSN_FTILE
, SEM_FN_NAME (frvbf
,ftile
) },
28524 { FRVBF_INSN_FTIGT
, SEM_FN_NAME (frvbf
,ftigt
) },
28525 { FRVBF_INSN_FTIULE
, SEM_FN_NAME (frvbf
,ftiule
) },
28526 { FRVBF_INSN_FTIU
, SEM_FN_NAME (frvbf
,ftiu
) },
28527 { FRVBF_INSN_FTIO
, SEM_FN_NAME (frvbf
,ftio
) },
28528 { FRVBF_INSN_BREAK
, SEM_FN_NAME (frvbf
,break) },
28529 { FRVBF_INSN_MTRAP
, SEM_FN_NAME (frvbf
,mtrap
) },
28530 { FRVBF_INSN_ANDCR
, SEM_FN_NAME (frvbf
,andcr
) },
28531 { FRVBF_INSN_ORCR
, SEM_FN_NAME (frvbf
,orcr
) },
28532 { FRVBF_INSN_XORCR
, SEM_FN_NAME (frvbf
,xorcr
) },
28533 { FRVBF_INSN_NANDCR
, SEM_FN_NAME (frvbf
,nandcr
) },
28534 { FRVBF_INSN_NORCR
, SEM_FN_NAME (frvbf
,norcr
) },
28535 { FRVBF_INSN_ANDNCR
, SEM_FN_NAME (frvbf
,andncr
) },
28536 { FRVBF_INSN_ORNCR
, SEM_FN_NAME (frvbf
,orncr
) },
28537 { FRVBF_INSN_NANDNCR
, SEM_FN_NAME (frvbf
,nandncr
) },
28538 { FRVBF_INSN_NORNCR
, SEM_FN_NAME (frvbf
,norncr
) },
28539 { FRVBF_INSN_NOTCR
, SEM_FN_NAME (frvbf
,notcr
) },
28540 { FRVBF_INSN_CKRA
, SEM_FN_NAME (frvbf
,ckra
) },
28541 { FRVBF_INSN_CKNO
, SEM_FN_NAME (frvbf
,ckno
) },
28542 { FRVBF_INSN_CKEQ
, SEM_FN_NAME (frvbf
,ckeq
) },
28543 { FRVBF_INSN_CKNE
, SEM_FN_NAME (frvbf
,ckne
) },
28544 { FRVBF_INSN_CKLE
, SEM_FN_NAME (frvbf
,ckle
) },
28545 { FRVBF_INSN_CKGT
, SEM_FN_NAME (frvbf
,ckgt
) },
28546 { FRVBF_INSN_CKLT
, SEM_FN_NAME (frvbf
,cklt
) },
28547 { FRVBF_INSN_CKGE
, SEM_FN_NAME (frvbf
,ckge
) },
28548 { FRVBF_INSN_CKLS
, SEM_FN_NAME (frvbf
,ckls
) },
28549 { FRVBF_INSN_CKHI
, SEM_FN_NAME (frvbf
,ckhi
) },
28550 { FRVBF_INSN_CKC
, SEM_FN_NAME (frvbf
,ckc
) },
28551 { FRVBF_INSN_CKNC
, SEM_FN_NAME (frvbf
,cknc
) },
28552 { FRVBF_INSN_CKN
, SEM_FN_NAME (frvbf
,ckn
) },
28553 { FRVBF_INSN_CKP
, SEM_FN_NAME (frvbf
,ckp
) },
28554 { FRVBF_INSN_CKV
, SEM_FN_NAME (frvbf
,ckv
) },
28555 { FRVBF_INSN_CKNV
, SEM_FN_NAME (frvbf
,cknv
) },
28556 { FRVBF_INSN_FCKRA
, SEM_FN_NAME (frvbf
,fckra
) },
28557 { FRVBF_INSN_FCKNO
, SEM_FN_NAME (frvbf
,fckno
) },
28558 { FRVBF_INSN_FCKNE
, SEM_FN_NAME (frvbf
,fckne
) },
28559 { FRVBF_INSN_FCKEQ
, SEM_FN_NAME (frvbf
,fckeq
) },
28560 { FRVBF_INSN_FCKLG
, SEM_FN_NAME (frvbf
,fcklg
) },
28561 { FRVBF_INSN_FCKUE
, SEM_FN_NAME (frvbf
,fckue
) },
28562 { FRVBF_INSN_FCKUL
, SEM_FN_NAME (frvbf
,fckul
) },
28563 { FRVBF_INSN_FCKGE
, SEM_FN_NAME (frvbf
,fckge
) },
28564 { FRVBF_INSN_FCKLT
, SEM_FN_NAME (frvbf
,fcklt
) },
28565 { FRVBF_INSN_FCKUGE
, SEM_FN_NAME (frvbf
,fckuge
) },
28566 { FRVBF_INSN_FCKUG
, SEM_FN_NAME (frvbf
,fckug
) },
28567 { FRVBF_INSN_FCKLE
, SEM_FN_NAME (frvbf
,fckle
) },
28568 { FRVBF_INSN_FCKGT
, SEM_FN_NAME (frvbf
,fckgt
) },
28569 { FRVBF_INSN_FCKULE
, SEM_FN_NAME (frvbf
,fckule
) },
28570 { FRVBF_INSN_FCKU
, SEM_FN_NAME (frvbf
,fcku
) },
28571 { FRVBF_INSN_FCKO
, SEM_FN_NAME (frvbf
,fcko
) },
28572 { FRVBF_INSN_CCKRA
, SEM_FN_NAME (frvbf
,cckra
) },
28573 { FRVBF_INSN_CCKNO
, SEM_FN_NAME (frvbf
,cckno
) },
28574 { FRVBF_INSN_CCKEQ
, SEM_FN_NAME (frvbf
,cckeq
) },
28575 { FRVBF_INSN_CCKNE
, SEM_FN_NAME (frvbf
,cckne
) },
28576 { FRVBF_INSN_CCKLE
, SEM_FN_NAME (frvbf
,cckle
) },
28577 { FRVBF_INSN_CCKGT
, SEM_FN_NAME (frvbf
,cckgt
) },
28578 { FRVBF_INSN_CCKLT
, SEM_FN_NAME (frvbf
,ccklt
) },
28579 { FRVBF_INSN_CCKGE
, SEM_FN_NAME (frvbf
,cckge
) },
28580 { FRVBF_INSN_CCKLS
, SEM_FN_NAME (frvbf
,cckls
) },
28581 { FRVBF_INSN_CCKHI
, SEM_FN_NAME (frvbf
,cckhi
) },
28582 { FRVBF_INSN_CCKC
, SEM_FN_NAME (frvbf
,cckc
) },
28583 { FRVBF_INSN_CCKNC
, SEM_FN_NAME (frvbf
,ccknc
) },
28584 { FRVBF_INSN_CCKN
, SEM_FN_NAME (frvbf
,cckn
) },
28585 { FRVBF_INSN_CCKP
, SEM_FN_NAME (frvbf
,cckp
) },
28586 { FRVBF_INSN_CCKV
, SEM_FN_NAME (frvbf
,cckv
) },
28587 { FRVBF_INSN_CCKNV
, SEM_FN_NAME (frvbf
,ccknv
) },
28588 { FRVBF_INSN_CFCKRA
, SEM_FN_NAME (frvbf
,cfckra
) },
28589 { FRVBF_INSN_CFCKNO
, SEM_FN_NAME (frvbf
,cfckno
) },
28590 { FRVBF_INSN_CFCKNE
, SEM_FN_NAME (frvbf
,cfckne
) },
28591 { FRVBF_INSN_CFCKEQ
, SEM_FN_NAME (frvbf
,cfckeq
) },
28592 { FRVBF_INSN_CFCKLG
, SEM_FN_NAME (frvbf
,cfcklg
) },
28593 { FRVBF_INSN_CFCKUE
, SEM_FN_NAME (frvbf
,cfckue
) },
28594 { FRVBF_INSN_CFCKUL
, SEM_FN_NAME (frvbf
,cfckul
) },
28595 { FRVBF_INSN_CFCKGE
, SEM_FN_NAME (frvbf
,cfckge
) },
28596 { FRVBF_INSN_CFCKLT
, SEM_FN_NAME (frvbf
,cfcklt
) },
28597 { FRVBF_INSN_CFCKUGE
, SEM_FN_NAME (frvbf
,cfckuge
) },
28598 { FRVBF_INSN_CFCKUG
, SEM_FN_NAME (frvbf
,cfckug
) },
28599 { FRVBF_INSN_CFCKLE
, SEM_FN_NAME (frvbf
,cfckle
) },
28600 { FRVBF_INSN_CFCKGT
, SEM_FN_NAME (frvbf
,cfckgt
) },
28601 { FRVBF_INSN_CFCKULE
, SEM_FN_NAME (frvbf
,cfckule
) },
28602 { FRVBF_INSN_CFCKU
, SEM_FN_NAME (frvbf
,cfcku
) },
28603 { FRVBF_INSN_CFCKO
, SEM_FN_NAME (frvbf
,cfcko
) },
28604 { FRVBF_INSN_CJMPL
, SEM_FN_NAME (frvbf
,cjmpl
) },
28605 { FRVBF_INSN_CCALLL
, SEM_FN_NAME (frvbf
,ccalll
) },
28606 { FRVBF_INSN_ICI
, SEM_FN_NAME (frvbf
,ici
) },
28607 { FRVBF_INSN_DCI
, SEM_FN_NAME (frvbf
,dci
) },
28608 { FRVBF_INSN_ICEI
, SEM_FN_NAME (frvbf
,icei
) },
28609 { FRVBF_INSN_DCEI
, SEM_FN_NAME (frvbf
,dcei
) },
28610 { FRVBF_INSN_DCF
, SEM_FN_NAME (frvbf
,dcf
) },
28611 { FRVBF_INSN_DCEF
, SEM_FN_NAME (frvbf
,dcef
) },
28612 { FRVBF_INSN_WITLB
, SEM_FN_NAME (frvbf
,witlb
) },
28613 { FRVBF_INSN_WDTLB
, SEM_FN_NAME (frvbf
,wdtlb
) },
28614 { FRVBF_INSN_ITLBI
, SEM_FN_NAME (frvbf
,itlbi
) },
28615 { FRVBF_INSN_DTLBI
, SEM_FN_NAME (frvbf
,dtlbi
) },
28616 { FRVBF_INSN_ICPL
, SEM_FN_NAME (frvbf
,icpl
) },
28617 { FRVBF_INSN_DCPL
, SEM_FN_NAME (frvbf
,dcpl
) },
28618 { FRVBF_INSN_ICUL
, SEM_FN_NAME (frvbf
,icul
) },
28619 { FRVBF_INSN_DCUL
, SEM_FN_NAME (frvbf
,dcul
) },
28620 { FRVBF_INSN_BAR
, SEM_FN_NAME (frvbf
,bar
) },
28621 { FRVBF_INSN_MEMBAR
, SEM_FN_NAME (frvbf
,membar
) },
28622 { FRVBF_INSN_COP1
, SEM_FN_NAME (frvbf
,cop1
) },
28623 { FRVBF_INSN_COP2
, SEM_FN_NAME (frvbf
,cop2
) },
28624 { FRVBF_INSN_CLRGR
, SEM_FN_NAME (frvbf
,clrgr
) },
28625 { FRVBF_INSN_CLRFR
, SEM_FN_NAME (frvbf
,clrfr
) },
28626 { FRVBF_INSN_CLRGA
, SEM_FN_NAME (frvbf
,clrga
) },
28627 { FRVBF_INSN_CLRFA
, SEM_FN_NAME (frvbf
,clrfa
) },
28628 { FRVBF_INSN_COMMITGR
, SEM_FN_NAME (frvbf
,commitgr
) },
28629 { FRVBF_INSN_COMMITFR
, SEM_FN_NAME (frvbf
,commitfr
) },
28630 { FRVBF_INSN_COMMITGA
, SEM_FN_NAME (frvbf
,commitga
) },
28631 { FRVBF_INSN_COMMITFA
, SEM_FN_NAME (frvbf
,commitfa
) },
28632 { FRVBF_INSN_FITOS
, SEM_FN_NAME (frvbf
,fitos
) },
28633 { FRVBF_INSN_FSTOI
, SEM_FN_NAME (frvbf
,fstoi
) },
28634 { FRVBF_INSN_FITOD
, SEM_FN_NAME (frvbf
,fitod
) },
28635 { FRVBF_INSN_FDTOI
, SEM_FN_NAME (frvbf
,fdtoi
) },
28636 { FRVBF_INSN_FDITOS
, SEM_FN_NAME (frvbf
,fditos
) },
28637 { FRVBF_INSN_FDSTOI
, SEM_FN_NAME (frvbf
,fdstoi
) },
28638 { FRVBF_INSN_NFDITOS
, SEM_FN_NAME (frvbf
,nfditos
) },
28639 { FRVBF_INSN_NFDSTOI
, SEM_FN_NAME (frvbf
,nfdstoi
) },
28640 { FRVBF_INSN_CFITOS
, SEM_FN_NAME (frvbf
,cfitos
) },
28641 { FRVBF_INSN_CFSTOI
, SEM_FN_NAME (frvbf
,cfstoi
) },
28642 { FRVBF_INSN_NFITOS
, SEM_FN_NAME (frvbf
,nfitos
) },
28643 { FRVBF_INSN_NFSTOI
, SEM_FN_NAME (frvbf
,nfstoi
) },
28644 { FRVBF_INSN_FMOVS
, SEM_FN_NAME (frvbf
,fmovs
) },
28645 { FRVBF_INSN_FMOVD
, SEM_FN_NAME (frvbf
,fmovd
) },
28646 { FRVBF_INSN_FDMOVS
, SEM_FN_NAME (frvbf
,fdmovs
) },
28647 { FRVBF_INSN_CFMOVS
, SEM_FN_NAME (frvbf
,cfmovs
) },
28648 { FRVBF_INSN_FNEGS
, SEM_FN_NAME (frvbf
,fnegs
) },
28649 { FRVBF_INSN_FNEGD
, SEM_FN_NAME (frvbf
,fnegd
) },
28650 { FRVBF_INSN_FDNEGS
, SEM_FN_NAME (frvbf
,fdnegs
) },
28651 { FRVBF_INSN_CFNEGS
, SEM_FN_NAME (frvbf
,cfnegs
) },
28652 { FRVBF_INSN_FABSS
, SEM_FN_NAME (frvbf
,fabss
) },
28653 { FRVBF_INSN_FABSD
, SEM_FN_NAME (frvbf
,fabsd
) },
28654 { FRVBF_INSN_FDABSS
, SEM_FN_NAME (frvbf
,fdabss
) },
28655 { FRVBF_INSN_CFABSS
, SEM_FN_NAME (frvbf
,cfabss
) },
28656 { FRVBF_INSN_FSQRTS
, SEM_FN_NAME (frvbf
,fsqrts
) },
28657 { FRVBF_INSN_FDSQRTS
, SEM_FN_NAME (frvbf
,fdsqrts
) },
28658 { FRVBF_INSN_NFDSQRTS
, SEM_FN_NAME (frvbf
,nfdsqrts
) },
28659 { FRVBF_INSN_FSQRTD
, SEM_FN_NAME (frvbf
,fsqrtd
) },
28660 { FRVBF_INSN_CFSQRTS
, SEM_FN_NAME (frvbf
,cfsqrts
) },
28661 { FRVBF_INSN_NFSQRTS
, SEM_FN_NAME (frvbf
,nfsqrts
) },
28662 { FRVBF_INSN_FADDS
, SEM_FN_NAME (frvbf
,fadds
) },
28663 { FRVBF_INSN_FSUBS
, SEM_FN_NAME (frvbf
,fsubs
) },
28664 { FRVBF_INSN_FMULS
, SEM_FN_NAME (frvbf
,fmuls
) },
28665 { FRVBF_INSN_FDIVS
, SEM_FN_NAME (frvbf
,fdivs
) },
28666 { FRVBF_INSN_FADDD
, SEM_FN_NAME (frvbf
,faddd
) },
28667 { FRVBF_INSN_FSUBD
, SEM_FN_NAME (frvbf
,fsubd
) },
28668 { FRVBF_INSN_FMULD
, SEM_FN_NAME (frvbf
,fmuld
) },
28669 { FRVBF_INSN_FDIVD
, SEM_FN_NAME (frvbf
,fdivd
) },
28670 { FRVBF_INSN_CFADDS
, SEM_FN_NAME (frvbf
,cfadds
) },
28671 { FRVBF_INSN_CFSUBS
, SEM_FN_NAME (frvbf
,cfsubs
) },
28672 { FRVBF_INSN_CFMULS
, SEM_FN_NAME (frvbf
,cfmuls
) },
28673 { FRVBF_INSN_CFDIVS
, SEM_FN_NAME (frvbf
,cfdivs
) },
28674 { FRVBF_INSN_NFADDS
, SEM_FN_NAME (frvbf
,nfadds
) },
28675 { FRVBF_INSN_NFSUBS
, SEM_FN_NAME (frvbf
,nfsubs
) },
28676 { FRVBF_INSN_NFMULS
, SEM_FN_NAME (frvbf
,nfmuls
) },
28677 { FRVBF_INSN_NFDIVS
, SEM_FN_NAME (frvbf
,nfdivs
) },
28678 { FRVBF_INSN_FCMPS
, SEM_FN_NAME (frvbf
,fcmps
) },
28679 { FRVBF_INSN_FCMPD
, SEM_FN_NAME (frvbf
,fcmpd
) },
28680 { FRVBF_INSN_CFCMPS
, SEM_FN_NAME (frvbf
,cfcmps
) },
28681 { FRVBF_INSN_FDCMPS
, SEM_FN_NAME (frvbf
,fdcmps
) },
28682 { FRVBF_INSN_FMADDS
, SEM_FN_NAME (frvbf
,fmadds
) },
28683 { FRVBF_INSN_FMSUBS
, SEM_FN_NAME (frvbf
,fmsubs
) },
28684 { FRVBF_INSN_FMADDD
, SEM_FN_NAME (frvbf
,fmaddd
) },
28685 { FRVBF_INSN_FMSUBD
, SEM_FN_NAME (frvbf
,fmsubd
) },
28686 { FRVBF_INSN_FDMADDS
, SEM_FN_NAME (frvbf
,fdmadds
) },
28687 { FRVBF_INSN_NFDMADDS
, SEM_FN_NAME (frvbf
,nfdmadds
) },
28688 { FRVBF_INSN_CFMADDS
, SEM_FN_NAME (frvbf
,cfmadds
) },
28689 { FRVBF_INSN_CFMSUBS
, SEM_FN_NAME (frvbf
,cfmsubs
) },
28690 { FRVBF_INSN_NFMADDS
, SEM_FN_NAME (frvbf
,nfmadds
) },
28691 { FRVBF_INSN_NFMSUBS
, SEM_FN_NAME (frvbf
,nfmsubs
) },
28692 { FRVBF_INSN_FMAS
, SEM_FN_NAME (frvbf
,fmas
) },
28693 { FRVBF_INSN_FMSS
, SEM_FN_NAME (frvbf
,fmss
) },
28694 { FRVBF_INSN_FDMAS
, SEM_FN_NAME (frvbf
,fdmas
) },
28695 { FRVBF_INSN_FDMSS
, SEM_FN_NAME (frvbf
,fdmss
) },
28696 { FRVBF_INSN_NFDMAS
, SEM_FN_NAME (frvbf
,nfdmas
) },
28697 { FRVBF_INSN_NFDMSS
, SEM_FN_NAME (frvbf
,nfdmss
) },
28698 { FRVBF_INSN_CFMAS
, SEM_FN_NAME (frvbf
,cfmas
) },
28699 { FRVBF_INSN_CFMSS
, SEM_FN_NAME (frvbf
,cfmss
) },
28700 { FRVBF_INSN_FMAD
, SEM_FN_NAME (frvbf
,fmad
) },
28701 { FRVBF_INSN_FMSD
, SEM_FN_NAME (frvbf
,fmsd
) },
28702 { FRVBF_INSN_NFMAS
, SEM_FN_NAME (frvbf
,nfmas
) },
28703 { FRVBF_INSN_NFMSS
, SEM_FN_NAME (frvbf
,nfmss
) },
28704 { FRVBF_INSN_FDADDS
, SEM_FN_NAME (frvbf
,fdadds
) },
28705 { FRVBF_INSN_FDSUBS
, SEM_FN_NAME (frvbf
,fdsubs
) },
28706 { FRVBF_INSN_FDMULS
, SEM_FN_NAME (frvbf
,fdmuls
) },
28707 { FRVBF_INSN_FDDIVS
, SEM_FN_NAME (frvbf
,fddivs
) },
28708 { FRVBF_INSN_FDSADS
, SEM_FN_NAME (frvbf
,fdsads
) },
28709 { FRVBF_INSN_FDMULCS
, SEM_FN_NAME (frvbf
,fdmulcs
) },
28710 { FRVBF_INSN_NFDMULCS
, SEM_FN_NAME (frvbf
,nfdmulcs
) },
28711 { FRVBF_INSN_NFDADDS
, SEM_FN_NAME (frvbf
,nfdadds
) },
28712 { FRVBF_INSN_NFDSUBS
, SEM_FN_NAME (frvbf
,nfdsubs
) },
28713 { FRVBF_INSN_NFDMULS
, SEM_FN_NAME (frvbf
,nfdmuls
) },
28714 { FRVBF_INSN_NFDDIVS
, SEM_FN_NAME (frvbf
,nfddivs
) },
28715 { FRVBF_INSN_NFDSADS
, SEM_FN_NAME (frvbf
,nfdsads
) },
28716 { FRVBF_INSN_NFDCMPS
, SEM_FN_NAME (frvbf
,nfdcmps
) },
28717 { FRVBF_INSN_MHSETLOS
, SEM_FN_NAME (frvbf
,mhsetlos
) },
28718 { FRVBF_INSN_MHSETHIS
, SEM_FN_NAME (frvbf
,mhsethis
) },
28719 { FRVBF_INSN_MHDSETS
, SEM_FN_NAME (frvbf
,mhdsets
) },
28720 { FRVBF_INSN_MHSETLOH
, SEM_FN_NAME (frvbf
,mhsetloh
) },
28721 { FRVBF_INSN_MHSETHIH
, SEM_FN_NAME (frvbf
,mhsethih
) },
28722 { FRVBF_INSN_MHDSETH
, SEM_FN_NAME (frvbf
,mhdseth
) },
28723 { FRVBF_INSN_MAND
, SEM_FN_NAME (frvbf
,mand
) },
28724 { FRVBF_INSN_MOR
, SEM_FN_NAME (frvbf
,mor
) },
28725 { FRVBF_INSN_MXOR
, SEM_FN_NAME (frvbf
,mxor
) },
28726 { FRVBF_INSN_CMAND
, SEM_FN_NAME (frvbf
,cmand
) },
28727 { FRVBF_INSN_CMOR
, SEM_FN_NAME (frvbf
,cmor
) },
28728 { FRVBF_INSN_CMXOR
, SEM_FN_NAME (frvbf
,cmxor
) },
28729 { FRVBF_INSN_MNOT
, SEM_FN_NAME (frvbf
,mnot
) },
28730 { FRVBF_INSN_CMNOT
, SEM_FN_NAME (frvbf
,cmnot
) },
28731 { FRVBF_INSN_MROTLI
, SEM_FN_NAME (frvbf
,mrotli
) },
28732 { FRVBF_INSN_MROTRI
, SEM_FN_NAME (frvbf
,mrotri
) },
28733 { FRVBF_INSN_MWCUT
, SEM_FN_NAME (frvbf
,mwcut
) },
28734 { FRVBF_INSN_MWCUTI
, SEM_FN_NAME (frvbf
,mwcuti
) },
28735 { FRVBF_INSN_MCUT
, SEM_FN_NAME (frvbf
,mcut
) },
28736 { FRVBF_INSN_MCUTI
, SEM_FN_NAME (frvbf
,mcuti
) },
28737 { FRVBF_INSN_MCUTSS
, SEM_FN_NAME (frvbf
,mcutss
) },
28738 { FRVBF_INSN_MCUTSSI
, SEM_FN_NAME (frvbf
,mcutssi
) },
28739 { FRVBF_INSN_MDCUTSSI
, SEM_FN_NAME (frvbf
,mdcutssi
) },
28740 { FRVBF_INSN_MAVEH
, SEM_FN_NAME (frvbf
,maveh
) },
28741 { FRVBF_INSN_MSLLHI
, SEM_FN_NAME (frvbf
,msllhi
) },
28742 { FRVBF_INSN_MSRLHI
, SEM_FN_NAME (frvbf
,msrlhi
) },
28743 { FRVBF_INSN_MSRAHI
, SEM_FN_NAME (frvbf
,msrahi
) },
28744 { FRVBF_INSN_MDROTLI
, SEM_FN_NAME (frvbf
,mdrotli
) },
28745 { FRVBF_INSN_MCPLHI
, SEM_FN_NAME (frvbf
,mcplhi
) },
28746 { FRVBF_INSN_MCPLI
, SEM_FN_NAME (frvbf
,mcpli
) },
28747 { FRVBF_INSN_MSATHS
, SEM_FN_NAME (frvbf
,msaths
) },
28748 { FRVBF_INSN_MQSATHS
, SEM_FN_NAME (frvbf
,mqsaths
) },
28749 { FRVBF_INSN_MSATHU
, SEM_FN_NAME (frvbf
,msathu
) },
28750 { FRVBF_INSN_MCMPSH
, SEM_FN_NAME (frvbf
,mcmpsh
) },
28751 { FRVBF_INSN_MCMPUH
, SEM_FN_NAME (frvbf
,mcmpuh
) },
28752 { FRVBF_INSN_MABSHS
, SEM_FN_NAME (frvbf
,mabshs
) },
28753 { FRVBF_INSN_MADDHSS
, SEM_FN_NAME (frvbf
,maddhss
) },
28754 { FRVBF_INSN_MADDHUS
, SEM_FN_NAME (frvbf
,maddhus
) },
28755 { FRVBF_INSN_MSUBHSS
, SEM_FN_NAME (frvbf
,msubhss
) },
28756 { FRVBF_INSN_MSUBHUS
, SEM_FN_NAME (frvbf
,msubhus
) },
28757 { FRVBF_INSN_CMADDHSS
, SEM_FN_NAME (frvbf
,cmaddhss
) },
28758 { FRVBF_INSN_CMADDHUS
, SEM_FN_NAME (frvbf
,cmaddhus
) },
28759 { FRVBF_INSN_CMSUBHSS
, SEM_FN_NAME (frvbf
,cmsubhss
) },
28760 { FRVBF_INSN_CMSUBHUS
, SEM_FN_NAME (frvbf
,cmsubhus
) },
28761 { FRVBF_INSN_MQADDHSS
, SEM_FN_NAME (frvbf
,mqaddhss
) },
28762 { FRVBF_INSN_MQADDHUS
, SEM_FN_NAME (frvbf
,mqaddhus
) },
28763 { FRVBF_INSN_MQSUBHSS
, SEM_FN_NAME (frvbf
,mqsubhss
) },
28764 { FRVBF_INSN_MQSUBHUS
, SEM_FN_NAME (frvbf
,mqsubhus
) },
28765 { FRVBF_INSN_CMQADDHSS
, SEM_FN_NAME (frvbf
,cmqaddhss
) },
28766 { FRVBF_INSN_CMQADDHUS
, SEM_FN_NAME (frvbf
,cmqaddhus
) },
28767 { FRVBF_INSN_CMQSUBHSS
, SEM_FN_NAME (frvbf
,cmqsubhss
) },
28768 { FRVBF_INSN_CMQSUBHUS
, SEM_FN_NAME (frvbf
,cmqsubhus
) },
28769 { FRVBF_INSN_MADDACCS
, SEM_FN_NAME (frvbf
,maddaccs
) },
28770 { FRVBF_INSN_MSUBACCS
, SEM_FN_NAME (frvbf
,msubaccs
) },
28771 { FRVBF_INSN_MDADDACCS
, SEM_FN_NAME (frvbf
,mdaddaccs
) },
28772 { FRVBF_INSN_MDSUBACCS
, SEM_FN_NAME (frvbf
,mdsubaccs
) },
28773 { FRVBF_INSN_MASACCS
, SEM_FN_NAME (frvbf
,masaccs
) },
28774 { FRVBF_INSN_MDASACCS
, SEM_FN_NAME (frvbf
,mdasaccs
) },
28775 { FRVBF_INSN_MMULHS
, SEM_FN_NAME (frvbf
,mmulhs
) },
28776 { FRVBF_INSN_MMULHU
, SEM_FN_NAME (frvbf
,mmulhu
) },
28777 { FRVBF_INSN_MMULXHS
, SEM_FN_NAME (frvbf
,mmulxhs
) },
28778 { FRVBF_INSN_MMULXHU
, SEM_FN_NAME (frvbf
,mmulxhu
) },
28779 { FRVBF_INSN_CMMULHS
, SEM_FN_NAME (frvbf
,cmmulhs
) },
28780 { FRVBF_INSN_CMMULHU
, SEM_FN_NAME (frvbf
,cmmulhu
) },
28781 { FRVBF_INSN_MQMULHS
, SEM_FN_NAME (frvbf
,mqmulhs
) },
28782 { FRVBF_INSN_MQMULHU
, SEM_FN_NAME (frvbf
,mqmulhu
) },
28783 { FRVBF_INSN_MQMULXHS
, SEM_FN_NAME (frvbf
,mqmulxhs
) },
28784 { FRVBF_INSN_MQMULXHU
, SEM_FN_NAME (frvbf
,mqmulxhu
) },
28785 { FRVBF_INSN_CMQMULHS
, SEM_FN_NAME (frvbf
,cmqmulhs
) },
28786 { FRVBF_INSN_CMQMULHU
, SEM_FN_NAME (frvbf
,cmqmulhu
) },
28787 { FRVBF_INSN_MMACHS
, SEM_FN_NAME (frvbf
,mmachs
) },
28788 { FRVBF_INSN_MMACHU
, SEM_FN_NAME (frvbf
,mmachu
) },
28789 { FRVBF_INSN_MMRDHS
, SEM_FN_NAME (frvbf
,mmrdhs
) },
28790 { FRVBF_INSN_MMRDHU
, SEM_FN_NAME (frvbf
,mmrdhu
) },
28791 { FRVBF_INSN_CMMACHS
, SEM_FN_NAME (frvbf
,cmmachs
) },
28792 { FRVBF_INSN_CMMACHU
, SEM_FN_NAME (frvbf
,cmmachu
) },
28793 { FRVBF_INSN_MQMACHS
, SEM_FN_NAME (frvbf
,mqmachs
) },
28794 { FRVBF_INSN_MQMACHU
, SEM_FN_NAME (frvbf
,mqmachu
) },
28795 { FRVBF_INSN_CMQMACHS
, SEM_FN_NAME (frvbf
,cmqmachs
) },
28796 { FRVBF_INSN_CMQMACHU
, SEM_FN_NAME (frvbf
,cmqmachu
) },
28797 { FRVBF_INSN_MQXMACHS
, SEM_FN_NAME (frvbf
,mqxmachs
) },
28798 { FRVBF_INSN_MQXMACXHS
, SEM_FN_NAME (frvbf
,mqxmacxhs
) },
28799 { FRVBF_INSN_MQMACXHS
, SEM_FN_NAME (frvbf
,mqmacxhs
) },
28800 { FRVBF_INSN_MCPXRS
, SEM_FN_NAME (frvbf
,mcpxrs
) },
28801 { FRVBF_INSN_MCPXRU
, SEM_FN_NAME (frvbf
,mcpxru
) },
28802 { FRVBF_INSN_MCPXIS
, SEM_FN_NAME (frvbf
,mcpxis
) },
28803 { FRVBF_INSN_MCPXIU
, SEM_FN_NAME (frvbf
,mcpxiu
) },
28804 { FRVBF_INSN_CMCPXRS
, SEM_FN_NAME (frvbf
,cmcpxrs
) },
28805 { FRVBF_INSN_CMCPXRU
, SEM_FN_NAME (frvbf
,cmcpxru
) },
28806 { FRVBF_INSN_CMCPXIS
, SEM_FN_NAME (frvbf
,cmcpxis
) },
28807 { FRVBF_INSN_CMCPXIU
, SEM_FN_NAME (frvbf
,cmcpxiu
) },
28808 { FRVBF_INSN_MQCPXRS
, SEM_FN_NAME (frvbf
,mqcpxrs
) },
28809 { FRVBF_INSN_MQCPXRU
, SEM_FN_NAME (frvbf
,mqcpxru
) },
28810 { FRVBF_INSN_MQCPXIS
, SEM_FN_NAME (frvbf
,mqcpxis
) },
28811 { FRVBF_INSN_MQCPXIU
, SEM_FN_NAME (frvbf
,mqcpxiu
) },
28812 { FRVBF_INSN_MEXPDHW
, SEM_FN_NAME (frvbf
,mexpdhw
) },
28813 { FRVBF_INSN_CMEXPDHW
, SEM_FN_NAME (frvbf
,cmexpdhw
) },
28814 { FRVBF_INSN_MEXPDHD
, SEM_FN_NAME (frvbf
,mexpdhd
) },
28815 { FRVBF_INSN_CMEXPDHD
, SEM_FN_NAME (frvbf
,cmexpdhd
) },
28816 { FRVBF_INSN_MPACKH
, SEM_FN_NAME (frvbf
,mpackh
) },
28817 { FRVBF_INSN_MDPACKH
, SEM_FN_NAME (frvbf
,mdpackh
) },
28818 { FRVBF_INSN_MUNPACKH
, SEM_FN_NAME (frvbf
,munpackh
) },
28819 { FRVBF_INSN_MDUNPACKH
, SEM_FN_NAME (frvbf
,mdunpackh
) },
28820 { FRVBF_INSN_MBTOH
, SEM_FN_NAME (frvbf
,mbtoh
) },
28821 { FRVBF_INSN_CMBTOH
, SEM_FN_NAME (frvbf
,cmbtoh
) },
28822 { FRVBF_INSN_MHTOB
, SEM_FN_NAME (frvbf
,mhtob
) },
28823 { FRVBF_INSN_CMHTOB
, SEM_FN_NAME (frvbf
,cmhtob
) },
28824 { FRVBF_INSN_MBTOHE
, SEM_FN_NAME (frvbf
,mbtohe
) },
28825 { FRVBF_INSN_CMBTOHE
, SEM_FN_NAME (frvbf
,cmbtohe
) },
28826 { FRVBF_INSN_MNOP
, SEM_FN_NAME (frvbf
,mnop
) },
28827 { FRVBF_INSN_MCLRACC_0
, SEM_FN_NAME (frvbf
,mclracc_0
) },
28828 { FRVBF_INSN_MCLRACC_1
, SEM_FN_NAME (frvbf
,mclracc_1
) },
28829 { FRVBF_INSN_MRDACC
, SEM_FN_NAME (frvbf
,mrdacc
) },
28830 { FRVBF_INSN_MRDACCG
, SEM_FN_NAME (frvbf
,mrdaccg
) },
28831 { FRVBF_INSN_MWTACC
, SEM_FN_NAME (frvbf
,mwtacc
) },
28832 { FRVBF_INSN_MWTACCG
, SEM_FN_NAME (frvbf
,mwtaccg
) },
28833 { FRVBF_INSN_MCOP1
, SEM_FN_NAME (frvbf
,mcop1
) },
28834 { FRVBF_INSN_MCOP2
, SEM_FN_NAME (frvbf
,mcop2
) },
28835 { FRVBF_INSN_FNOP
, SEM_FN_NAME (frvbf
,fnop
) },
28839 /* Add the semantic fns to IDESC_TABLE. */
28842 SEM_FN_NAME (frvbf
,init_idesc_table
) (SIM_CPU
*current_cpu
)
28844 IDESC
*idesc_table
= CPU_IDESC (current_cpu
);
28845 const struct sem_fn_desc
*sf
;
28846 int mach_num
= MACH_NUM (CPU_MACH (current_cpu
));
28848 for (sf
= &sem_fns
[0]; sf
->fn
!= 0; ++sf
)
28850 const CGEN_INSN
*insn
= idesc_table
[sf
->index
].idata
;
28851 int valid_p
= (CGEN_INSN_VIRTUAL_P (insn
)
28852 || CGEN_INSN_MACH_HAS_P (insn
, mach_num
));
28855 idesc_table
[sf
->index
].sem_fast
= sf
->fn
;
28857 idesc_table
[sf
->index
].sem_fast
= SEM_FN_NAME (frvbf
,x_invalid
);
28860 idesc_table
[sf
->index
].sem_full
= sf
->fn
;
28862 idesc_table
[sf
->index
].sem_full
= SEM_FN_NAME (frvbf
,x_invalid
);
This page took 0.659866 seconds and 5 git commands to generate.