]>
git.ipfire.org Git - thirdparty/binutils-gdb.git/blob - sim/frv/sem.c
1 /* Simulator instruction semantics for frvbf.
3 THIS FILE IS MACHINE GENERATED WITH CGEN.
5 Copyright 1996-2005 Free Software Foundation, Inc.
7 This file is part of the GNU simulators.
9 This program is free software; you can redistribute it and/or modify
10 it under the terms of the GNU General Public License as published by
11 the Free Software Foundation; either version 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 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, 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 $ldann($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 $lddann($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 /* std: std$pack $GRdoublek,@($GRi,$GRj) */
5636 SEM_FN_NAME ( frvbf
, std
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
5638 #define FLD(f) abuf->fields.sfmt_cstdu.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 );
5647 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
5648 frvbf_write_mem_DI ( current_cpu
, pc
, tmp_address
, GET_H_GR_DOUBLE ( FLD ( f_GRk
)));
5656 /* stdf: stdf$pack $FRdoublek,@($GRi,$GRj) */
5659 SEM_FN_NAME ( frvbf
, stdf
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
5661 #define FLD(f) abuf->fields.sfmt_cstdfu.f
5662 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
5663 int UNUSED written
= 0 ;
5664 IADDR UNUSED pc
= abuf
-> addr
;
5665 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
5670 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
5671 frvbf_write_mem_DF ( current_cpu
, pc
, tmp_address
, GET_H_FR_DOUBLE ( FLD ( f_FRk
)));
5679 /* stdc: stdc$pack $CPRdoublek,@($GRi,$GRj) */
5682 SEM_FN_NAME ( frvbf
, stdc
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
5684 #define FLD(f) abuf->fields.sfmt_stdcu.f
5685 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
5686 int UNUSED written
= 0 ;
5687 IADDR UNUSED pc
= abuf
-> addr
;
5688 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
5693 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
5694 frvbf_write_mem_DI ( current_cpu
, pc
, tmp_address
, GET_H_CPR_DOUBLE ( FLD ( f_CPRk
)));
5702 /* stq: stq$pack $GRk,@($GRi,$GRj) */
5705 SEM_FN_NAME ( frvbf
, stq
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
5707 #define FLD(f) abuf->fields.sfmt_smulcc.f
5708 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
5709 int UNUSED written
= 0 ;
5710 IADDR UNUSED pc
= abuf
-> addr
;
5711 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
5716 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
5717 frvbf_store_quad_GR ( current_cpu
, pc
, tmp_address
, FLD ( f_GRk
));
5725 /* stqf: stqf$pack $FRintk,@($GRi,$GRj) */
5728 SEM_FN_NAME ( frvbf
, stqf
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
5730 #define FLD(f) abuf->fields.sfmt_cstdfu.f
5731 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
5732 int UNUSED written
= 0 ;
5733 IADDR UNUSED pc
= abuf
-> addr
;
5734 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
5739 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
5740 frvbf_store_quad_FRint ( current_cpu
, pc
, tmp_address
, FLD ( f_FRk
));
5748 /* stqc: stqc$pack $CPRk,@($GRi,$GRj) */
5751 SEM_FN_NAME ( frvbf
, stqc
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
5753 #define FLD(f) abuf->fields.sfmt_stdcu.f
5754 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
5755 int UNUSED written
= 0 ;
5756 IADDR UNUSED pc
= abuf
-> addr
;
5757 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
5762 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
5763 frvbf_store_quad_CPR ( current_cpu
, pc
, tmp_address
, FLD ( f_CPRk
));
5771 /* stbu: stbu$pack $GRk,@($GRi,$GRj) */
5774 SEM_FN_NAME ( frvbf
, stbu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
5776 #define FLD(f) abuf->fields.sfmt_cstbu.f
5777 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
5778 int UNUSED written
= 0 ;
5779 IADDR UNUSED pc
= abuf
-> addr
;
5780 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
5784 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
5785 frvbf_write_mem_QI ( current_cpu
, pc
, tmp_address
, GET_H_GR ( FLD ( f_GRk
)));
5787 SI opval
= tmp_address
;
5788 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
5789 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
5797 /* sthu: sthu$pack $GRk,@($GRi,$GRj) */
5800 SEM_FN_NAME ( frvbf
, sthu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
5802 #define FLD(f) abuf->fields.sfmt_cstbu.f
5803 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
5804 int UNUSED written
= 0 ;
5805 IADDR UNUSED pc
= abuf
-> addr
;
5806 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
5810 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
5811 frvbf_write_mem_HI ( current_cpu
, pc
, tmp_address
, GET_H_GR ( FLD ( f_GRk
)));
5813 SI opval
= tmp_address
;
5814 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
5815 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
5823 /* stu: stu$pack $GRk,@($GRi,$GRj) */
5826 SEM_FN_NAME ( frvbf
, stu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
5828 #define FLD(f) abuf->fields.sfmt_cstbu.f
5829 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
5830 int UNUSED written
= 0 ;
5831 IADDR UNUSED pc
= abuf
-> addr
;
5832 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
5836 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
5837 frvbf_write_mem_WI ( current_cpu
, pc
, tmp_address
, GET_H_GR ( FLD ( f_GRk
)));
5839 SI opval
= tmp_address
;
5840 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
5841 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
5849 /* stbfu: stbfu$pack $FRintk,@($GRi,$GRj) */
5852 SEM_FN_NAME ( frvbf
, stbfu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
5854 #define FLD(f) abuf->fields.sfmt_cstbfu.f
5855 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
5856 int UNUSED written
= 0 ;
5857 IADDR UNUSED pc
= abuf
-> addr
;
5858 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
5862 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
5863 frvbf_write_mem_QI ( current_cpu
, pc
, tmp_address
, GET_H_FR_INT ( FLD ( f_FRk
)));
5865 SI opval
= tmp_address
;
5866 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
5867 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
5875 /* sthfu: sthfu$pack $FRintk,@($GRi,$GRj) */
5878 SEM_FN_NAME ( frvbf
, sthfu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
5880 #define FLD(f) abuf->fields.sfmt_cstbfu.f
5881 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
5882 int UNUSED written
= 0 ;
5883 IADDR UNUSED pc
= abuf
-> addr
;
5884 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
5888 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
5889 frvbf_write_mem_HI ( current_cpu
, pc
, tmp_address
, GET_H_FR_INT ( FLD ( f_FRk
)));
5891 SI opval
= tmp_address
;
5892 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
5893 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
5901 /* stfu: stfu$pack $FRintk,@($GRi,$GRj) */
5904 SEM_FN_NAME ( frvbf
, stfu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
5906 #define FLD(f) abuf->fields.sfmt_cstbfu.f
5907 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
5908 int UNUSED written
= 0 ;
5909 IADDR UNUSED pc
= abuf
-> addr
;
5910 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
5914 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
5915 frvbf_write_mem_SI ( current_cpu
, pc
, tmp_address
, GET_H_FR_INT ( FLD ( f_FRk
)));
5917 SI opval
= tmp_address
;
5918 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
5919 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
5927 /* stcu: stcu$pack $CPRk,@($GRi,$GRj) */
5930 SEM_FN_NAME ( frvbf
, stcu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
5932 #define FLD(f) abuf->fields.sfmt_stcu.f
5933 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
5934 int UNUSED written
= 0 ;
5935 IADDR UNUSED pc
= abuf
-> addr
;
5936 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
5940 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
5941 frvbf_write_mem_SI ( current_cpu
, pc
, tmp_address
, CPU ( h_cpr
[ FLD ( f_CPRk
)]));
5943 SI opval
= tmp_address
;
5944 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
5945 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
5953 /* stdu: stdu$pack $GRdoublek,@($GRi,$GRj) */
5956 SEM_FN_NAME ( frvbf
, stdu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
5958 #define FLD(f) abuf->fields.sfmt_cstdu.f
5959 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
5960 int UNUSED written
= 0 ;
5961 IADDR UNUSED pc
= abuf
-> addr
;
5962 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
5967 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
5968 frvbf_write_mem_DI ( current_cpu
, pc
, tmp_address
, GET_H_GR_DOUBLE ( FLD ( f_GRk
)));
5971 SI opval
= tmp_address
;
5972 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
5973 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
5981 /* stdfu: stdfu$pack $FRdoublek,@($GRi,$GRj) */
5984 SEM_FN_NAME ( frvbf
, stdfu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
5986 #define FLD(f) abuf->fields.sfmt_cstdfu.f
5987 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
5988 int UNUSED written
= 0 ;
5989 IADDR UNUSED pc
= abuf
-> addr
;
5990 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
5995 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
5996 frvbf_write_mem_DF ( current_cpu
, pc
, tmp_address
, GET_H_FR_DOUBLE ( FLD ( f_FRk
)));
5999 SI opval
= tmp_address
;
6000 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
6001 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
6009 /* stdcu: stdcu$pack $CPRdoublek,@($GRi,$GRj) */
6012 SEM_FN_NAME ( frvbf
, stdcu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
6014 #define FLD(f) abuf->fields.sfmt_stdcu.f
6015 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
6016 int UNUSED written
= 0 ;
6017 IADDR UNUSED pc
= abuf
-> addr
;
6018 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
6023 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
6024 frvbf_write_mem_DI ( current_cpu
, pc
, tmp_address
, GET_H_CPR_DOUBLE ( FLD ( f_CPRk
)));
6027 SI opval
= tmp_address
;
6028 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
6029 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
6037 /* stqu: stqu$pack $GRk,@($GRi,$GRj) */
6040 SEM_FN_NAME ( frvbf
, stqu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
6042 #define FLD(f) abuf->fields.sfmt_cstdu.f
6043 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
6044 int UNUSED written
= 0 ;
6045 IADDR UNUSED pc
= abuf
-> addr
;
6046 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
6051 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
6052 frvbf_store_quad_GR ( current_cpu
, pc
, tmp_address
, FLD ( f_GRk
));
6055 SI opval
= tmp_address
;
6056 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
6057 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
6065 /* stqfu: stqfu$pack $FRintk,@($GRi,$GRj) */
6068 SEM_FN_NAME ( frvbf
, stqfu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
6070 #define FLD(f) abuf->fields.sfmt_cstdfu.f
6071 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
6072 int UNUSED written
= 0 ;
6073 IADDR UNUSED pc
= abuf
-> addr
;
6074 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
6079 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
6080 frvbf_store_quad_FRint ( current_cpu
, pc
, tmp_address
, FLD ( f_FRk
));
6083 SI opval
= tmp_address
;
6084 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
6085 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
6093 /* stqcu: stqcu$pack $CPRk,@($GRi,$GRj) */
6096 SEM_FN_NAME ( frvbf
, stqcu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
6098 #define FLD(f) abuf->fields.sfmt_stdcu.f
6099 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
6100 int UNUSED written
= 0 ;
6101 IADDR UNUSED pc
= abuf
-> addr
;
6102 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
6107 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
6108 frvbf_store_quad_CPR ( current_cpu
, pc
, tmp_address
, FLD ( f_CPRk
));
6111 SI opval
= tmp_address
;
6112 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
6113 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
6121 /* cldsb: cldsb$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6124 SEM_FN_NAME ( frvbf
, cldsb
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
6126 #define FLD(f) abuf->fields.sfmt_cswap.f
6127 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
6128 int UNUSED written
= 0 ;
6129 IADDR UNUSED pc
= abuf
-> addr
;
6130 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
6132 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
6134 SI opval
= frvbf_read_mem_QI ( current_cpu
, pc
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
))));
6135 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
6136 written
|= ( 1 << 5 );
6137 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
6141 abuf
-> written
= written
;
6146 /* cldub: cldub$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6149 SEM_FN_NAME ( frvbf
, cldub
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
6151 #define FLD(f) abuf->fields.sfmt_cswap.f
6152 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
6153 int UNUSED written
= 0 ;
6154 IADDR UNUSED pc
= abuf
-> addr
;
6155 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
6157 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
6159 SI opval
= frvbf_read_mem_UQI ( current_cpu
, pc
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
))));
6160 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
6161 written
|= ( 1 << 5 );
6162 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
6166 abuf
-> written
= written
;
6171 /* cldsh: cldsh$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6174 SEM_FN_NAME ( frvbf
, cldsh
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
6176 #define FLD(f) abuf->fields.sfmt_cswap.f
6177 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
6178 int UNUSED written
= 0 ;
6179 IADDR UNUSED pc
= abuf
-> addr
;
6180 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
6182 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
6184 SI opval
= frvbf_read_mem_HI ( current_cpu
, pc
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
))));
6185 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
6186 written
|= ( 1 << 5 );
6187 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
6191 abuf
-> written
= written
;
6196 /* clduh: clduh$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6199 SEM_FN_NAME ( frvbf
, clduh
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
6201 #define FLD(f) abuf->fields.sfmt_cswap.f
6202 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
6203 int UNUSED written
= 0 ;
6204 IADDR UNUSED pc
= abuf
-> addr
;
6205 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
6207 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
6209 SI opval
= frvbf_read_mem_UHI ( current_cpu
, pc
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
))));
6210 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
6211 written
|= ( 1 << 5 );
6212 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
6216 abuf
-> written
= written
;
6221 /* cld: cld$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6224 SEM_FN_NAME ( frvbf
, cld
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
6226 #define FLD(f) abuf->fields.sfmt_cswap.f
6227 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
6228 int UNUSED written
= 0 ;
6229 IADDR UNUSED pc
= abuf
-> addr
;
6230 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
6232 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
6234 SI opval
= frvbf_read_mem_SI ( current_cpu
, pc
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
))));
6235 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
6236 written
|= ( 1 << 5 );
6237 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
6241 abuf
-> written
= written
;
6246 /* cldbf: cldbf$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6249 SEM_FN_NAME ( frvbf
, cldbf
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
6251 #define FLD(f) abuf->fields.sfmt_cldbfu.f
6252 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
6253 int UNUSED written
= 0 ;
6254 IADDR UNUSED pc
= abuf
-> addr
;
6255 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
6257 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
6259 SI opval
= frvbf_read_mem_UQI ( current_cpu
, pc
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
))));
6260 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
6261 written
|= ( 1 << 5 );
6262 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
6266 abuf
-> written
= written
;
6271 /* cldhf: cldhf$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6274 SEM_FN_NAME ( frvbf
, cldhf
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
6276 #define FLD(f) abuf->fields.sfmt_cldbfu.f
6277 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
6278 int UNUSED written
= 0 ;
6279 IADDR UNUSED pc
= abuf
-> addr
;
6280 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
6282 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
6284 SI opval
= frvbf_read_mem_UHI ( current_cpu
, pc
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
))));
6285 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
6286 written
|= ( 1 << 5 );
6287 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
6291 abuf
-> written
= written
;
6296 /* cldf: cldf$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6299 SEM_FN_NAME ( frvbf
, cldf
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
6301 #define FLD(f) abuf->fields.sfmt_cldbfu.f
6302 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
6303 int UNUSED written
= 0 ;
6304 IADDR UNUSED pc
= abuf
-> addr
;
6305 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
6307 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
6309 SI opval
= frvbf_read_mem_SI ( current_cpu
, pc
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
))));
6310 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
6311 written
|= ( 1 << 5 );
6312 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
6316 abuf
-> written
= written
;
6321 /* cldd: cldd$pack @($GRi,$GRj),$GRdoublek,$CCi,$cond */
6324 SEM_FN_NAME ( frvbf
, cldd
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
6326 #define FLD(f) abuf->fields.sfmt_clddu.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 );
6332 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
6335 if ( NESI ( FLD ( f_GRk
), 0 )) {
6337 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
6339 DI opval
= frvbf_read_mem_DI ( current_cpu
, pc
, tmp_address
);
6340 sim_queue_fn_di_write ( current_cpu
, frvbf_h_gr_double_set
, FLD ( f_GRk
), opval
);
6341 written
|= ( 1 << 6 );
6342 TRACE_RESULT ( current_cpu
, abuf
, "gr_double" , 'D' , opval
);
6349 abuf
-> written
= written
;
6354 /* clddf: clddf$pack @($GRi,$GRj),$FRdoublek,$CCi,$cond */
6357 SEM_FN_NAME ( frvbf
, clddf
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
6359 #define FLD(f) abuf->fields.sfmt_clddfu.f
6360 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
6361 int UNUSED written
= 0 ;
6362 IADDR UNUSED pc
= abuf
-> addr
;
6363 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
6365 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
6369 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
6371 DF opval
= frvbf_read_mem_DF ( current_cpu
, pc
, tmp_address
);
6372 sim_queue_fn_df_write ( current_cpu
, frvbf_h_fr_double_set
, FLD ( f_FRk
), opval
);
6373 written
|= ( 1 << 5 );
6374 TRACE_RESULT ( current_cpu
, abuf
, "fr_double" , 'f' , opval
);
6380 abuf
-> written
= written
;
6385 /* cldq: cldq$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6388 SEM_FN_NAME ( frvbf
, cldq
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
6390 #define FLD(f) abuf->fields.sfmt_cswap.f
6391 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
6392 int UNUSED written
= 0 ;
6393 IADDR UNUSED pc
= abuf
-> addr
;
6394 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
6396 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
6400 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
6401 frvbf_load_quad_GR ( current_cpu
, pc
, tmp_address
, FLD ( f_GRk
));
6410 /* cldsbu: cldsbu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6413 SEM_FN_NAME ( frvbf
, cldsbu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
6415 #define FLD(f) abuf->fields.sfmt_cldsbu.f
6416 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
6417 int UNUSED written
= 0 ;
6418 IADDR UNUSED pc
= abuf
-> addr
;
6419 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
6421 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
6424 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
6426 SI opval
= frvbf_read_mem_QI ( current_cpu
, pc
, tmp_address
);
6427 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
6428 written
|= ( 1 << 8 );
6429 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
6431 if ( NESI ( FLD ( f_GRi
), FLD ( f_GRk
))) {
6433 SI opval
= tmp_address
;
6434 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
6435 written
|= ( 1 << 7 );
6436 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
6442 abuf
-> written
= written
;
6447 /* cldubu: cldubu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6450 SEM_FN_NAME ( frvbf
, cldubu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
6452 #define FLD(f) abuf->fields.sfmt_cldsbu.f
6453 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
6454 int UNUSED written
= 0 ;
6455 IADDR UNUSED pc
= abuf
-> addr
;
6456 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
6458 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
6461 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
6463 SI opval
= frvbf_read_mem_UQI ( current_cpu
, pc
, tmp_address
);
6464 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
6465 written
|= ( 1 << 8 );
6466 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
6468 if ( NESI ( FLD ( f_GRi
), FLD ( f_GRk
))) {
6470 SI opval
= tmp_address
;
6471 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
6472 written
|= ( 1 << 7 );
6473 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
6479 abuf
-> written
= written
;
6484 /* cldshu: cldshu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6487 SEM_FN_NAME ( frvbf
, cldshu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
6489 #define FLD(f) abuf->fields.sfmt_cldsbu.f
6490 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
6491 int UNUSED written
= 0 ;
6492 IADDR UNUSED pc
= abuf
-> addr
;
6493 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
6495 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
6498 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
6500 SI opval
= frvbf_read_mem_HI ( current_cpu
, pc
, tmp_address
);
6501 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
6502 written
|= ( 1 << 8 );
6503 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
6505 if ( NESI ( FLD ( f_GRi
), FLD ( f_GRk
))) {
6507 SI opval
= tmp_address
;
6508 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
6509 written
|= ( 1 << 7 );
6510 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
6516 abuf
-> written
= written
;
6521 /* clduhu: clduhu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6524 SEM_FN_NAME ( frvbf
, clduhu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
6526 #define FLD(f) abuf->fields.sfmt_cldsbu.f
6527 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
6528 int UNUSED written
= 0 ;
6529 IADDR UNUSED pc
= abuf
-> addr
;
6530 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
6532 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
6535 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
6537 SI opval
= frvbf_read_mem_UHI ( current_cpu
, pc
, tmp_address
);
6538 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
6539 written
|= ( 1 << 8 );
6540 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
6542 if ( NESI ( FLD ( f_GRi
), FLD ( f_GRk
))) {
6544 SI opval
= tmp_address
;
6545 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
6546 written
|= ( 1 << 7 );
6547 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
6553 abuf
-> written
= written
;
6558 /* cldu: cldu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6561 SEM_FN_NAME ( frvbf
, cldu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
6563 #define FLD(f) abuf->fields.sfmt_cldsbu.f
6564 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
6565 int UNUSED written
= 0 ;
6566 IADDR UNUSED pc
= abuf
-> addr
;
6567 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
6569 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
6572 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
6574 SI opval
= frvbf_read_mem_SI ( current_cpu
, pc
, tmp_address
);
6575 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
6576 written
|= ( 1 << 8 );
6577 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
6579 if ( NESI ( FLD ( f_GRi
), FLD ( f_GRk
))) {
6581 SI opval
= tmp_address
;
6582 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
6583 written
|= ( 1 << 7 );
6584 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
6590 abuf
-> written
= written
;
6595 /* cldbfu: cldbfu$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6598 SEM_FN_NAME ( frvbf
, cldbfu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
6600 #define FLD(f) abuf->fields.sfmt_cldbfu.f
6601 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
6602 int UNUSED written
= 0 ;
6603 IADDR UNUSED pc
= abuf
-> addr
;
6604 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
6606 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
6609 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
6611 SI opval
= frvbf_read_mem_UQI ( current_cpu
, pc
, tmp_address
);
6612 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
6613 written
|= ( 1 << 5 );
6614 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
6617 SI opval
= tmp_address
;
6618 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
6619 written
|= ( 1 << 6 );
6620 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
6625 abuf
-> written
= written
;
6630 /* cldhfu: cldhfu$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6633 SEM_FN_NAME ( frvbf
, cldhfu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
6635 #define FLD(f) abuf->fields.sfmt_cldbfu.f
6636 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
6637 int UNUSED written
= 0 ;
6638 IADDR UNUSED pc
= abuf
-> addr
;
6639 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
6641 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
6644 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
6646 SI opval
= frvbf_read_mem_UHI ( current_cpu
, pc
, tmp_address
);
6647 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
6648 written
|= ( 1 << 5 );
6649 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
6652 SI opval
= tmp_address
;
6653 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
6654 written
|= ( 1 << 6 );
6655 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
6660 abuf
-> written
= written
;
6665 /* cldfu: cldfu$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6668 SEM_FN_NAME ( frvbf
, cldfu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
6670 #define FLD(f) abuf->fields.sfmt_cldbfu.f
6671 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
6672 int UNUSED written
= 0 ;
6673 IADDR UNUSED pc
= abuf
-> addr
;
6674 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
6676 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
6679 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
6681 SI opval
= frvbf_read_mem_SI ( current_cpu
, pc
, tmp_address
);
6682 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
6683 written
|= ( 1 << 5 );
6684 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
6687 SI opval
= tmp_address
;
6688 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
6689 written
|= ( 1 << 6 );
6690 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
6695 abuf
-> written
= written
;
6700 /* clddu: clddu$pack @($GRi,$GRj),$GRdoublek,$CCi,$cond */
6703 SEM_FN_NAME ( frvbf
, clddu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
6705 #define FLD(f) abuf->fields.sfmt_clddu.f
6706 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
6707 int UNUSED written
= 0 ;
6708 IADDR UNUSED pc
= abuf
-> addr
;
6709 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
6711 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
6714 if ( NESI ( FLD ( f_GRk
), 0 )) {
6716 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
6718 DI opval
= frvbf_read_mem_DI ( current_cpu
, pc
, tmp_address
);
6719 sim_queue_fn_di_write ( current_cpu
, frvbf_h_gr_double_set
, FLD ( f_GRk
), opval
);
6720 written
|= ( 1 << 7 );
6721 TRACE_RESULT ( current_cpu
, abuf
, "gr_double" , 'D' , opval
);
6725 if ( NESI ( FLD ( f_GRi
), FLD ( f_GRk
))) {
6727 SI opval
= tmp_address
;
6728 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
6729 written
|= ( 1 << 8 );
6730 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
6736 abuf
-> written
= written
;
6741 /* clddfu: clddfu$pack @($GRi,$GRj),$FRdoublek,$CCi,$cond */
6744 SEM_FN_NAME ( frvbf
, clddfu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
6746 #define FLD(f) abuf->fields.sfmt_clddfu.f
6747 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
6748 int UNUSED written
= 0 ;
6749 IADDR UNUSED pc
= abuf
-> addr
;
6750 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
6752 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
6756 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
6758 DF opval
= frvbf_read_mem_DF ( current_cpu
, pc
, tmp_address
);
6759 sim_queue_fn_df_write ( current_cpu
, frvbf_h_fr_double_set
, FLD ( f_FRk
), opval
);
6760 written
|= ( 1 << 5 );
6761 TRACE_RESULT ( current_cpu
, abuf
, "fr_double" , 'f' , opval
);
6765 SI opval
= tmp_address
;
6766 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
6767 written
|= ( 1 << 6 );
6768 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
6773 abuf
-> written
= written
;
6778 /* cldqu: cldqu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6781 SEM_FN_NAME ( frvbf
, cldqu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
6783 #define FLD(f) abuf->fields.sfmt_cstdu.f
6784 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
6785 int UNUSED written
= 0 ;
6786 IADDR UNUSED pc
= abuf
-> addr
;
6787 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
6789 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
6793 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
6794 frvbf_load_quad_GR ( current_cpu
, pc
, tmp_address
, FLD ( f_GRk
));
6796 if ( NESI ( FLD ( f_GRi
), FLD ( f_GRk
))) {
6798 SI opval
= tmp_address
;
6799 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
6800 written
|= ( 1 << 7 );
6801 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
6807 abuf
-> written
= written
;
6812 /* cstb: cstb$pack $GRk,@($GRi,$GRj),$CCi,$cond */
6815 SEM_FN_NAME ( frvbf
, cstb
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
6817 #define FLD(f) abuf->fields.sfmt_cswap.f
6818 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
6819 int UNUSED written
= 0 ;
6820 IADDR UNUSED pc
= abuf
-> addr
;
6821 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
6823 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
6824 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
)));
6831 /* csth: csth$pack $GRk,@($GRi,$GRj),$CCi,$cond */
6834 SEM_FN_NAME ( frvbf
, csth
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
6836 #define FLD(f) abuf->fields.sfmt_cswap.f
6837 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
6838 int UNUSED written
= 0 ;
6839 IADDR UNUSED pc
= abuf
-> addr
;
6840 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
6842 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
6843 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
)));
6850 /* cst: cst$pack $GRk,@($GRi,$GRj),$CCi,$cond */
6853 SEM_FN_NAME ( frvbf
, cst
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
6855 #define FLD(f) abuf->fields.sfmt_cswap.f
6856 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
6857 int UNUSED written
= 0 ;
6858 IADDR UNUSED pc
= abuf
-> addr
;
6859 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
6861 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
6862 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
)));
6869 /* cstbf: cstbf$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
6872 SEM_FN_NAME ( frvbf
, cstbf
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
6874 #define FLD(f) abuf->fields.sfmt_cstbfu.f
6875 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
6876 int UNUSED written
= 0 ;
6877 IADDR UNUSED pc
= abuf
-> addr
;
6878 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
6880 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
6881 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
)));
6888 /* csthf: csthf$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
6891 SEM_FN_NAME ( frvbf
, csthf
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
6893 #define FLD(f) abuf->fields.sfmt_cstbfu.f
6894 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
6895 int UNUSED written
= 0 ;
6896 IADDR UNUSED pc
= abuf
-> addr
;
6897 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
6899 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
6900 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
)));
6907 /* cstf: cstf$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
6910 SEM_FN_NAME ( frvbf
, cstf
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
6912 #define FLD(f) abuf->fields.sfmt_cstbfu.f
6913 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
6914 int UNUSED written
= 0 ;
6915 IADDR UNUSED pc
= abuf
-> addr
;
6916 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
6918 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
6919 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
)));
6926 /* cstd: cstd$pack $GRdoublek,@($GRi,$GRj),$CCi,$cond */
6929 SEM_FN_NAME ( frvbf
, cstd
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
6931 #define FLD(f) abuf->fields.sfmt_cstdu.f
6932 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
6933 int UNUSED written
= 0 ;
6934 IADDR UNUSED pc
= abuf
-> addr
;
6935 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
6937 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
6941 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
6942 frvbf_write_mem_DI ( current_cpu
, pc
, tmp_address
, GET_H_GR_DOUBLE ( FLD ( f_GRk
)));
6951 /* cstdf: cstdf$pack $FRdoublek,@($GRi,$GRj),$CCi,$cond */
6954 SEM_FN_NAME ( frvbf
, cstdf
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
6956 #define FLD(f) abuf->fields.sfmt_cstdfu.f
6957 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
6958 int UNUSED written
= 0 ;
6959 IADDR UNUSED pc
= abuf
-> addr
;
6960 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
6962 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
6966 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
6967 frvbf_write_mem_DF ( current_cpu
, pc
, tmp_address
, GET_H_FR_DOUBLE ( FLD ( f_FRk
)));
6976 /* cstq: cstq$pack $GRk,@($GRi,$GRj),$CCi,$cond */
6979 SEM_FN_NAME ( frvbf
, cstq
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
6981 #define FLD(f) abuf->fields.sfmt_cswap.f
6982 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
6983 int UNUSED written
= 0 ;
6984 IADDR UNUSED pc
= abuf
-> addr
;
6985 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
6987 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
6991 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
6992 frvbf_store_quad_GR ( current_cpu
, pc
, tmp_address
, FLD ( f_GRk
));
7001 /* cstbu: cstbu$pack $GRk,@($GRi,$GRj),$CCi,$cond */
7004 SEM_FN_NAME ( frvbf
, cstbu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
7006 #define FLD(f) abuf->fields.sfmt_cstbu.f
7007 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
7008 int UNUSED written
= 0 ;
7009 IADDR UNUSED pc
= abuf
-> addr
;
7010 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
7012 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
7015 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
7016 frvbf_write_mem_QI ( current_cpu
, pc
, tmp_address
, GET_H_GR ( FLD ( f_GRk
)));
7018 SI opval
= tmp_address
;
7019 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
7020 written
|= ( 1 << 6 );
7021 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
7026 abuf
-> written
= written
;
7031 /* csthu: csthu$pack $GRk,@($GRi,$GRj),$CCi,$cond */
7034 SEM_FN_NAME ( frvbf
, csthu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
7036 #define FLD(f) abuf->fields.sfmt_cstbu.f
7037 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
7038 int UNUSED written
= 0 ;
7039 IADDR UNUSED pc
= abuf
-> addr
;
7040 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
7042 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
7045 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
7046 frvbf_write_mem_HI ( current_cpu
, pc
, tmp_address
, GET_H_GR ( FLD ( f_GRk
)));
7048 SI opval
= tmp_address
;
7049 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
7050 written
|= ( 1 << 6 );
7051 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
7056 abuf
-> written
= written
;
7061 /* cstu: cstu$pack $GRk,@($GRi,$GRj),$CCi,$cond */
7064 SEM_FN_NAME ( frvbf
, cstu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
7066 #define FLD(f) abuf->fields.sfmt_cstbu.f
7067 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
7068 int UNUSED written
= 0 ;
7069 IADDR UNUSED pc
= abuf
-> addr
;
7070 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
7072 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
7075 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
7076 frvbf_write_mem_SI ( current_cpu
, pc
, tmp_address
, GET_H_GR ( FLD ( f_GRk
)));
7078 SI opval
= tmp_address
;
7079 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
7080 written
|= ( 1 << 6 );
7081 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
7086 abuf
-> written
= written
;
7091 /* cstbfu: cstbfu$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
7094 SEM_FN_NAME ( frvbf
, cstbfu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
7096 #define FLD(f) abuf->fields.sfmt_cstbfu.f
7097 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
7098 int UNUSED written
= 0 ;
7099 IADDR UNUSED pc
= abuf
-> addr
;
7100 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
7102 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
7105 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
7106 frvbf_write_mem_QI ( current_cpu
, pc
, tmp_address
, GET_H_FR_INT ( FLD ( f_FRk
)));
7108 SI opval
= tmp_address
;
7109 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
7110 written
|= ( 1 << 6 );
7111 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
7116 abuf
-> written
= written
;
7121 /* csthfu: csthfu$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
7124 SEM_FN_NAME ( frvbf
, csthfu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
7126 #define FLD(f) abuf->fields.sfmt_cstbfu.f
7127 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
7128 int UNUSED written
= 0 ;
7129 IADDR UNUSED pc
= abuf
-> addr
;
7130 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
7132 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
7135 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
7136 frvbf_write_mem_HI ( current_cpu
, pc
, tmp_address
, GET_H_FR_INT ( FLD ( f_FRk
)));
7138 SI opval
= tmp_address
;
7139 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
7140 written
|= ( 1 << 6 );
7141 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
7146 abuf
-> written
= written
;
7151 /* cstfu: cstfu$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
7154 SEM_FN_NAME ( frvbf
, cstfu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
7156 #define FLD(f) abuf->fields.sfmt_cstbfu.f
7157 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
7158 int UNUSED written
= 0 ;
7159 IADDR UNUSED pc
= abuf
-> addr
;
7160 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
7162 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
7165 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
7166 frvbf_write_mem_SI ( current_cpu
, pc
, tmp_address
, GET_H_FR_INT ( FLD ( f_FRk
)));
7168 SI opval
= tmp_address
;
7169 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
7170 written
|= ( 1 << 6 );
7171 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
7176 abuf
-> written
= written
;
7181 /* cstdu: cstdu$pack $GRdoublek,@($GRi,$GRj),$CCi,$cond */
7184 SEM_FN_NAME ( frvbf
, cstdu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
7186 #define FLD(f) abuf->fields.sfmt_cstdu.f
7187 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
7188 int UNUSED written
= 0 ;
7189 IADDR UNUSED pc
= abuf
-> addr
;
7190 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
7192 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
7196 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
7197 frvbf_write_mem_DI ( current_cpu
, pc
, tmp_address
, GET_H_GR_DOUBLE ( FLD ( f_GRk
)));
7200 SI opval
= tmp_address
;
7201 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
7202 written
|= ( 1 << 6 );
7203 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
7208 abuf
-> written
= written
;
7213 /* cstdfu: cstdfu$pack $FRdoublek,@($GRi,$GRj),$CCi,$cond */
7216 SEM_FN_NAME ( frvbf
, cstdfu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
7218 #define FLD(f) abuf->fields.sfmt_cstdfu.f
7219 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
7220 int UNUSED written
= 0 ;
7221 IADDR UNUSED pc
= abuf
-> addr
;
7222 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
7224 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
7228 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
7229 frvbf_write_mem_DF ( current_cpu
, pc
, tmp_address
, GET_H_FR_DOUBLE ( FLD ( f_FRk
)));
7232 SI opval
= tmp_address
;
7233 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRi
), opval
);
7234 written
|= ( 1 << 6 );
7235 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
7240 abuf
-> written
= written
;
7245 /* stbi: stbi$pack $GRk,@($GRi,$d12) */
7248 SEM_FN_NAME ( frvbf
, stbi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
7250 #define FLD(f) abuf->fields.sfmt_swapi.f
7251 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
7252 int UNUSED written
= 0 ;
7253 IADDR UNUSED pc
= abuf
-> addr
;
7254 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
7256 frvbf_write_mem_QI ( current_cpu
, pc
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
)), GET_H_GR ( FLD ( f_GRk
)));
7262 /* sthi: sthi$pack $GRk,@($GRi,$d12) */
7265 SEM_FN_NAME ( frvbf
, sthi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
7267 #define FLD(f) abuf->fields.sfmt_swapi.f
7268 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
7269 int UNUSED written
= 0 ;
7270 IADDR UNUSED pc
= abuf
-> addr
;
7271 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
7273 frvbf_write_mem_HI ( current_cpu
, pc
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
)), GET_H_GR ( FLD ( f_GRk
)));
7279 /* sti: sti$pack $GRk,@($GRi,$d12) */
7282 SEM_FN_NAME ( frvbf
, sti
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
7284 #define FLD(f) abuf->fields.sfmt_swapi.f
7285 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
7286 int UNUSED written
= 0 ;
7287 IADDR UNUSED pc
= abuf
-> addr
;
7288 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
7290 frvbf_write_mem_SI ( current_cpu
, pc
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
)), GET_H_GR ( FLD ( f_GRk
)));
7296 /* stbfi: stbfi$pack $FRintk,@($GRi,$d12) */
7299 SEM_FN_NAME ( frvbf
, stbfi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
7301 #define FLD(f) abuf->fields.sfmt_stbfi.f
7302 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
7303 int UNUSED written
= 0 ;
7304 IADDR UNUSED pc
= abuf
-> addr
;
7305 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
7307 frvbf_write_mem_QI ( current_cpu
, pc
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
)), GET_H_FR_INT ( FLD ( f_FRk
)));
7313 /* sthfi: sthfi$pack $FRintk,@($GRi,$d12) */
7316 SEM_FN_NAME ( frvbf
, sthfi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
7318 #define FLD(f) abuf->fields.sfmt_stbfi.f
7319 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
7320 int UNUSED written
= 0 ;
7321 IADDR UNUSED pc
= abuf
-> addr
;
7322 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
7324 frvbf_write_mem_HI ( current_cpu
, pc
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
)), GET_H_FR_INT ( FLD ( f_FRk
)));
7330 /* stfi: stfi$pack $FRintk,@($GRi,$d12) */
7333 SEM_FN_NAME ( frvbf
, stfi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
7335 #define FLD(f) abuf->fields.sfmt_stbfi.f
7336 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
7337 int UNUSED written
= 0 ;
7338 IADDR UNUSED pc
= abuf
-> addr
;
7339 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
7341 frvbf_write_mem_SI ( current_cpu
, pc
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
)), GET_H_FR_INT ( FLD ( f_FRk
)));
7347 /* stdi: stdi$pack $GRdoublek,@($GRi,$d12) */
7350 SEM_FN_NAME ( frvbf
, stdi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
7352 #define FLD(f) abuf->fields.sfmt_stdi.f
7353 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
7354 int UNUSED written
= 0 ;
7355 IADDR UNUSED pc
= abuf
-> addr
;
7356 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
7361 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
7362 frvbf_write_mem_DI ( current_cpu
, pc
, tmp_address
, GET_H_GR_DOUBLE ( FLD ( f_GRk
)));
7370 /* stdfi: stdfi$pack $FRdoublek,@($GRi,$d12) */
7373 SEM_FN_NAME ( frvbf
, stdfi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
7375 #define FLD(f) abuf->fields.sfmt_stdfi.f
7376 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
7377 int UNUSED written
= 0 ;
7378 IADDR UNUSED pc
= abuf
-> addr
;
7379 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
7384 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
7385 frvbf_write_mem_DF ( current_cpu
, pc
, tmp_address
, GET_H_FR_DOUBLE ( FLD ( f_FRk
)));
7393 /* stqi: stqi$pack $GRk,@($GRi,$d12) */
7396 SEM_FN_NAME ( frvbf
, stqi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
7398 #define FLD(f) abuf->fields.sfmt_stdi.f
7399 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
7400 int UNUSED written
= 0 ;
7401 IADDR UNUSED pc
= abuf
-> addr
;
7402 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
7407 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
7408 frvbf_store_quad_GR ( current_cpu
, pc
, tmp_address
, FLD ( f_GRk
));
7416 /* stqfi: stqfi$pack $FRintk,@($GRi,$d12) */
7419 SEM_FN_NAME ( frvbf
, stqfi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
7421 #define FLD(f) abuf->fields.sfmt_stdfi.f
7422 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
7423 int UNUSED written
= 0 ;
7424 IADDR UNUSED pc
= abuf
-> addr
;
7425 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
7430 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
7431 frvbf_store_quad_FRint ( current_cpu
, pc
, tmp_address
, FLD ( f_FRk
));
7439 /* swap: swap$pack @($GRi,$GRj),$GRk */
7442 SEM_FN_NAME ( frvbf
, swap
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
7444 #define FLD(f) abuf->fields.sfmt_cswap.f
7445 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
7446 int UNUSED written
= 0 ;
7447 IADDR UNUSED pc
= abuf
-> addr
;
7448 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
7453 tmp_tmp
= GET_H_GR ( FLD ( f_GRk
));
7454 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
7455 frvbf_check_swap_address ( current_cpu
, tmp_address
);
7457 SI opval
= frvbf_read_mem_WI ( current_cpu
, pc
, tmp_address
);
7458 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
7459 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
7461 frvbf_write_mem_WI ( current_cpu
, pc
, tmp_address
, tmp_tmp
);
7468 /* swapi: swapi$pack @($GRi,$d12),$GRk */
7471 SEM_FN_NAME ( frvbf
, swapi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
7473 #define FLD(f) abuf->fields.sfmt_swapi.f
7474 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
7475 int UNUSED written
= 0 ;
7476 IADDR UNUSED pc
= abuf
-> addr
;
7477 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
7482 tmp_tmp
= GET_H_GR ( FLD ( f_GRk
));
7483 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
7484 frvbf_check_swap_address ( current_cpu
, tmp_address
);
7486 SI opval
= frvbf_read_mem_WI ( current_cpu
, pc
, tmp_address
);
7487 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
7488 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
7490 frvbf_write_mem_WI ( current_cpu
, pc
, tmp_address
, tmp_tmp
);
7497 /* cswap: cswap$pack @($GRi,$GRj),$GRk,$CCi,$cond */
7500 SEM_FN_NAME ( frvbf
, cswap
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
7502 #define FLD(f) abuf->fields.sfmt_cswap.f
7503 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
7504 int UNUSED written
= 0 ;
7505 IADDR UNUSED pc
= abuf
-> addr
;
7506 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
7508 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
7512 tmp_tmp
= GET_H_GR ( FLD ( f_GRk
));
7513 tmp_address
= ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
7514 frvbf_check_swap_address ( current_cpu
, tmp_address
);
7516 SI opval
= frvbf_read_mem_WI ( current_cpu
, pc
, tmp_address
);
7517 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRk
), opval
);
7518 written
|= ( 1 << 6 );
7519 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
7521 frvbf_write_mem_WI ( current_cpu
, pc
, tmp_address
, tmp_tmp
);
7525 abuf
-> written
= written
;
7530 /* movgf: movgf$pack $GRj,$FRintk */
7533 SEM_FN_NAME ( frvbf
, movgf
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
7535 #define FLD(f) abuf->fields.sfmt_cmovgfd.f
7536 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
7537 int UNUSED written
= 0 ;
7538 IADDR UNUSED pc
= abuf
-> addr
;
7539 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
7542 SI opval
= GET_H_GR ( FLD ( f_GRj
));
7543 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
7544 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
7551 /* movfg: movfg$pack $FRintk,$GRj */
7554 SEM_FN_NAME ( frvbf
, movfg
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
7556 #define FLD(f) abuf->fields.sfmt_cmovfgd.f
7557 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
7558 int UNUSED written
= 0 ;
7559 IADDR UNUSED pc
= abuf
-> addr
;
7560 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
7563 SI opval
= GET_H_FR_INT ( FLD ( f_FRk
));
7564 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRj
), opval
);
7565 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
7572 /* movgfd: movgfd$pack $GRj,$FRintk */
7575 SEM_FN_NAME ( frvbf
, movgfd
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
7577 #define FLD(f) abuf->fields.sfmt_cmovgfd.f
7578 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
7579 int UNUSED written
= 0 ;
7580 IADDR UNUSED pc
= abuf
-> addr
;
7581 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
7583 if ( EQSI ( FLD ( f_GRj
), 0 )) {
7587 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
7588 written
|= ( 1 << 4 );
7589 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
7593 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
7594 written
|= ( 1 << 5 );
7595 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
7601 SI opval
= GET_H_GR ( FLD ( f_GRj
));
7602 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
7603 written
|= ( 1 << 4 );
7604 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
7607 USI opval
= GET_H_GR ((( FLD ( f_GRj
)) + ( 1 )));
7608 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
7609 written
|= ( 1 << 5 );
7610 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
7615 abuf
-> written
= written
;
7620 /* movfgd: movfgd$pack $FRintk,$GRj */
7623 SEM_FN_NAME ( frvbf
, movfgd
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
7625 #define FLD(f) abuf->fields.sfmt_cmovfgd.f
7626 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
7627 int UNUSED written
= 0 ;
7628 IADDR UNUSED pc
= abuf
-> addr
;
7629 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
7631 if ( NESI ( FLD ( f_GRj
), 0 )) {
7634 SI opval
= GET_H_FR_INT ( FLD ( f_FRk
));
7635 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRj
), opval
);
7636 written
|= ( 1 << 4 );
7637 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
7640 USI opval
= GET_H_FR_INT ((( FLD ( f_FRk
)) + ( 1 )));
7641 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, (( FLD ( f_GRj
)) + ( 1 )), opval
);
7642 written
|= ( 1 << 5 );
7643 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
7648 abuf
-> written
= written
;
7653 /* movgfq: movgfq$pack $GRj,$FRintk */
7656 SEM_FN_NAME ( frvbf
, movgfq
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
7658 #define FLD(f) abuf->fields.sfmt_movgfq.f
7659 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
7660 int UNUSED written
= 0 ;
7661 IADDR UNUSED pc
= abuf
-> addr
;
7662 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
7664 if ( EQSI ( FLD ( f_GRj
), 0 )) {
7668 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
7669 written
|= ( 1 << 6 );
7670 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
7674 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
7675 written
|= ( 1 << 7 );
7676 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
7680 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, (( FLD ( f_FRk
)) + ( 2 )), opval
);
7681 written
|= ( 1 << 8 );
7682 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
7686 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, (( FLD ( f_FRk
)) + ( 3 )), opval
);
7687 written
|= ( 1 << 9 );
7688 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
7694 SI opval
= GET_H_GR ( FLD ( f_GRj
));
7695 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
7696 written
|= ( 1 << 6 );
7697 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
7700 USI opval
= GET_H_GR ((( FLD ( f_GRj
)) + ( 1 )));
7701 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
7702 written
|= ( 1 << 7 );
7703 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
7706 USI opval
= GET_H_GR ((( FLD ( f_GRj
)) + ( 2 )));
7707 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, (( FLD ( f_FRk
)) + ( 2 )), opval
);
7708 written
|= ( 1 << 8 );
7709 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
7712 USI opval
= GET_H_GR ((( FLD ( f_GRj
)) + ( 3 )));
7713 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, (( FLD ( f_FRk
)) + ( 3 )), opval
);
7714 written
|= ( 1 << 9 );
7715 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
7720 abuf
-> written
= written
;
7725 /* movfgq: movfgq$pack $FRintk,$GRj */
7728 SEM_FN_NAME ( frvbf
, movfgq
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
7730 #define FLD(f) abuf->fields.sfmt_movfgq.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 ( NESI ( FLD ( f_GRj
), 0 )) {
7739 SI opval
= GET_H_FR_INT ( FLD ( f_FRk
));
7740 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRj
), opval
);
7741 written
|= ( 1 << 6 );
7742 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
7745 USI opval
= GET_H_FR_INT ((( FLD ( f_FRk
)) + ( 1 )));
7746 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, (( FLD ( f_GRj
)) + ( 1 )), opval
);
7747 written
|= ( 1 << 7 );
7748 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
7751 USI opval
= GET_H_FR_INT ((( FLD ( f_FRk
)) + ( 2 )));
7752 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, (( FLD ( f_GRj
)) + ( 2 )), opval
);
7753 written
|= ( 1 << 8 );
7754 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
7757 USI opval
= GET_H_FR_INT ((( FLD ( f_FRk
)) + ( 3 )));
7758 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, (( FLD ( f_GRj
)) + ( 3 )), opval
);
7759 written
|= ( 1 << 9 );
7760 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
7765 abuf
-> written
= written
;
7770 /* cmovgf: cmovgf$pack $GRj,$FRintk,$CCi,$cond */
7773 SEM_FN_NAME ( frvbf
, cmovgf
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
7775 #define FLD(f) abuf->fields.sfmt_cmovgfd.f
7776 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
7777 int UNUSED written
= 0 ;
7778 IADDR UNUSED pc
= abuf
-> addr
;
7779 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
7781 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
7783 SI opval
= GET_H_GR ( FLD ( f_GRj
));
7784 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
7785 written
|= ( 1 << 3 );
7786 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
7790 abuf
-> written
= written
;
7795 /* cmovfg: cmovfg$pack $FRintk,$GRj,$CCi,$cond */
7798 SEM_FN_NAME ( frvbf
, cmovfg
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
7800 #define FLD(f) abuf->fields.sfmt_cmovfgd.f
7801 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
7802 int UNUSED written
= 0 ;
7803 IADDR UNUSED pc
= abuf
-> addr
;
7804 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
7806 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
7808 SI opval
= GET_H_FR_INT ( FLD ( f_FRk
));
7809 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRj
), opval
);
7810 written
|= ( 1 << 3 );
7811 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
7815 abuf
-> written
= written
;
7820 /* cmovgfd: cmovgfd$pack $GRj,$FRintk,$CCi,$cond */
7823 SEM_FN_NAME ( frvbf
, cmovgfd
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
7825 #define FLD(f) abuf->fields.sfmt_cmovgfd.f
7826 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
7827 int UNUSED written
= 0 ;
7828 IADDR UNUSED pc
= abuf
-> addr
;
7829 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
7831 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
7832 if ( EQSI ( FLD ( f_GRj
), 0 )) {
7836 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
7837 written
|= ( 1 << 6 );
7838 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
7842 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
7843 written
|= ( 1 << 7 );
7844 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
7850 SI opval
= GET_H_GR ( FLD ( f_GRj
));
7851 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
7852 written
|= ( 1 << 6 );
7853 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
7856 USI opval
= GET_H_GR ((( FLD ( f_GRj
)) + ( 1 )));
7857 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
7858 written
|= ( 1 << 7 );
7859 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
7865 abuf
-> written
= written
;
7870 /* cmovfgd: cmovfgd$pack $FRintk,$GRj,$CCi,$cond */
7873 SEM_FN_NAME ( frvbf
, cmovfgd
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
7875 #define FLD(f) abuf->fields.sfmt_cmovfgd.f
7876 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
7877 int UNUSED written
= 0 ;
7878 IADDR UNUSED pc
= abuf
-> addr
;
7879 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
7881 if ( ANDIF ( NESI ( FLD ( f_GRj
), 0 ), EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 )))) {
7884 SI opval
= GET_H_FR_INT ( FLD ( f_FRk
));
7885 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRj
), opval
);
7886 written
|= ( 1 << 6 );
7887 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
7890 USI opval
= GET_H_FR_INT ((( FLD ( f_FRk
)) + ( 1 )));
7891 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, (( FLD ( f_GRj
)) + ( 1 )), opval
);
7892 written
|= ( 1 << 7 );
7893 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
7898 abuf
-> written
= written
;
7903 /* movgs: movgs$pack $GRj,$spr */
7906 SEM_FN_NAME ( frvbf
, movgs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
7908 #define FLD(f) abuf->fields.sfmt_movgs.f
7909 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
7910 int UNUSED written
= 0 ;
7911 IADDR UNUSED pc
= abuf
-> addr
;
7912 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
7915 USI opval
= GET_H_GR ( FLD ( f_GRj
));
7916 sim_queue_fn_si_write ( current_cpu
, frvbf_h_spr_set
, FLD ( f_spr
), opval
);
7917 TRACE_RESULT ( current_cpu
, abuf
, "spr" , 'x' , opval
);
7924 /* movsg: movsg$pack $spr,$GRj */
7927 SEM_FN_NAME ( frvbf
, movsg
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
7929 #define FLD(f) abuf->fields.sfmt_movsg.f
7930 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
7931 int UNUSED written
= 0 ;
7932 IADDR UNUSED pc
= abuf
-> addr
;
7933 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
7936 SI opval
= GET_H_SPR ( FLD ( f_spr
));
7937 sim_queue_fn_si_write ( current_cpu
, frvbf_h_gr_set
, FLD ( f_GRj
), opval
);
7938 TRACE_RESULT ( current_cpu
, abuf
, "gr" , 'x' , opval
);
7945 /* bra: bra$pack $hint_taken$label16 */
7948 SEM_FN_NAME ( frvbf
, bra
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
7950 #define FLD(f) abuf->fields.sfmt_fbne.f
7951 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
7952 int UNUSED written
= 0 ;
7953 IADDR UNUSED pc
= abuf
-> addr
;
7954 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
7957 frvbf_model_branch ( current_cpu
, FLD ( i_label16
), FLD ( f_hint
));
7959 USI opval
= FLD ( i_label16
);
7960 sim_queue_pc_write ( current_cpu
, opval
);
7961 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
7969 /* bno: bno$pack$hint_not_taken */
7972 SEM_FN_NAME ( frvbf
, bno
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
7974 #define FLD(f) abuf->fields.sfmt_fbne.f
7975 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
7976 int UNUSED written
= 0 ;
7977 IADDR UNUSED pc
= abuf
-> addr
;
7978 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
7980 frvbf_model_branch ( current_cpu
, FLD ( i_label16
), FLD ( f_hint
));
7986 /* beq: beq$pack $ICCi_2,$hint,$label16 */
7989 SEM_FN_NAME ( frvbf
, beq
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
7991 #define FLD(f) abuf->fields.sfmt_beq.f
7992 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
7993 int UNUSED written
= 0 ;
7994 IADDR UNUSED pc
= abuf
-> addr
;
7995 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
7998 frvbf_model_branch ( current_cpu
, FLD ( i_label16
), FLD ( f_hint
));
7999 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 4 ), 2 ))) {
8001 USI opval
= FLD ( i_label16
);
8002 sim_queue_pc_write ( current_cpu
, opval
);
8003 written
|= ( 1 << 3 );
8004 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
8009 abuf
-> written
= written
;
8014 /* bne: bne$pack $ICCi_2,$hint,$label16 */
8017 SEM_FN_NAME ( frvbf
, bne
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
8019 #define FLD(f) abuf->fields.sfmt_beq.f
8020 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
8021 int UNUSED written
= 0 ;
8022 IADDR UNUSED pc
= abuf
-> addr
;
8023 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
8026 frvbf_model_branch ( current_cpu
, FLD ( i_label16
), FLD ( f_hint
));
8027 if ( NOTBI ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 4 ), 2 )))) {
8029 USI opval
= FLD ( i_label16
);
8030 sim_queue_pc_write ( current_cpu
, opval
);
8031 written
|= ( 1 << 3 );
8032 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
8037 abuf
-> written
= written
;
8042 /* ble: ble$pack $ICCi_2,$hint,$label16 */
8045 SEM_FN_NAME ( frvbf
, ble
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
8047 #define FLD(f) abuf->fields.sfmt_beq.f
8048 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
8049 int UNUSED written
= 0 ;
8050 IADDR UNUSED pc
= abuf
-> addr
;
8051 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
8054 frvbf_model_branch ( current_cpu
, FLD ( i_label16
), FLD ( f_hint
));
8055 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 ))))) {
8057 USI opval
= FLD ( i_label16
);
8058 sim_queue_pc_write ( current_cpu
, opval
);
8059 written
|= ( 1 << 3 );
8060 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
8065 abuf
-> written
= written
;
8070 /* bgt: bgt$pack $ICCi_2,$hint,$label16 */
8073 SEM_FN_NAME ( frvbf
, bgt
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
8075 #define FLD(f) abuf->fields.sfmt_beq.f
8076 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
8077 int UNUSED written
= 0 ;
8078 IADDR UNUSED pc
= abuf
-> addr
;
8079 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
8082 frvbf_model_branch ( current_cpu
, FLD ( i_label16
), FLD ( f_hint
));
8083 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 )))))) {
8085 USI opval
= FLD ( i_label16
);
8086 sim_queue_pc_write ( current_cpu
, opval
);
8087 written
|= ( 1 << 3 );
8088 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
8093 abuf
-> written
= written
;
8098 /* blt: blt$pack $ICCi_2,$hint,$label16 */
8101 SEM_FN_NAME ( frvbf
, blt
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
8103 #define FLD(f) abuf->fields.sfmt_beq.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 );
8110 frvbf_model_branch ( current_cpu
, FLD ( i_label16
), FLD ( f_hint
));
8111 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 )))) {
8113 USI opval
= FLD ( i_label16
);
8114 sim_queue_pc_write ( current_cpu
, opval
);
8115 written
|= ( 1 << 3 );
8116 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
8121 abuf
-> written
= written
;
8126 /* bge: bge$pack $ICCi_2,$hint,$label16 */
8129 SEM_FN_NAME ( frvbf
, bge
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
8131 #define FLD(f) abuf->fields.sfmt_beq.f
8132 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
8133 int UNUSED written
= 0 ;
8134 IADDR UNUSED pc
= abuf
-> addr
;
8135 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
8138 frvbf_model_branch ( current_cpu
, FLD ( i_label16
), FLD ( f_hint
));
8139 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 ))))) {
8141 USI opval
= FLD ( i_label16
);
8142 sim_queue_pc_write ( current_cpu
, opval
);
8143 written
|= ( 1 << 3 );
8144 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
8149 abuf
-> written
= written
;
8154 /* bls: bls$pack $ICCi_2,$hint,$label16 */
8157 SEM_FN_NAME ( frvbf
, bls
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
8159 #define FLD(f) abuf->fields.sfmt_beq.f
8160 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
8161 int UNUSED written
= 0 ;
8162 IADDR UNUSED pc
= abuf
-> addr
;
8163 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
8166 frvbf_model_branch ( current_cpu
, FLD ( i_label16
), FLD ( f_hint
));
8167 if ( ORIF ( TRUNCQIBI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 1 )), TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 4 ), 2 )))) {
8169 USI opval
= FLD ( i_label16
);
8170 sim_queue_pc_write ( current_cpu
, opval
);
8171 written
|= ( 1 << 3 );
8172 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
8177 abuf
-> written
= written
;
8182 /* bhi: bhi$pack $ICCi_2,$hint,$label16 */
8185 SEM_FN_NAME ( frvbf
, bhi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
8187 #define FLD(f) abuf->fields.sfmt_beq.f
8188 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
8189 int UNUSED written
= 0 ;
8190 IADDR UNUSED pc
= abuf
-> addr
;
8191 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
8194 frvbf_model_branch ( current_cpu
, FLD ( i_label16
), FLD ( f_hint
));
8195 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 ))))) {
8197 USI opval
= FLD ( i_label16
);
8198 sim_queue_pc_write ( current_cpu
, opval
);
8199 written
|= ( 1 << 3 );
8200 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
8205 abuf
-> written
= written
;
8210 /* bc: bc$pack $ICCi_2,$hint,$label16 */
8213 SEM_FN_NAME ( frvbf
, bc
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
8215 #define FLD(f) abuf->fields.sfmt_beq.f
8216 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
8217 int UNUSED written
= 0 ;
8218 IADDR UNUSED pc
= abuf
-> addr
;
8219 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
8222 frvbf_model_branch ( current_cpu
, FLD ( i_label16
), FLD ( f_hint
));
8223 if ( TRUNCQIBI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 1 ))) {
8225 USI opval
= FLD ( i_label16
);
8226 sim_queue_pc_write ( current_cpu
, opval
);
8227 written
|= ( 1 << 3 );
8228 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
8233 abuf
-> written
= written
;
8238 /* bnc: bnc$pack $ICCi_2,$hint,$label16 */
8241 SEM_FN_NAME ( frvbf
, bnc
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
8243 #define FLD(f) abuf->fields.sfmt_beq.f
8244 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
8245 int UNUSED written
= 0 ;
8246 IADDR UNUSED pc
= abuf
-> addr
;
8247 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
8250 frvbf_model_branch ( current_cpu
, FLD ( i_label16
), FLD ( f_hint
));
8251 if ( NOTBI ( TRUNCQIBI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 1 )))) {
8253 USI opval
= FLD ( i_label16
);
8254 sim_queue_pc_write ( current_cpu
, opval
);
8255 written
|= ( 1 << 3 );
8256 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
8261 abuf
-> written
= written
;
8266 /* bn: bn$pack $ICCi_2,$hint,$label16 */
8269 SEM_FN_NAME ( frvbf
, bn
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
8271 #define FLD(f) abuf->fields.sfmt_beq.f
8272 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
8273 int UNUSED written
= 0 ;
8274 IADDR UNUSED pc
= abuf
-> addr
;
8275 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
8278 frvbf_model_branch ( current_cpu
, FLD ( i_label16
), FLD ( f_hint
));
8279 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 8 ), 3 ))) {
8281 USI opval
= FLD ( i_label16
);
8282 sim_queue_pc_write ( current_cpu
, opval
);
8283 written
|= ( 1 << 3 );
8284 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
8289 abuf
-> written
= written
;
8294 /* bp: bp$pack $ICCi_2,$hint,$label16 */
8297 SEM_FN_NAME ( frvbf
, bp
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
8299 #define FLD(f) abuf->fields.sfmt_beq.f
8300 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
8301 int UNUSED written
= 0 ;
8302 IADDR UNUSED pc
= abuf
-> addr
;
8303 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
8306 frvbf_model_branch ( current_cpu
, FLD ( i_label16
), FLD ( f_hint
));
8307 if ( NOTBI ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 8 ), 3 )))) {
8309 USI opval
= FLD ( i_label16
);
8310 sim_queue_pc_write ( current_cpu
, opval
);
8311 written
|= ( 1 << 3 );
8312 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
8317 abuf
-> written
= written
;
8322 /* bv: bv$pack $ICCi_2,$hint,$label16 */
8325 SEM_FN_NAME ( frvbf
, bv
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
8327 #define FLD(f) abuf->fields.sfmt_beq.f
8328 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
8329 int UNUSED written
= 0 ;
8330 IADDR UNUSED pc
= abuf
-> addr
;
8331 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
8334 frvbf_model_branch ( current_cpu
, FLD ( i_label16
), FLD ( f_hint
));
8335 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 2 ), 1 ))) {
8337 USI opval
= FLD ( i_label16
);
8338 sim_queue_pc_write ( current_cpu
, opval
);
8339 written
|= ( 1 << 3 );
8340 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
8345 abuf
-> written
= written
;
8350 /* bnv: bnv$pack $ICCi_2,$hint,$label16 */
8353 SEM_FN_NAME ( frvbf
, bnv
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
8355 #define FLD(f) abuf->fields.sfmt_beq.f
8356 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
8357 int UNUSED written
= 0 ;
8358 IADDR UNUSED pc
= abuf
-> addr
;
8359 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
8362 frvbf_model_branch ( current_cpu
, FLD ( i_label16
), FLD ( f_hint
));
8363 if ( NOTBI ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 2 ), 1 )))) {
8365 USI opval
= FLD ( i_label16
);
8366 sim_queue_pc_write ( current_cpu
, opval
);
8367 written
|= ( 1 << 3 );
8368 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
8373 abuf
-> written
= written
;
8378 /* fbra: fbra$pack $hint_taken$label16 */
8381 SEM_FN_NAME ( frvbf
, fbra
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
8383 #define FLD(f) abuf->fields.sfmt_fbne.f
8384 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
8385 int UNUSED written
= 0 ;
8386 IADDR UNUSED pc
= abuf
-> addr
;
8387 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
8390 frvbf_model_branch ( current_cpu
, FLD ( i_label16
), FLD ( f_hint
));
8392 USI opval
= FLD ( i_label16
);
8393 sim_queue_pc_write ( current_cpu
, opval
);
8394 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
8402 /* fbno: fbno$pack$hint_not_taken */
8405 SEM_FN_NAME ( frvbf
, fbno
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
8407 #define FLD(f) abuf->fields.sfmt_fbne.f
8408 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
8409 int UNUSED written
= 0 ;
8410 IADDR UNUSED pc
= abuf
-> addr
;
8411 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
8413 frvbf_model_branch ( current_cpu
, FLD ( i_label16
), FLD ( f_hint
));
8419 /* fbne: fbne$pack $FCCi_2,$hint,$label16 */
8422 SEM_FN_NAME ( frvbf
, fbne
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
8424 #define FLD(f) abuf->fields.sfmt_fbne.f
8425 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
8426 int UNUSED written
= 0 ;
8427 IADDR UNUSED pc
= abuf
-> addr
;
8428 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
8431 frvbf_model_branch ( current_cpu
, FLD ( i_label16
), FLD ( f_hint
));
8432 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 ))))) {
8434 USI opval
= FLD ( i_label16
);
8435 sim_queue_pc_write ( current_cpu
, opval
);
8436 written
|= ( 1 << 3 );
8437 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
8442 abuf
-> written
= written
;
8447 /* fbeq: fbeq$pack $FCCi_2,$hint,$label16 */
8450 SEM_FN_NAME ( frvbf
, fbeq
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
8452 #define FLD(f) abuf->fields.sfmt_fbne.f
8453 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
8454 int UNUSED written
= 0 ;
8455 IADDR UNUSED pc
= abuf
-> addr
;
8456 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
8459 frvbf_model_branch ( current_cpu
, FLD ( i_label16
), FLD ( f_hint
));
8460 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 8 ), 3 ))) {
8462 USI opval
= FLD ( i_label16
);
8463 sim_queue_pc_write ( current_cpu
, opval
);
8464 written
|= ( 1 << 3 );
8465 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
8470 abuf
-> written
= written
;
8475 /* fblg: fblg$pack $FCCi_2,$hint,$label16 */
8478 SEM_FN_NAME ( frvbf
, fblg
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
8480 #define FLD(f) abuf->fields.sfmt_fbne.f
8481 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
8482 int UNUSED written
= 0 ;
8483 IADDR UNUSED pc
= abuf
-> addr
;
8484 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
8487 frvbf_model_branch ( current_cpu
, FLD ( i_label16
), FLD ( f_hint
));
8488 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 )))) {
8490 USI opval
= FLD ( i_label16
);
8491 sim_queue_pc_write ( current_cpu
, opval
);
8492 written
|= ( 1 << 3 );
8493 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
8498 abuf
-> written
= written
;
8503 /* fbue: fbue$pack $FCCi_2,$hint,$label16 */
8506 SEM_FN_NAME ( frvbf
, fbue
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
8508 #define FLD(f) abuf->fields.sfmt_fbne.f
8509 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
8510 int UNUSED written
= 0 ;
8511 IADDR UNUSED pc
= abuf
-> addr
;
8512 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
8515 frvbf_model_branch ( current_cpu
, FLD ( i_label16
), FLD ( f_hint
));
8516 if ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 8 ), 3 )), TRUNCQIBI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 1 )))) {
8518 USI opval
= FLD ( i_label16
);
8519 sim_queue_pc_write ( current_cpu
, opval
);
8520 written
|= ( 1 << 3 );
8521 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
8526 abuf
-> written
= written
;
8531 /* fbul: fbul$pack $FCCi_2,$hint,$label16 */
8534 SEM_FN_NAME ( frvbf
, fbul
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
8536 #define FLD(f) abuf->fields.sfmt_fbne.f
8537 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
8538 int UNUSED written
= 0 ;
8539 IADDR UNUSED pc
= abuf
-> addr
;
8540 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
8543 frvbf_model_branch ( current_cpu
, FLD ( i_label16
), FLD ( f_hint
));
8544 if ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 4 ), 2 )), TRUNCQIBI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 1 )))) {
8546 USI opval
= FLD ( i_label16
);
8547 sim_queue_pc_write ( current_cpu
, opval
);
8548 written
|= ( 1 << 3 );
8549 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
8554 abuf
-> written
= written
;
8559 /* fbge: fbge$pack $FCCi_2,$hint,$label16 */
8562 SEM_FN_NAME ( frvbf
, fbge
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
8564 #define FLD(f) abuf->fields.sfmt_fbne.f
8565 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
8566 int UNUSED written
= 0 ;
8567 IADDR UNUSED pc
= abuf
-> addr
;
8568 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
8571 frvbf_model_branch ( current_cpu
, FLD ( i_label16
), FLD ( f_hint
));
8572 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 )))) {
8574 USI opval
= FLD ( i_label16
);
8575 sim_queue_pc_write ( current_cpu
, opval
);
8576 written
|= ( 1 << 3 );
8577 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
8582 abuf
-> written
= written
;
8587 /* fblt: fblt$pack $FCCi_2,$hint,$label16 */
8590 SEM_FN_NAME ( frvbf
, fblt
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
8592 #define FLD(f) abuf->fields.sfmt_fbne.f
8593 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
8594 int UNUSED written
= 0 ;
8595 IADDR UNUSED pc
= abuf
-> addr
;
8596 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
8599 frvbf_model_branch ( current_cpu
, FLD ( i_label16
), FLD ( f_hint
));
8600 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 4 ), 2 ))) {
8602 USI opval
= FLD ( i_label16
);
8603 sim_queue_pc_write ( current_cpu
, opval
);
8604 written
|= ( 1 << 3 );
8605 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
8610 abuf
-> written
= written
;
8615 /* fbuge: fbuge$pack $FCCi_2,$hint,$label16 */
8618 SEM_FN_NAME ( frvbf
, fbuge
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
8620 #define FLD(f) abuf->fields.sfmt_fbne.f
8621 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
8622 int UNUSED written
= 0 ;
8623 IADDR UNUSED pc
= abuf
-> addr
;
8624 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
8627 frvbf_model_branch ( current_cpu
, FLD ( i_label16
), FLD ( f_hint
));
8628 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 ))))) {
8630 USI opval
= FLD ( i_label16
);
8631 sim_queue_pc_write ( current_cpu
, opval
);
8632 written
|= ( 1 << 3 );
8633 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
8638 abuf
-> written
= written
;
8643 /* fbug: fbug$pack $FCCi_2,$hint,$label16 */
8646 SEM_FN_NAME ( frvbf
, fbug
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
8648 #define FLD(f) abuf->fields.sfmt_fbne.f
8649 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
8650 int UNUSED written
= 0 ;
8651 IADDR UNUSED pc
= abuf
-> addr
;
8652 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
8655 frvbf_model_branch ( current_cpu
, FLD ( i_label16
), FLD ( f_hint
));
8656 if ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 2 ), 1 )), TRUNCQIBI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 1 )))) {
8658 USI opval
= FLD ( i_label16
);
8659 sim_queue_pc_write ( current_cpu
, opval
);
8660 written
|= ( 1 << 3 );
8661 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
8666 abuf
-> written
= written
;
8671 /* fble: fble$pack $FCCi_2,$hint,$label16 */
8674 SEM_FN_NAME ( frvbf
, fble
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
8676 #define FLD(f) abuf->fields.sfmt_fbne.f
8677 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
8678 int UNUSED written
= 0 ;
8679 IADDR UNUSED pc
= abuf
-> addr
;
8680 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
8683 frvbf_model_branch ( current_cpu
, FLD ( i_label16
), FLD ( f_hint
));
8684 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 )))) {
8686 USI opval
= FLD ( i_label16
);
8687 sim_queue_pc_write ( current_cpu
, opval
);
8688 written
|= ( 1 << 3 );
8689 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
8694 abuf
-> written
= written
;
8699 /* fbgt: fbgt$pack $FCCi_2,$hint,$label16 */
8702 SEM_FN_NAME ( frvbf
, fbgt
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
8704 #define FLD(f) abuf->fields.sfmt_fbne.f
8705 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
8706 int UNUSED written
= 0 ;
8707 IADDR UNUSED pc
= abuf
-> addr
;
8708 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
8711 frvbf_model_branch ( current_cpu
, FLD ( i_label16
), FLD ( f_hint
));
8712 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 2 ), 1 ))) {
8714 USI opval
= FLD ( i_label16
);
8715 sim_queue_pc_write ( current_cpu
, opval
);
8716 written
|= ( 1 << 3 );
8717 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
8722 abuf
-> written
= written
;
8727 /* fbule: fbule$pack $FCCi_2,$hint,$label16 */
8730 SEM_FN_NAME ( frvbf
, fbule
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
8732 #define FLD(f) abuf->fields.sfmt_fbne.f
8733 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
8734 int UNUSED written
= 0 ;
8735 IADDR UNUSED pc
= abuf
-> addr
;
8736 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
8739 frvbf_model_branch ( current_cpu
, FLD ( i_label16
), FLD ( f_hint
));
8740 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 ))))) {
8742 USI opval
= FLD ( i_label16
);
8743 sim_queue_pc_write ( current_cpu
, opval
);
8744 written
|= ( 1 << 3 );
8745 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
8750 abuf
-> written
= written
;
8755 /* fbu: fbu$pack $FCCi_2,$hint,$label16 */
8758 SEM_FN_NAME ( frvbf
, fbu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
8760 #define FLD(f) abuf->fields.sfmt_fbne.f
8761 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
8762 int UNUSED written
= 0 ;
8763 IADDR UNUSED pc
= abuf
-> addr
;
8764 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
8767 frvbf_model_branch ( current_cpu
, FLD ( i_label16
), FLD ( f_hint
));
8768 if ( TRUNCQIBI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 1 ))) {
8770 USI opval
= FLD ( i_label16
);
8771 sim_queue_pc_write ( current_cpu
, opval
);
8772 written
|= ( 1 << 3 );
8773 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
8778 abuf
-> written
= written
;
8783 /* fbo: fbo$pack $FCCi_2,$hint,$label16 */
8786 SEM_FN_NAME ( frvbf
, fbo
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
8788 #define FLD(f) abuf->fields.sfmt_fbne.f
8789 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
8790 int UNUSED written
= 0 ;
8791 IADDR UNUSED pc
= abuf
-> addr
;
8792 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
8795 frvbf_model_branch ( current_cpu
, FLD ( i_label16
), FLD ( f_hint
));
8796 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 ))))) {
8798 USI opval
= FLD ( i_label16
);
8799 sim_queue_pc_write ( current_cpu
, opval
);
8800 written
|= ( 1 << 3 );
8801 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
8806 abuf
-> written
= written
;
8811 /* bctrlr: bctrlr$pack $ccond,$hint */
8814 SEM_FN_NAME ( frvbf
, bctrlr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
8816 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
8817 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
8818 int UNUSED written
= 0 ;
8819 IADDR UNUSED pc
= abuf
-> addr
;
8820 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
8823 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
8826 tmp_tmp
= SUBSI ( GET_H_SPR ((( UINT
) 273 )), 1 );
8828 USI opval
= tmp_tmp
;
8829 sim_queue_fn_si_write ( current_cpu
, frvbf_h_spr_set
, (( UINT
) 273 ), opval
);
8830 TRACE_RESULT ( current_cpu
, abuf
, "spr" , 'x' , opval
);
8832 if ( EQSI ( FLD ( f_ccond
), 0 )) {
8833 if ( NESI ( tmp_tmp
, 0 )) {
8835 USI opval
= GET_H_SPR ((( UINT
) 272 ));
8836 sim_queue_pc_write ( current_cpu
, opval
);
8837 written
|= ( 1 << 5 );
8838 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
8842 if ( EQSI ( tmp_tmp
, 0 )) {
8844 USI opval
= GET_H_SPR ((( UINT
) 272 ));
8845 sim_queue_pc_write ( current_cpu
, opval
);
8846 written
|= ( 1 << 5 );
8847 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
8854 abuf
-> written
= written
;
8859 /* bralr: bralr$pack$hint_taken */
8862 SEM_FN_NAME ( frvbf
, bralr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
8864 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
8865 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
8866 int UNUSED written
= 0 ;
8867 IADDR UNUSED pc
= abuf
-> addr
;
8868 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
8871 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
8873 USI opval
= GET_H_SPR ((( UINT
) 272 ));
8874 sim_queue_pc_write ( current_cpu
, opval
);
8875 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
8883 /* bnolr: bnolr$pack$hint_not_taken */
8886 SEM_FN_NAME ( frvbf
, bnolr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
8888 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
8889 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
8890 int UNUSED written
= 0 ;
8891 IADDR UNUSED pc
= abuf
-> addr
;
8892 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
8894 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
8900 /* beqlr: beqlr$pack $ICCi_2,$hint */
8903 SEM_FN_NAME ( frvbf
, beqlr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
8905 #define FLD(f) abuf->fields.sfmt_bceqlr.f
8906 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
8907 int UNUSED written
= 0 ;
8908 IADDR UNUSED pc
= abuf
-> addr
;
8909 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
8912 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
8913 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 4 ), 2 ))) {
8915 USI opval
= GET_H_SPR ((( UINT
) 272 ));
8916 sim_queue_pc_write ( current_cpu
, opval
);
8917 written
|= ( 1 << 3 );
8918 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
8923 abuf
-> written
= written
;
8928 /* bnelr: bnelr$pack $ICCi_2,$hint */
8931 SEM_FN_NAME ( frvbf
, bnelr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
8933 #define FLD(f) abuf->fields.sfmt_bceqlr.f
8934 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
8935 int UNUSED written
= 0 ;
8936 IADDR UNUSED pc
= abuf
-> addr
;
8937 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
8940 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
8941 if ( NOTBI ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 4 ), 2 )))) {
8943 USI opval
= GET_H_SPR ((( UINT
) 272 ));
8944 sim_queue_pc_write ( current_cpu
, opval
);
8945 written
|= ( 1 << 3 );
8946 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
8951 abuf
-> written
= written
;
8956 /* blelr: blelr$pack $ICCi_2,$hint */
8959 SEM_FN_NAME ( frvbf
, blelr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
8961 #define FLD(f) abuf->fields.sfmt_bceqlr.f
8962 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
8963 int UNUSED written
= 0 ;
8964 IADDR UNUSED pc
= abuf
-> addr
;
8965 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
8968 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
8969 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 ))))) {
8971 USI opval
= GET_H_SPR ((( UINT
) 272 ));
8972 sim_queue_pc_write ( current_cpu
, opval
);
8973 written
|= ( 1 << 3 );
8974 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
8979 abuf
-> written
= written
;
8984 /* bgtlr: bgtlr$pack $ICCi_2,$hint */
8987 SEM_FN_NAME ( frvbf
, bgtlr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
8989 #define FLD(f) abuf->fields.sfmt_bceqlr.f
8990 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
8991 int UNUSED written
= 0 ;
8992 IADDR UNUSED pc
= abuf
-> addr
;
8993 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
8996 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
8997 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 )))))) {
8999 USI opval
= GET_H_SPR ((( UINT
) 272 ));
9000 sim_queue_pc_write ( current_cpu
, opval
);
9001 written
|= ( 1 << 3 );
9002 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
9007 abuf
-> written
= written
;
9012 /* bltlr: bltlr$pack $ICCi_2,$hint */
9015 SEM_FN_NAME ( frvbf
, bltlr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
9017 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9018 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
9019 int UNUSED written
= 0 ;
9020 IADDR UNUSED pc
= abuf
-> addr
;
9021 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
9024 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
9025 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 )))) {
9027 USI opval
= GET_H_SPR ((( UINT
) 272 ));
9028 sim_queue_pc_write ( current_cpu
, opval
);
9029 written
|= ( 1 << 3 );
9030 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
9035 abuf
-> written
= written
;
9040 /* bgelr: bgelr$pack $ICCi_2,$hint */
9043 SEM_FN_NAME ( frvbf
, bgelr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
9045 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9046 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
9047 int UNUSED written
= 0 ;
9048 IADDR UNUSED pc
= abuf
-> addr
;
9049 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
9052 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
9053 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 ))))) {
9055 USI opval
= GET_H_SPR ((( UINT
) 272 ));
9056 sim_queue_pc_write ( current_cpu
, opval
);
9057 written
|= ( 1 << 3 );
9058 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
9063 abuf
-> written
= written
;
9068 /* blslr: blslr$pack $ICCi_2,$hint */
9071 SEM_FN_NAME ( frvbf
, blslr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
9073 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9074 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
9075 int UNUSED written
= 0 ;
9076 IADDR UNUSED pc
= abuf
-> addr
;
9077 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
9080 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
9081 if ( ORIF ( TRUNCQIBI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 1 )), TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 4 ), 2 )))) {
9083 USI opval
= GET_H_SPR ((( UINT
) 272 ));
9084 sim_queue_pc_write ( current_cpu
, opval
);
9085 written
|= ( 1 << 3 );
9086 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
9091 abuf
-> written
= written
;
9096 /* bhilr: bhilr$pack $ICCi_2,$hint */
9099 SEM_FN_NAME ( frvbf
, bhilr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
9101 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9102 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
9103 int UNUSED written
= 0 ;
9104 IADDR UNUSED pc
= abuf
-> addr
;
9105 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
9108 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
9109 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 ))))) {
9111 USI opval
= GET_H_SPR ((( UINT
) 272 ));
9112 sim_queue_pc_write ( current_cpu
, opval
);
9113 written
|= ( 1 << 3 );
9114 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
9119 abuf
-> written
= written
;
9124 /* bclr: bclr$pack $ICCi_2,$hint */
9127 SEM_FN_NAME ( frvbf
, bclr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
9129 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9130 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
9131 int UNUSED written
= 0 ;
9132 IADDR UNUSED pc
= abuf
-> addr
;
9133 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
9136 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
9137 if ( TRUNCQIBI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 1 ))) {
9139 USI opval
= GET_H_SPR ((( UINT
) 272 ));
9140 sim_queue_pc_write ( current_cpu
, opval
);
9141 written
|= ( 1 << 3 );
9142 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
9147 abuf
-> written
= written
;
9152 /* bnclr: bnclr$pack $ICCi_2,$hint */
9155 SEM_FN_NAME ( frvbf
, bnclr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
9157 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9158 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
9159 int UNUSED written
= 0 ;
9160 IADDR UNUSED pc
= abuf
-> addr
;
9161 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
9164 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
9165 if ( NOTBI ( TRUNCQIBI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 1 )))) {
9167 USI opval
= GET_H_SPR ((( UINT
) 272 ));
9168 sim_queue_pc_write ( current_cpu
, opval
);
9169 written
|= ( 1 << 3 );
9170 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
9175 abuf
-> written
= written
;
9180 /* bnlr: bnlr$pack $ICCi_2,$hint */
9183 SEM_FN_NAME ( frvbf
, bnlr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
9185 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9186 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
9187 int UNUSED written
= 0 ;
9188 IADDR UNUSED pc
= abuf
-> addr
;
9189 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
9192 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
9193 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 8 ), 3 ))) {
9195 USI opval
= GET_H_SPR ((( UINT
) 272 ));
9196 sim_queue_pc_write ( current_cpu
, opval
);
9197 written
|= ( 1 << 3 );
9198 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
9203 abuf
-> written
= written
;
9208 /* bplr: bplr$pack $ICCi_2,$hint */
9211 SEM_FN_NAME ( frvbf
, bplr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
9213 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9214 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
9215 int UNUSED written
= 0 ;
9216 IADDR UNUSED pc
= abuf
-> addr
;
9217 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
9220 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
9221 if ( NOTBI ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 8 ), 3 )))) {
9223 USI opval
= GET_H_SPR ((( UINT
) 272 ));
9224 sim_queue_pc_write ( current_cpu
, opval
);
9225 written
|= ( 1 << 3 );
9226 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
9231 abuf
-> written
= written
;
9236 /* bvlr: bvlr$pack $ICCi_2,$hint */
9239 SEM_FN_NAME ( frvbf
, bvlr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
9241 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9242 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
9243 int UNUSED written
= 0 ;
9244 IADDR UNUSED pc
= abuf
-> addr
;
9245 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
9248 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
9249 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 2 ), 1 ))) {
9251 USI opval
= GET_H_SPR ((( UINT
) 272 ));
9252 sim_queue_pc_write ( current_cpu
, opval
);
9253 written
|= ( 1 << 3 );
9254 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
9259 abuf
-> written
= written
;
9264 /* bnvlr: bnvlr$pack $ICCi_2,$hint */
9267 SEM_FN_NAME ( frvbf
, bnvlr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
9269 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9270 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
9271 int UNUSED written
= 0 ;
9272 IADDR UNUSED pc
= abuf
-> addr
;
9273 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
9276 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
9277 if ( NOTBI ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 2 ), 1 )))) {
9279 USI opval
= GET_H_SPR ((( UINT
) 272 ));
9280 sim_queue_pc_write ( current_cpu
, opval
);
9281 written
|= ( 1 << 3 );
9282 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
9287 abuf
-> written
= written
;
9292 /* fbralr: fbralr$pack$hint_taken */
9295 SEM_FN_NAME ( frvbf
, fbralr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
9297 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9298 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
9299 int UNUSED written
= 0 ;
9300 IADDR UNUSED pc
= abuf
-> addr
;
9301 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
9304 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
9306 USI opval
= GET_H_SPR ((( UINT
) 272 ));
9307 sim_queue_pc_write ( current_cpu
, opval
);
9308 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
9316 /* fbnolr: fbnolr$pack$hint_not_taken */
9319 SEM_FN_NAME ( frvbf
, fbnolr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
9321 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9322 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
9323 int UNUSED written
= 0 ;
9324 IADDR UNUSED pc
= abuf
-> addr
;
9325 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
9327 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
9333 /* fbeqlr: fbeqlr$pack $FCCi_2,$hint */
9336 SEM_FN_NAME ( frvbf
, fbeqlr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
9338 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9339 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
9340 int UNUSED written
= 0 ;
9341 IADDR UNUSED pc
= abuf
-> addr
;
9342 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
9345 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
9346 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 8 ), 3 ))) {
9348 USI opval
= GET_H_SPR ((( UINT
) 272 ));
9349 sim_queue_pc_write ( current_cpu
, opval
);
9350 written
|= ( 1 << 3 );
9351 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
9356 abuf
-> written
= written
;
9361 /* fbnelr: fbnelr$pack $FCCi_2,$hint */
9364 SEM_FN_NAME ( frvbf
, fbnelr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
9366 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9367 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
9368 int UNUSED written
= 0 ;
9369 IADDR UNUSED pc
= abuf
-> addr
;
9370 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
9373 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
9374 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 ))))) {
9376 USI opval
= GET_H_SPR ((( UINT
) 272 ));
9377 sim_queue_pc_write ( current_cpu
, opval
);
9378 written
|= ( 1 << 3 );
9379 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
9384 abuf
-> written
= written
;
9389 /* fblglr: fblglr$pack $FCCi_2,$hint */
9392 SEM_FN_NAME ( frvbf
, fblglr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
9394 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9395 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
9396 int UNUSED written
= 0 ;
9397 IADDR UNUSED pc
= abuf
-> addr
;
9398 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
9401 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
9402 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 )))) {
9404 USI opval
= GET_H_SPR ((( UINT
) 272 ));
9405 sim_queue_pc_write ( current_cpu
, opval
);
9406 written
|= ( 1 << 3 );
9407 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
9412 abuf
-> written
= written
;
9417 /* fbuelr: fbuelr$pack $FCCi_2,$hint */
9420 SEM_FN_NAME ( frvbf
, fbuelr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
9422 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9423 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
9424 int UNUSED written
= 0 ;
9425 IADDR UNUSED pc
= abuf
-> addr
;
9426 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
9429 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
9430 if ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 8 ), 3 )), TRUNCQIBI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 1 )))) {
9432 USI opval
= GET_H_SPR ((( UINT
) 272 ));
9433 sim_queue_pc_write ( current_cpu
, opval
);
9434 written
|= ( 1 << 3 );
9435 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
9440 abuf
-> written
= written
;
9445 /* fbullr: fbullr$pack $FCCi_2,$hint */
9448 SEM_FN_NAME ( frvbf
, fbullr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
9450 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9451 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
9452 int UNUSED written
= 0 ;
9453 IADDR UNUSED pc
= abuf
-> addr
;
9454 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
9457 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
9458 if ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 4 ), 2 )), TRUNCQIBI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 1 )))) {
9460 USI opval
= GET_H_SPR ((( UINT
) 272 ));
9461 sim_queue_pc_write ( current_cpu
, opval
);
9462 written
|= ( 1 << 3 );
9463 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
9468 abuf
-> written
= written
;
9473 /* fbgelr: fbgelr$pack $FCCi_2,$hint */
9476 SEM_FN_NAME ( frvbf
, fbgelr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
9478 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9479 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
9480 int UNUSED written
= 0 ;
9481 IADDR UNUSED pc
= abuf
-> addr
;
9482 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
9485 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
9486 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 )))) {
9488 USI opval
= GET_H_SPR ((( UINT
) 272 ));
9489 sim_queue_pc_write ( current_cpu
, opval
);
9490 written
|= ( 1 << 3 );
9491 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
9496 abuf
-> written
= written
;
9501 /* fbltlr: fbltlr$pack $FCCi_2,$hint */
9504 SEM_FN_NAME ( frvbf
, fbltlr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
9506 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9507 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
9508 int UNUSED written
= 0 ;
9509 IADDR UNUSED pc
= abuf
-> addr
;
9510 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
9513 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
9514 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 4 ), 2 ))) {
9516 USI opval
= GET_H_SPR ((( UINT
) 272 ));
9517 sim_queue_pc_write ( current_cpu
, opval
);
9518 written
|= ( 1 << 3 );
9519 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
9524 abuf
-> written
= written
;
9529 /* fbugelr: fbugelr$pack $FCCi_2,$hint */
9532 SEM_FN_NAME ( frvbf
, fbugelr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
9534 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9535 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
9536 int UNUSED written
= 0 ;
9537 IADDR UNUSED pc
= abuf
-> addr
;
9538 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
9541 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
9542 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 ))))) {
9544 USI opval
= GET_H_SPR ((( UINT
) 272 ));
9545 sim_queue_pc_write ( current_cpu
, opval
);
9546 written
|= ( 1 << 3 );
9547 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
9552 abuf
-> written
= written
;
9557 /* fbuglr: fbuglr$pack $FCCi_2,$hint */
9560 SEM_FN_NAME ( frvbf
, fbuglr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
9562 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9563 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
9564 int UNUSED written
= 0 ;
9565 IADDR UNUSED pc
= abuf
-> addr
;
9566 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
9569 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
9570 if ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 2 ), 1 )), TRUNCQIBI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 1 )))) {
9572 USI opval
= GET_H_SPR ((( UINT
) 272 ));
9573 sim_queue_pc_write ( current_cpu
, opval
);
9574 written
|= ( 1 << 3 );
9575 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
9580 abuf
-> written
= written
;
9585 /* fblelr: fblelr$pack $FCCi_2,$hint */
9588 SEM_FN_NAME ( frvbf
, fblelr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
9590 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9591 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
9592 int UNUSED written
= 0 ;
9593 IADDR UNUSED pc
= abuf
-> addr
;
9594 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
9597 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
9598 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 )))) {
9600 USI opval
= GET_H_SPR ((( UINT
) 272 ));
9601 sim_queue_pc_write ( current_cpu
, opval
);
9602 written
|= ( 1 << 3 );
9603 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
9608 abuf
-> written
= written
;
9613 /* fbgtlr: fbgtlr$pack $FCCi_2,$hint */
9616 SEM_FN_NAME ( frvbf
, fbgtlr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
9618 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9619 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
9620 int UNUSED written
= 0 ;
9621 IADDR UNUSED pc
= abuf
-> addr
;
9622 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
9625 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
9626 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 2 ), 1 ))) {
9628 USI opval
= GET_H_SPR ((( UINT
) 272 ));
9629 sim_queue_pc_write ( current_cpu
, opval
);
9630 written
|= ( 1 << 3 );
9631 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
9636 abuf
-> written
= written
;
9641 /* fbulelr: fbulelr$pack $FCCi_2,$hint */
9644 SEM_FN_NAME ( frvbf
, fbulelr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
9646 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9647 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
9648 int UNUSED written
= 0 ;
9649 IADDR UNUSED pc
= abuf
-> addr
;
9650 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
9653 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
9654 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 ))))) {
9656 USI opval
= GET_H_SPR ((( UINT
) 272 ));
9657 sim_queue_pc_write ( current_cpu
, opval
);
9658 written
|= ( 1 << 3 );
9659 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
9664 abuf
-> written
= written
;
9669 /* fbulr: fbulr$pack $FCCi_2,$hint */
9672 SEM_FN_NAME ( frvbf
, fbulr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
9674 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9675 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
9676 int UNUSED written
= 0 ;
9677 IADDR UNUSED pc
= abuf
-> addr
;
9678 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
9681 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
9682 if ( TRUNCQIBI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 1 ))) {
9684 USI opval
= GET_H_SPR ((( UINT
) 272 ));
9685 sim_queue_pc_write ( current_cpu
, opval
);
9686 written
|= ( 1 << 3 );
9687 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
9692 abuf
-> written
= written
;
9697 /* fbolr: fbolr$pack $FCCi_2,$hint */
9700 SEM_FN_NAME ( frvbf
, fbolr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
9702 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9703 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
9704 int UNUSED written
= 0 ;
9705 IADDR UNUSED pc
= abuf
-> addr
;
9706 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
9709 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
9710 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 ))))) {
9712 USI opval
= GET_H_SPR ((( UINT
) 272 ));
9713 sim_queue_pc_write ( current_cpu
, opval
);
9714 written
|= ( 1 << 3 );
9715 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
9720 abuf
-> written
= written
;
9725 /* bcralr: bcralr$pack $ccond$hint_taken */
9728 SEM_FN_NAME ( frvbf
, bcralr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
9730 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9731 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
9732 int UNUSED written
= 0 ;
9733 IADDR UNUSED pc
= abuf
-> addr
;
9734 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
9737 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
9740 tmp_tmp
= SUBSI ( GET_H_SPR ((( UINT
) 273 )), 1 );
9742 USI opval
= tmp_tmp
;
9743 sim_queue_fn_si_write ( current_cpu
, frvbf_h_spr_set
, (( UINT
) 273 ), opval
);
9744 TRACE_RESULT ( current_cpu
, abuf
, "spr" , 'x' , opval
);
9746 if ( EQSI ( FLD ( f_ccond
), 0 )) {
9747 if ( NESI ( tmp_tmp
, 0 )) {
9749 USI opval
= GET_H_SPR ((( UINT
) 272 ));
9750 sim_queue_pc_write ( current_cpu
, opval
);
9751 written
|= ( 1 << 5 );
9752 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
9756 if ( EQSI ( tmp_tmp
, 0 )) {
9758 USI opval
= GET_H_SPR ((( UINT
) 272 ));
9759 sim_queue_pc_write ( current_cpu
, opval
);
9760 written
|= ( 1 << 5 );
9761 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
9768 abuf
-> written
= written
;
9773 /* bcnolr: bcnolr$pack$hint_not_taken */
9776 SEM_FN_NAME ( frvbf
, bcnolr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
9778 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9779 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
9780 int UNUSED written
= 0 ;
9781 IADDR UNUSED pc
= abuf
-> addr
;
9782 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
9785 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
9788 tmp_tmp
= SUBSI ( GET_H_SPR ((( UINT
) 273 )), 1 );
9790 USI opval
= tmp_tmp
;
9791 sim_queue_fn_si_write ( current_cpu
, frvbf_h_spr_set
, (( UINT
) 273 ), opval
);
9792 TRACE_RESULT ( current_cpu
, abuf
, "spr" , 'x' , opval
);
9802 /* bceqlr: bceqlr$pack $ICCi_2,$ccond,$hint */
9805 SEM_FN_NAME ( frvbf
, bceqlr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
9807 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9808 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
9809 int UNUSED written
= 0 ;
9810 IADDR UNUSED pc
= abuf
-> addr
;
9811 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
9814 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
9817 tmp_tmp
= SUBSI ( GET_H_SPR ((( UINT
) 273 )), 1 );
9819 USI opval
= tmp_tmp
;
9820 sim_queue_fn_si_write ( current_cpu
, frvbf_h_spr_set
, (( UINT
) 273 ), opval
);
9821 TRACE_RESULT ( current_cpu
, abuf
, "spr" , 'x' , opval
);
9823 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 4 ), 2 ))) {
9824 if ( EQSI ( FLD ( f_ccond
), 0 )) {
9825 if ( NESI ( tmp_tmp
, 0 )) {
9827 USI opval
= GET_H_SPR ((( UINT
) 272 ));
9828 sim_queue_pc_write ( current_cpu
, opval
);
9829 written
|= ( 1 << 6 );
9830 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
9834 if ( EQSI ( tmp_tmp
, 0 )) {
9836 USI opval
= GET_H_SPR ((( UINT
) 272 ));
9837 sim_queue_pc_write ( current_cpu
, opval
);
9838 written
|= ( 1 << 6 );
9839 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
9847 abuf
-> written
= written
;
9852 /* bcnelr: bcnelr$pack $ICCi_2,$ccond,$hint */
9855 SEM_FN_NAME ( frvbf
, bcnelr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
9857 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9858 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
9859 int UNUSED written
= 0 ;
9860 IADDR UNUSED pc
= abuf
-> addr
;
9861 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
9864 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
9867 tmp_tmp
= SUBSI ( GET_H_SPR ((( UINT
) 273 )), 1 );
9869 USI opval
= tmp_tmp
;
9870 sim_queue_fn_si_write ( current_cpu
, frvbf_h_spr_set
, (( UINT
) 273 ), opval
);
9871 TRACE_RESULT ( current_cpu
, abuf
, "spr" , 'x' , opval
);
9873 if ( NOTBI ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 4 ), 2 )))) {
9874 if ( EQSI ( FLD ( f_ccond
), 0 )) {
9875 if ( NESI ( tmp_tmp
, 0 )) {
9877 USI opval
= GET_H_SPR ((( UINT
) 272 ));
9878 sim_queue_pc_write ( current_cpu
, opval
);
9879 written
|= ( 1 << 6 );
9880 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
9884 if ( EQSI ( tmp_tmp
, 0 )) {
9886 USI opval
= GET_H_SPR ((( UINT
) 272 ));
9887 sim_queue_pc_write ( current_cpu
, opval
);
9888 written
|= ( 1 << 6 );
9889 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
9897 abuf
-> written
= written
;
9902 /* bclelr: bclelr$pack $ICCi_2,$ccond,$hint */
9905 SEM_FN_NAME ( frvbf
, bclelr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
9907 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9908 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
9909 int UNUSED written
= 0 ;
9910 IADDR UNUSED pc
= abuf
-> addr
;
9911 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
9914 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
9917 tmp_tmp
= SUBSI ( GET_H_SPR ((( UINT
) 273 )), 1 );
9919 USI opval
= tmp_tmp
;
9920 sim_queue_fn_si_write ( current_cpu
, frvbf_h_spr_set
, (( UINT
) 273 ), opval
);
9921 TRACE_RESULT ( current_cpu
, abuf
, "spr" , 'x' , opval
);
9923 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 ))))) {
9924 if ( EQSI ( FLD ( f_ccond
), 0 )) {
9925 if ( NESI ( tmp_tmp
, 0 )) {
9927 USI opval
= GET_H_SPR ((( UINT
) 272 ));
9928 sim_queue_pc_write ( current_cpu
, opval
);
9929 written
|= ( 1 << 6 );
9930 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
9934 if ( EQSI ( tmp_tmp
, 0 )) {
9936 USI opval
= GET_H_SPR ((( UINT
) 272 ));
9937 sim_queue_pc_write ( current_cpu
, opval
);
9938 written
|= ( 1 << 6 );
9939 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
9947 abuf
-> written
= written
;
9952 /* bcgtlr: bcgtlr$pack $ICCi_2,$ccond,$hint */
9955 SEM_FN_NAME ( frvbf
, bcgtlr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
9957 #define FLD(f) abuf->fields.sfmt_bceqlr.f
9958 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
9959 int UNUSED written
= 0 ;
9960 IADDR UNUSED pc
= abuf
-> addr
;
9961 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
9964 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
9967 tmp_tmp
= SUBSI ( GET_H_SPR ((( UINT
) 273 )), 1 );
9969 USI opval
= tmp_tmp
;
9970 sim_queue_fn_si_write ( current_cpu
, frvbf_h_spr_set
, (( UINT
) 273 ), opval
);
9971 TRACE_RESULT ( current_cpu
, abuf
, "spr" , 'x' , opval
);
9973 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 )))))) {
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 << 6 );
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 << 6 );
9989 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
9997 abuf
-> written
= written
;
10002 /* bcltlr: bcltlr$pack $ICCi_2,$ccond,$hint */
10005 SEM_FN_NAME ( frvbf
, bcltlr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
10007 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10008 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
10009 int UNUSED written
= 0 ;
10010 IADDR UNUSED pc
= abuf
-> addr
;
10011 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
10014 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
10017 tmp_tmp
= SUBSI ( GET_H_SPR ((( UINT
) 273 )), 1 );
10019 USI opval
= tmp_tmp
;
10020 sim_queue_fn_si_write ( current_cpu
, frvbf_h_spr_set
, (( UINT
) 273 ), opval
);
10021 TRACE_RESULT ( current_cpu
, abuf
, "spr" , 'x' , opval
);
10023 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 )))) {
10024 if ( EQSI ( FLD ( f_ccond
), 0 )) {
10025 if ( NESI ( tmp_tmp
, 0 )) {
10027 USI opval
= GET_H_SPR ((( UINT
) 272 ));
10028 sim_queue_pc_write ( current_cpu
, opval
);
10029 written
|= ( 1 << 6 );
10030 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
10034 if ( EQSI ( tmp_tmp
, 0 )) {
10036 USI opval
= GET_H_SPR ((( UINT
) 272 ));
10037 sim_queue_pc_write ( current_cpu
, opval
);
10038 written
|= ( 1 << 6 );
10039 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
10047 abuf
-> written
= written
;
10052 /* bcgelr: bcgelr$pack $ICCi_2,$ccond,$hint */
10055 SEM_FN_NAME ( frvbf
, bcgelr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
10057 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10058 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
10059 int UNUSED written
= 0 ;
10060 IADDR UNUSED pc
= abuf
-> addr
;
10061 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
10064 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
10067 tmp_tmp
= SUBSI ( GET_H_SPR ((( UINT
) 273 )), 1 );
10069 USI opval
= tmp_tmp
;
10070 sim_queue_fn_si_write ( current_cpu
, frvbf_h_spr_set
, (( UINT
) 273 ), opval
);
10071 TRACE_RESULT ( current_cpu
, abuf
, "spr" , 'x' , opval
);
10073 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 ))))) {
10074 if ( EQSI ( FLD ( f_ccond
), 0 )) {
10075 if ( NESI ( tmp_tmp
, 0 )) {
10077 USI opval
= GET_H_SPR ((( UINT
) 272 ));
10078 sim_queue_pc_write ( current_cpu
, opval
);
10079 written
|= ( 1 << 6 );
10080 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
10084 if ( EQSI ( tmp_tmp
, 0 )) {
10086 USI opval
= GET_H_SPR ((( UINT
) 272 ));
10087 sim_queue_pc_write ( current_cpu
, opval
);
10088 written
|= ( 1 << 6 );
10089 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
10097 abuf
-> written
= written
;
10102 /* bclslr: bclslr$pack $ICCi_2,$ccond,$hint */
10105 SEM_FN_NAME ( frvbf
, bclslr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
10107 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10108 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
10109 int UNUSED written
= 0 ;
10110 IADDR UNUSED pc
= abuf
-> addr
;
10111 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
10114 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
10117 tmp_tmp
= SUBSI ( GET_H_SPR ((( UINT
) 273 )), 1 );
10119 USI opval
= tmp_tmp
;
10120 sim_queue_fn_si_write ( current_cpu
, frvbf_h_spr_set
, (( UINT
) 273 ), opval
);
10121 TRACE_RESULT ( current_cpu
, abuf
, "spr" , 'x' , opval
);
10123 if ( ORIF ( TRUNCQIBI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 1 )), TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 4 ), 2 )))) {
10124 if ( EQSI ( FLD ( f_ccond
), 0 )) {
10125 if ( NESI ( tmp_tmp
, 0 )) {
10127 USI opval
= GET_H_SPR ((( UINT
) 272 ));
10128 sim_queue_pc_write ( current_cpu
, opval
);
10129 written
|= ( 1 << 6 );
10130 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
10134 if ( EQSI ( tmp_tmp
, 0 )) {
10136 USI opval
= GET_H_SPR ((( UINT
) 272 ));
10137 sim_queue_pc_write ( current_cpu
, opval
);
10138 written
|= ( 1 << 6 );
10139 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
10147 abuf
-> written
= written
;
10152 /* bchilr: bchilr$pack $ICCi_2,$ccond,$hint */
10155 SEM_FN_NAME ( frvbf
, bchilr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
10157 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10158 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
10159 int UNUSED written
= 0 ;
10160 IADDR UNUSED pc
= abuf
-> addr
;
10161 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
10164 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
10167 tmp_tmp
= SUBSI ( GET_H_SPR ((( UINT
) 273 )), 1 );
10169 USI opval
= tmp_tmp
;
10170 sim_queue_fn_si_write ( current_cpu
, frvbf_h_spr_set
, (( UINT
) 273 ), opval
);
10171 TRACE_RESULT ( current_cpu
, abuf
, "spr" , 'x' , opval
);
10173 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 ))))) {
10174 if ( EQSI ( FLD ( f_ccond
), 0 )) {
10175 if ( NESI ( tmp_tmp
, 0 )) {
10177 USI opval
= GET_H_SPR ((( UINT
) 272 ));
10178 sim_queue_pc_write ( current_cpu
, opval
);
10179 written
|= ( 1 << 6 );
10180 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
10184 if ( EQSI ( tmp_tmp
, 0 )) {
10186 USI opval
= GET_H_SPR ((( UINT
) 272 ));
10187 sim_queue_pc_write ( current_cpu
, opval
);
10188 written
|= ( 1 << 6 );
10189 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
10197 abuf
-> written
= written
;
10202 /* bcclr: bcclr$pack $ICCi_2,$ccond,$hint */
10205 SEM_FN_NAME ( frvbf
, bcclr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
10207 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10208 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
10209 int UNUSED written
= 0 ;
10210 IADDR UNUSED pc
= abuf
-> addr
;
10211 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
10214 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
10217 tmp_tmp
= SUBSI ( GET_H_SPR ((( UINT
) 273 )), 1 );
10219 USI opval
= tmp_tmp
;
10220 sim_queue_fn_si_write ( current_cpu
, frvbf_h_spr_set
, (( UINT
) 273 ), opval
);
10221 TRACE_RESULT ( current_cpu
, abuf
, "spr" , 'x' , opval
);
10223 if ( TRUNCQIBI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 1 ))) {
10224 if ( EQSI ( FLD ( f_ccond
), 0 )) {
10225 if ( NESI ( tmp_tmp
, 0 )) {
10227 USI opval
= GET_H_SPR ((( UINT
) 272 ));
10228 sim_queue_pc_write ( current_cpu
, opval
);
10229 written
|= ( 1 << 6 );
10230 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
10234 if ( EQSI ( tmp_tmp
, 0 )) {
10236 USI opval
= GET_H_SPR ((( UINT
) 272 ));
10237 sim_queue_pc_write ( current_cpu
, opval
);
10238 written
|= ( 1 << 6 );
10239 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
10247 abuf
-> written
= written
;
10252 /* bcnclr: bcnclr$pack $ICCi_2,$ccond,$hint */
10255 SEM_FN_NAME ( frvbf
, bcnclr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
10257 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10258 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
10259 int UNUSED written
= 0 ;
10260 IADDR UNUSED pc
= abuf
-> addr
;
10261 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
10264 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
10267 tmp_tmp
= SUBSI ( GET_H_SPR ((( UINT
) 273 )), 1 );
10269 USI opval
= tmp_tmp
;
10270 sim_queue_fn_si_write ( current_cpu
, frvbf_h_spr_set
, (( UINT
) 273 ), opval
);
10271 TRACE_RESULT ( current_cpu
, abuf
, "spr" , 'x' , opval
);
10273 if ( NOTBI ( TRUNCQIBI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 1 )))) {
10274 if ( EQSI ( FLD ( f_ccond
), 0 )) {
10275 if ( NESI ( tmp_tmp
, 0 )) {
10277 USI opval
= GET_H_SPR ((( UINT
) 272 ));
10278 sim_queue_pc_write ( current_cpu
, opval
);
10279 written
|= ( 1 << 6 );
10280 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
10284 if ( EQSI ( tmp_tmp
, 0 )) {
10286 USI opval
= GET_H_SPR ((( UINT
) 272 ));
10287 sim_queue_pc_write ( current_cpu
, opval
);
10288 written
|= ( 1 << 6 );
10289 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
10297 abuf
-> written
= written
;
10302 /* bcnlr: bcnlr$pack $ICCi_2,$ccond,$hint */
10305 SEM_FN_NAME ( frvbf
, bcnlr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
10307 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10308 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
10309 int UNUSED written
= 0 ;
10310 IADDR UNUSED pc
= abuf
-> addr
;
10311 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
10314 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
10317 tmp_tmp
= SUBSI ( GET_H_SPR ((( UINT
) 273 )), 1 );
10319 USI opval
= tmp_tmp
;
10320 sim_queue_fn_si_write ( current_cpu
, frvbf_h_spr_set
, (( UINT
) 273 ), opval
);
10321 TRACE_RESULT ( current_cpu
, abuf
, "spr" , 'x' , opval
);
10323 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 8 ), 3 ))) {
10324 if ( EQSI ( FLD ( f_ccond
), 0 )) {
10325 if ( NESI ( tmp_tmp
, 0 )) {
10327 USI opval
= GET_H_SPR ((( UINT
) 272 ));
10328 sim_queue_pc_write ( current_cpu
, opval
);
10329 written
|= ( 1 << 6 );
10330 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
10334 if ( EQSI ( tmp_tmp
, 0 )) {
10336 USI opval
= GET_H_SPR ((( UINT
) 272 ));
10337 sim_queue_pc_write ( current_cpu
, opval
);
10338 written
|= ( 1 << 6 );
10339 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
10347 abuf
-> written
= written
;
10352 /* bcplr: bcplr$pack $ICCi_2,$ccond,$hint */
10355 SEM_FN_NAME ( frvbf
, bcplr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
10357 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10358 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
10359 int UNUSED written
= 0 ;
10360 IADDR UNUSED pc
= abuf
-> addr
;
10361 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
10364 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
10367 tmp_tmp
= SUBSI ( GET_H_SPR ((( UINT
) 273 )), 1 );
10369 USI opval
= tmp_tmp
;
10370 sim_queue_fn_si_write ( current_cpu
, frvbf_h_spr_set
, (( UINT
) 273 ), opval
);
10371 TRACE_RESULT ( current_cpu
, abuf
, "spr" , 'x' , opval
);
10373 if ( NOTBI ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 8 ), 3 )))) {
10374 if ( EQSI ( FLD ( f_ccond
), 0 )) {
10375 if ( NESI ( tmp_tmp
, 0 )) {
10377 USI opval
= GET_H_SPR ((( UINT
) 272 ));
10378 sim_queue_pc_write ( current_cpu
, opval
);
10379 written
|= ( 1 << 6 );
10380 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
10384 if ( EQSI ( tmp_tmp
, 0 )) {
10386 USI opval
= GET_H_SPR ((( UINT
) 272 ));
10387 sim_queue_pc_write ( current_cpu
, opval
);
10388 written
|= ( 1 << 6 );
10389 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
10397 abuf
-> written
= written
;
10402 /* bcvlr: bcvlr$pack $ICCi_2,$ccond,$hint */
10405 SEM_FN_NAME ( frvbf
, bcvlr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
10407 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10408 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
10409 int UNUSED written
= 0 ;
10410 IADDR UNUSED pc
= abuf
-> addr
;
10411 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
10414 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
10417 tmp_tmp
= SUBSI ( GET_H_SPR ((( UINT
) 273 )), 1 );
10419 USI opval
= tmp_tmp
;
10420 sim_queue_fn_si_write ( current_cpu
, frvbf_h_spr_set
, (( UINT
) 273 ), opval
);
10421 TRACE_RESULT ( current_cpu
, abuf
, "spr" , 'x' , opval
);
10423 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 2 ), 1 ))) {
10424 if ( EQSI ( FLD ( f_ccond
), 0 )) {
10425 if ( NESI ( tmp_tmp
, 0 )) {
10427 USI opval
= GET_H_SPR ((( UINT
) 272 ));
10428 sim_queue_pc_write ( current_cpu
, opval
);
10429 written
|= ( 1 << 6 );
10430 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
10434 if ( EQSI ( tmp_tmp
, 0 )) {
10436 USI opval
= GET_H_SPR ((( UINT
) 272 ));
10437 sim_queue_pc_write ( current_cpu
, opval
);
10438 written
|= ( 1 << 6 );
10439 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
10447 abuf
-> written
= written
;
10452 /* bcnvlr: bcnvlr$pack $ICCi_2,$ccond,$hint */
10455 SEM_FN_NAME ( frvbf
, bcnvlr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
10457 #define FLD(f) abuf->fields.sfmt_bceqlr.f
10458 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
10459 int UNUSED written
= 0 ;
10460 IADDR UNUSED pc
= abuf
-> addr
;
10461 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
10464 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
10467 tmp_tmp
= SUBSI ( GET_H_SPR ((( UINT
) 273 )), 1 );
10469 USI opval
= tmp_tmp
;
10470 sim_queue_fn_si_write ( current_cpu
, frvbf_h_spr_set
, (( UINT
) 273 ), opval
);
10471 TRACE_RESULT ( current_cpu
, abuf
, "spr" , 'x' , opval
);
10473 if ( NOTBI ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 2 ), 1 )))) {
10474 if ( EQSI ( FLD ( f_ccond
), 0 )) {
10475 if ( NESI ( tmp_tmp
, 0 )) {
10477 USI opval
= GET_H_SPR ((( UINT
) 272 ));
10478 sim_queue_pc_write ( current_cpu
, opval
);
10479 written
|= ( 1 << 6 );
10480 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
10484 if ( EQSI ( tmp_tmp
, 0 )) {
10486 USI opval
= GET_H_SPR ((( UINT
) 272 ));
10487 sim_queue_pc_write ( current_cpu
, opval
);
10488 written
|= ( 1 << 6 );
10489 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
10497 abuf
-> written
= written
;
10502 /* fcbralr: fcbralr$pack $ccond$hint_taken */
10505 SEM_FN_NAME ( frvbf
, fcbralr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
10507 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10508 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
10509 int UNUSED written
= 0 ;
10510 IADDR UNUSED pc
= abuf
-> addr
;
10511 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
10514 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
10517 tmp_tmp
= SUBSI ( GET_H_SPR ((( UINT
) 273 )), 1 );
10519 USI opval
= tmp_tmp
;
10520 sim_queue_fn_si_write ( current_cpu
, frvbf_h_spr_set
, (( UINT
) 273 ), opval
);
10521 TRACE_RESULT ( current_cpu
, abuf
, "spr" , 'x' , opval
);
10523 if ( EQSI ( FLD ( f_ccond
), 0 )) {
10524 if ( NESI ( tmp_tmp
, 0 )) {
10526 USI opval
= GET_H_SPR ((( UINT
) 272 ));
10527 sim_queue_pc_write ( current_cpu
, opval
);
10528 written
|= ( 1 << 5 );
10529 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
10533 if ( EQSI ( tmp_tmp
, 0 )) {
10535 USI opval
= GET_H_SPR ((( UINT
) 272 ));
10536 sim_queue_pc_write ( current_cpu
, opval
);
10537 written
|= ( 1 << 5 );
10538 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
10545 abuf
-> written
= written
;
10550 /* fcbnolr: fcbnolr$pack$hint_not_taken */
10553 SEM_FN_NAME ( frvbf
, fcbnolr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
10555 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10556 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
10557 int UNUSED written
= 0 ;
10558 IADDR UNUSED pc
= abuf
-> addr
;
10559 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
10562 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
10565 tmp_tmp
= SUBSI ( GET_H_SPR ((( UINT
) 273 )), 1 );
10567 USI opval
= tmp_tmp
;
10568 sim_queue_fn_si_write ( current_cpu
, frvbf_h_spr_set
, (( UINT
) 273 ), opval
);
10569 TRACE_RESULT ( current_cpu
, abuf
, "spr" , 'x' , opval
);
10571 (( void ) 0 ); /*nop*/
10579 /* fcbeqlr: fcbeqlr$pack $FCCi_2,$ccond,$hint */
10582 SEM_FN_NAME ( frvbf
, fcbeqlr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
10584 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10585 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
10586 int UNUSED written
= 0 ;
10587 IADDR UNUSED pc
= abuf
-> addr
;
10588 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
10591 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
10594 tmp_tmp
= SUBSI ( GET_H_SPR ((( UINT
) 273 )), 1 );
10596 USI opval
= tmp_tmp
;
10597 sim_queue_fn_si_write ( current_cpu
, frvbf_h_spr_set
, (( UINT
) 273 ), opval
);
10598 TRACE_RESULT ( current_cpu
, abuf
, "spr" , 'x' , opval
);
10600 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 8 ), 3 ))) {
10601 if ( EQSI ( FLD ( f_ccond
), 0 )) {
10602 if ( NESI ( tmp_tmp
, 0 )) {
10604 USI opval
= GET_H_SPR ((( UINT
) 272 ));
10605 sim_queue_pc_write ( current_cpu
, opval
);
10606 written
|= ( 1 << 6 );
10607 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
10611 if ( EQSI ( tmp_tmp
, 0 )) {
10613 USI opval
= GET_H_SPR ((( UINT
) 272 ));
10614 sim_queue_pc_write ( current_cpu
, opval
);
10615 written
|= ( 1 << 6 );
10616 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
10624 abuf
-> written
= written
;
10629 /* fcbnelr: fcbnelr$pack $FCCi_2,$ccond,$hint */
10632 SEM_FN_NAME ( frvbf
, fcbnelr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
10634 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10635 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
10636 int UNUSED written
= 0 ;
10637 IADDR UNUSED pc
= abuf
-> addr
;
10638 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
10641 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
10644 tmp_tmp
= SUBSI ( GET_H_SPR ((( UINT
) 273 )), 1 );
10646 USI opval
= tmp_tmp
;
10647 sim_queue_fn_si_write ( current_cpu
, frvbf_h_spr_set
, (( UINT
) 273 ), opval
);
10648 TRACE_RESULT ( current_cpu
, abuf
, "spr" , 'x' , opval
);
10650 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 ))))) {
10651 if ( EQSI ( FLD ( f_ccond
), 0 )) {
10652 if ( NESI ( tmp_tmp
, 0 )) {
10654 USI opval
= GET_H_SPR ((( UINT
) 272 ));
10655 sim_queue_pc_write ( current_cpu
, opval
);
10656 written
|= ( 1 << 6 );
10657 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
10661 if ( EQSI ( tmp_tmp
, 0 )) {
10663 USI opval
= GET_H_SPR ((( UINT
) 272 ));
10664 sim_queue_pc_write ( current_cpu
, opval
);
10665 written
|= ( 1 << 6 );
10666 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
10674 abuf
-> written
= written
;
10679 /* fcblglr: fcblglr$pack $FCCi_2,$ccond,$hint */
10682 SEM_FN_NAME ( frvbf
, fcblglr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
10684 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10685 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
10686 int UNUSED written
= 0 ;
10687 IADDR UNUSED pc
= abuf
-> addr
;
10688 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
10691 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
10694 tmp_tmp
= SUBSI ( GET_H_SPR ((( UINT
) 273 )), 1 );
10696 USI opval
= tmp_tmp
;
10697 sim_queue_fn_si_write ( current_cpu
, frvbf_h_spr_set
, (( UINT
) 273 ), opval
);
10698 TRACE_RESULT ( current_cpu
, abuf
, "spr" , 'x' , opval
);
10700 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 )))) {
10701 if ( EQSI ( FLD ( f_ccond
), 0 )) {
10702 if ( NESI ( tmp_tmp
, 0 )) {
10704 USI opval
= GET_H_SPR ((( UINT
) 272 ));
10705 sim_queue_pc_write ( current_cpu
, opval
);
10706 written
|= ( 1 << 6 );
10707 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
10711 if ( EQSI ( tmp_tmp
, 0 )) {
10713 USI opval
= GET_H_SPR ((( UINT
) 272 ));
10714 sim_queue_pc_write ( current_cpu
, opval
);
10715 written
|= ( 1 << 6 );
10716 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
10724 abuf
-> written
= written
;
10729 /* fcbuelr: fcbuelr$pack $FCCi_2,$ccond,$hint */
10732 SEM_FN_NAME ( frvbf
, fcbuelr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
10734 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10735 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
10736 int UNUSED written
= 0 ;
10737 IADDR UNUSED pc
= abuf
-> addr
;
10738 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
10741 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
10744 tmp_tmp
= SUBSI ( GET_H_SPR ((( UINT
) 273 )), 1 );
10746 USI opval
= tmp_tmp
;
10747 sim_queue_fn_si_write ( current_cpu
, frvbf_h_spr_set
, (( UINT
) 273 ), opval
);
10748 TRACE_RESULT ( current_cpu
, abuf
, "spr" , 'x' , opval
);
10750 if ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 8 ), 3 )), TRUNCQIBI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 1 )))) {
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 << 6 );
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 << 6 );
10766 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
10774 abuf
-> written
= written
;
10779 /* fcbullr: fcbullr$pack $FCCi_2,$ccond,$hint */
10782 SEM_FN_NAME ( frvbf
, fcbullr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
10784 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10785 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
10786 int UNUSED written
= 0 ;
10787 IADDR UNUSED pc
= abuf
-> addr
;
10788 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
10791 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
10794 tmp_tmp
= SUBSI ( GET_H_SPR ((( UINT
) 273 )), 1 );
10796 USI opval
= tmp_tmp
;
10797 sim_queue_fn_si_write ( current_cpu
, frvbf_h_spr_set
, (( UINT
) 273 ), opval
);
10798 TRACE_RESULT ( current_cpu
, abuf
, "spr" , 'x' , opval
);
10800 if ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 4 ), 2 )), TRUNCQIBI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 1 )))) {
10801 if ( EQSI ( FLD ( f_ccond
), 0 )) {
10802 if ( NESI ( tmp_tmp
, 0 )) {
10804 USI opval
= GET_H_SPR ((( UINT
) 272 ));
10805 sim_queue_pc_write ( current_cpu
, opval
);
10806 written
|= ( 1 << 6 );
10807 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
10811 if ( EQSI ( tmp_tmp
, 0 )) {
10813 USI opval
= GET_H_SPR ((( UINT
) 272 ));
10814 sim_queue_pc_write ( current_cpu
, opval
);
10815 written
|= ( 1 << 6 );
10816 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
10824 abuf
-> written
= written
;
10829 /* fcbgelr: fcbgelr$pack $FCCi_2,$ccond,$hint */
10832 SEM_FN_NAME ( frvbf
, fcbgelr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
10834 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10835 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
10836 int UNUSED written
= 0 ;
10837 IADDR UNUSED pc
= abuf
-> addr
;
10838 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
10841 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
10844 tmp_tmp
= SUBSI ( GET_H_SPR ((( UINT
) 273 )), 1 );
10846 USI opval
= tmp_tmp
;
10847 sim_queue_fn_si_write ( current_cpu
, frvbf_h_spr_set
, (( UINT
) 273 ), opval
);
10848 TRACE_RESULT ( current_cpu
, abuf
, "spr" , 'x' , opval
);
10850 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 )))) {
10851 if ( EQSI ( FLD ( f_ccond
), 0 )) {
10852 if ( NESI ( tmp_tmp
, 0 )) {
10854 USI opval
= GET_H_SPR ((( UINT
) 272 ));
10855 sim_queue_pc_write ( current_cpu
, opval
);
10856 written
|= ( 1 << 6 );
10857 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
10861 if ( EQSI ( tmp_tmp
, 0 )) {
10863 USI opval
= GET_H_SPR ((( UINT
) 272 ));
10864 sim_queue_pc_write ( current_cpu
, opval
);
10865 written
|= ( 1 << 6 );
10866 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
10874 abuf
-> written
= written
;
10879 /* fcbltlr: fcbltlr$pack $FCCi_2,$ccond,$hint */
10882 SEM_FN_NAME ( frvbf
, fcbltlr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
10884 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10885 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
10886 int UNUSED written
= 0 ;
10887 IADDR UNUSED pc
= abuf
-> addr
;
10888 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
10891 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
10894 tmp_tmp
= SUBSI ( GET_H_SPR ((( UINT
) 273 )), 1 );
10896 USI opval
= tmp_tmp
;
10897 sim_queue_fn_si_write ( current_cpu
, frvbf_h_spr_set
, (( UINT
) 273 ), opval
);
10898 TRACE_RESULT ( current_cpu
, abuf
, "spr" , 'x' , opval
);
10900 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 4 ), 2 ))) {
10901 if ( EQSI ( FLD ( f_ccond
), 0 )) {
10902 if ( NESI ( tmp_tmp
, 0 )) {
10904 USI opval
= GET_H_SPR ((( UINT
) 272 ));
10905 sim_queue_pc_write ( current_cpu
, opval
);
10906 written
|= ( 1 << 6 );
10907 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
10911 if ( EQSI ( tmp_tmp
, 0 )) {
10913 USI opval
= GET_H_SPR ((( UINT
) 272 ));
10914 sim_queue_pc_write ( current_cpu
, opval
);
10915 written
|= ( 1 << 6 );
10916 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
10924 abuf
-> written
= written
;
10929 /* fcbugelr: fcbugelr$pack $FCCi_2,$ccond,$hint */
10932 SEM_FN_NAME ( frvbf
, fcbugelr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
10934 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10935 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
10936 int UNUSED written
= 0 ;
10937 IADDR UNUSED pc
= abuf
-> addr
;
10938 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
10941 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
10944 tmp_tmp
= SUBSI ( GET_H_SPR ((( UINT
) 273 )), 1 );
10946 USI opval
= tmp_tmp
;
10947 sim_queue_fn_si_write ( current_cpu
, frvbf_h_spr_set
, (( UINT
) 273 ), opval
);
10948 TRACE_RESULT ( current_cpu
, abuf
, "spr" , 'x' , opval
);
10950 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 ))))) {
10951 if ( EQSI ( FLD ( f_ccond
), 0 )) {
10952 if ( NESI ( tmp_tmp
, 0 )) {
10954 USI opval
= GET_H_SPR ((( UINT
) 272 ));
10955 sim_queue_pc_write ( current_cpu
, opval
);
10956 written
|= ( 1 << 6 );
10957 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
10961 if ( EQSI ( tmp_tmp
, 0 )) {
10963 USI opval
= GET_H_SPR ((( UINT
) 272 ));
10964 sim_queue_pc_write ( current_cpu
, opval
);
10965 written
|= ( 1 << 6 );
10966 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
10974 abuf
-> written
= written
;
10979 /* fcbuglr: fcbuglr$pack $FCCi_2,$ccond,$hint */
10982 SEM_FN_NAME ( frvbf
, fcbuglr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
10984 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10985 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
10986 int UNUSED written
= 0 ;
10987 IADDR UNUSED pc
= abuf
-> addr
;
10988 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
10991 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
10994 tmp_tmp
= SUBSI ( GET_H_SPR ((( UINT
) 273 )), 1 );
10996 USI opval
= tmp_tmp
;
10997 sim_queue_fn_si_write ( current_cpu
, frvbf_h_spr_set
, (( UINT
) 273 ), opval
);
10998 TRACE_RESULT ( current_cpu
, abuf
, "spr" , 'x' , opval
);
11000 if ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 2 ), 1 )), TRUNCQIBI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 1 )))) {
11001 if ( EQSI ( FLD ( f_ccond
), 0 )) {
11002 if ( NESI ( tmp_tmp
, 0 )) {
11004 USI opval
= GET_H_SPR ((( UINT
) 272 ));
11005 sim_queue_pc_write ( current_cpu
, opval
);
11006 written
|= ( 1 << 6 );
11007 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
11011 if ( EQSI ( tmp_tmp
, 0 )) {
11013 USI opval
= GET_H_SPR ((( UINT
) 272 ));
11014 sim_queue_pc_write ( current_cpu
, opval
);
11015 written
|= ( 1 << 6 );
11016 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
11024 abuf
-> written
= written
;
11029 /* fcblelr: fcblelr$pack $FCCi_2,$ccond,$hint */
11032 SEM_FN_NAME ( frvbf
, fcblelr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
11034 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11035 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
11036 int UNUSED written
= 0 ;
11037 IADDR UNUSED pc
= abuf
-> addr
;
11038 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
11041 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
11044 tmp_tmp
= SUBSI ( GET_H_SPR ((( UINT
) 273 )), 1 );
11046 USI opval
= tmp_tmp
;
11047 sim_queue_fn_si_write ( current_cpu
, frvbf_h_spr_set
, (( UINT
) 273 ), opval
);
11048 TRACE_RESULT ( current_cpu
, abuf
, "spr" , 'x' , opval
);
11050 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 )))) {
11051 if ( EQSI ( FLD ( f_ccond
), 0 )) {
11052 if ( NESI ( tmp_tmp
, 0 )) {
11054 USI opval
= GET_H_SPR ((( UINT
) 272 ));
11055 sim_queue_pc_write ( current_cpu
, opval
);
11056 written
|= ( 1 << 6 );
11057 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
11061 if ( EQSI ( tmp_tmp
, 0 )) {
11063 USI opval
= GET_H_SPR ((( UINT
) 272 ));
11064 sim_queue_pc_write ( current_cpu
, opval
);
11065 written
|= ( 1 << 6 );
11066 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
11074 abuf
-> written
= written
;
11079 /* fcbgtlr: fcbgtlr$pack $FCCi_2,$ccond,$hint */
11082 SEM_FN_NAME ( frvbf
, fcbgtlr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
11084 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11085 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
11086 int UNUSED written
= 0 ;
11087 IADDR UNUSED pc
= abuf
-> addr
;
11088 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
11091 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
11094 tmp_tmp
= SUBSI ( GET_H_SPR ((( UINT
) 273 )), 1 );
11096 USI opval
= tmp_tmp
;
11097 sim_queue_fn_si_write ( current_cpu
, frvbf_h_spr_set
, (( UINT
) 273 ), opval
);
11098 TRACE_RESULT ( current_cpu
, abuf
, "spr" , 'x' , opval
);
11100 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 2 ), 1 ))) {
11101 if ( EQSI ( FLD ( f_ccond
), 0 )) {
11102 if ( NESI ( tmp_tmp
, 0 )) {
11104 USI opval
= GET_H_SPR ((( UINT
) 272 ));
11105 sim_queue_pc_write ( current_cpu
, opval
);
11106 written
|= ( 1 << 6 );
11107 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
11111 if ( EQSI ( tmp_tmp
, 0 )) {
11113 USI opval
= GET_H_SPR ((( UINT
) 272 ));
11114 sim_queue_pc_write ( current_cpu
, opval
);
11115 written
|= ( 1 << 6 );
11116 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
11124 abuf
-> written
= written
;
11129 /* fcbulelr: fcbulelr$pack $FCCi_2,$ccond,$hint */
11132 SEM_FN_NAME ( frvbf
, fcbulelr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
11134 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11135 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
11136 int UNUSED written
= 0 ;
11137 IADDR UNUSED pc
= abuf
-> addr
;
11138 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
11141 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
11144 tmp_tmp
= SUBSI ( GET_H_SPR ((( UINT
) 273 )), 1 );
11146 USI opval
= tmp_tmp
;
11147 sim_queue_fn_si_write ( current_cpu
, frvbf_h_spr_set
, (( UINT
) 273 ), opval
);
11148 TRACE_RESULT ( current_cpu
, abuf
, "spr" , 'x' , opval
);
11150 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 ))))) {
11151 if ( EQSI ( FLD ( f_ccond
), 0 )) {
11152 if ( NESI ( tmp_tmp
, 0 )) {
11154 USI opval
= GET_H_SPR ((( UINT
) 272 ));
11155 sim_queue_pc_write ( current_cpu
, opval
);
11156 written
|= ( 1 << 6 );
11157 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
11161 if ( EQSI ( tmp_tmp
, 0 )) {
11163 USI opval
= GET_H_SPR ((( UINT
) 272 ));
11164 sim_queue_pc_write ( current_cpu
, opval
);
11165 written
|= ( 1 << 6 );
11166 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
11174 abuf
-> written
= written
;
11179 /* fcbulr: fcbulr$pack $FCCi_2,$ccond,$hint */
11182 SEM_FN_NAME ( frvbf
, fcbulr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
11184 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11185 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
11186 int UNUSED written
= 0 ;
11187 IADDR UNUSED pc
= abuf
-> addr
;
11188 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
11191 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
11194 tmp_tmp
= SUBSI ( GET_H_SPR ((( UINT
) 273 )), 1 );
11196 USI opval
= tmp_tmp
;
11197 sim_queue_fn_si_write ( current_cpu
, frvbf_h_spr_set
, (( UINT
) 273 ), opval
);
11198 TRACE_RESULT ( current_cpu
, abuf
, "spr" , 'x' , opval
);
11200 if ( TRUNCQIBI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 1 ))) {
11201 if ( EQSI ( FLD ( f_ccond
), 0 )) {
11202 if ( NESI ( tmp_tmp
, 0 )) {
11204 USI opval
= GET_H_SPR ((( UINT
) 272 ));
11205 sim_queue_pc_write ( current_cpu
, opval
);
11206 written
|= ( 1 << 6 );
11207 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
11211 if ( EQSI ( tmp_tmp
, 0 )) {
11213 USI opval
= GET_H_SPR ((( UINT
) 272 ));
11214 sim_queue_pc_write ( current_cpu
, opval
);
11215 written
|= ( 1 << 6 );
11216 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
11224 abuf
-> written
= written
;
11229 /* fcbolr: fcbolr$pack $FCCi_2,$ccond,$hint */
11232 SEM_FN_NAME ( frvbf
, fcbolr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
11234 #define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11235 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
11236 int UNUSED written
= 0 ;
11237 IADDR UNUSED pc
= abuf
-> addr
;
11238 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
11241 frvbf_model_branch ( current_cpu
, GET_H_SPR ((( UINT
) 272 )), FLD ( f_hint
));
11244 tmp_tmp
= SUBSI ( GET_H_SPR ((( UINT
) 273 )), 1 );
11246 USI opval
= tmp_tmp
;
11247 sim_queue_fn_si_write ( current_cpu
, frvbf_h_spr_set
, (( UINT
) 273 ), opval
);
11248 TRACE_RESULT ( current_cpu
, abuf
, "spr" , 'x' , opval
);
11250 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 ))))) {
11251 if ( EQSI ( FLD ( f_ccond
), 0 )) {
11252 if ( NESI ( tmp_tmp
, 0 )) {
11254 USI opval
= GET_H_SPR ((( UINT
) 272 ));
11255 sim_queue_pc_write ( current_cpu
, opval
);
11256 written
|= ( 1 << 6 );
11257 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
11261 if ( EQSI ( tmp_tmp
, 0 )) {
11263 USI opval
= GET_H_SPR ((( UINT
) 272 ));
11264 sim_queue_pc_write ( current_cpu
, opval
);
11265 written
|= ( 1 << 6 );
11266 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
11274 abuf
-> written
= written
;
11279 /* jmpl: jmpl$pack @($GRi,$GRj) */
11282 SEM_FN_NAME ( frvbf
, jmpl
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
11284 #define FLD(f) abuf->fields.sfmt_cjmpl.f
11285 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
11286 int UNUSED written
= 0 ;
11287 IADDR UNUSED pc
= abuf
-> addr
;
11288 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
11291 if ( EQSI ( FLD ( f_LI
), 1 )) {
11292 frvbf_set_write_next_vliw_addr_to_LR ( current_cpu
, 1 );
11295 USI opval
= ANDSI ( ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
))), 0xfffffffc );
11296 sim_queue_pc_write ( current_cpu
, opval
);
11297 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
11299 frvbf_model_branch ( current_cpu
, pc
, 2 );
11306 /* calll: calll$pack $callann($GRi,$GRj) */
11309 SEM_FN_NAME ( frvbf
, calll
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
11311 #define FLD(f) abuf->fields.sfmt_cjmpl.f
11312 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
11313 int UNUSED written
= 0 ;
11314 IADDR UNUSED pc
= abuf
-> addr
;
11315 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
11318 if ( EQSI ( FLD ( f_LI
), 1 )) {
11319 frvbf_set_write_next_vliw_addr_to_LR ( current_cpu
, 1 );
11322 USI opval
= ANDSI ( ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
))), 0xfffffffc );
11323 sim_queue_pc_write ( current_cpu
, opval
);
11324 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
11326 frvbf_model_branch ( current_cpu
, pc
, 2 );
11333 /* jmpil: jmpil$pack @($GRi,$s12) */
11336 SEM_FN_NAME ( frvbf
, jmpil
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
11338 #define FLD(f) abuf->fields.sfmt_jmpil.f
11339 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
11340 int UNUSED written
= 0 ;
11341 IADDR UNUSED pc
= abuf
-> addr
;
11342 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
11345 if ( EQSI ( FLD ( f_LI
), 1 )) {
11346 frvbf_set_write_next_vliw_addr_to_LR ( current_cpu
, 1 );
11349 USI opval
= ANDSI ( ADDSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
)), 0xfffffffc );
11350 sim_queue_pc_write ( current_cpu
, opval
);
11351 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
11353 frvbf_model_branch ( current_cpu
, pc
, 2 );
11360 /* callil: callil$pack @($GRi,$s12) */
11363 SEM_FN_NAME ( frvbf
, callil
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
11365 #define FLD(f) abuf->fields.sfmt_jmpil.f
11366 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
11367 int UNUSED written
= 0 ;
11368 IADDR UNUSED pc
= abuf
-> addr
;
11369 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
11372 if ( EQSI ( FLD ( f_LI
), 1 )) {
11373 frvbf_set_write_next_vliw_addr_to_LR ( current_cpu
, 1 );
11376 USI opval
= ANDSI ( ADDSI ( GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
)), 0xfffffffc );
11377 sim_queue_pc_write ( current_cpu
, opval
);
11378 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
11380 frvbf_model_branch ( current_cpu
, pc
, 2 );
11387 /* call: call$pack $label24 */
11390 SEM_FN_NAME ( frvbf
, call
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
11392 #define FLD(f) abuf->fields.sfmt_call.f
11393 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
11394 int UNUSED written
= 0 ;
11395 IADDR UNUSED pc
= abuf
-> addr
;
11396 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
11399 frvbf_set_write_next_vliw_addr_to_LR ( current_cpu
, 1 );
11401 USI opval
= FLD ( i_label24
);
11402 sim_queue_pc_write ( current_cpu
, opval
);
11403 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
11405 frvbf_model_branch ( current_cpu
, pc
, 2 );
11412 /* rett: rett$pack $debug */
11415 SEM_FN_NAME ( frvbf
, rett
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
11417 #define FLD(f) abuf->fields.sfmt_rett.f
11418 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
11419 int UNUSED written
= 0 ;
11420 IADDR UNUSED pc
= abuf
-> addr
;
11421 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
11425 USI opval
= frv_rett ( current_cpu
, pc
, FLD ( f_debug
));
11426 sim_queue_pc_write ( current_cpu
, opval
);
11427 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
11429 frvbf_model_branch ( current_cpu
, pc
, 2 );
11436 /* rei: rei$pack $eir */
11439 SEM_FN_NAME ( frvbf
, rei
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
11441 #define FLD(f) abuf->fields.fmt_empty.f
11442 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
11443 int UNUSED written
= 0 ;
11444 IADDR UNUSED pc
= abuf
-> addr
;
11445 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
11447 (( void ) 0 ); /*nop*/
11453 /* tra: tra$pack $GRi,$GRj */
11456 SEM_FN_NAME ( frvbf
, tra
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
11458 #define FLD(f) abuf->fields.sfmt_ftne.f
11459 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
11460 int UNUSED written
= 0 ;
11461 IADDR UNUSED pc
= abuf
-> addr
;
11462 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
11469 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
11477 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
11480 abuf
-> written
= written
;
11485 /* tno: tno$pack */
11488 SEM_FN_NAME ( frvbf
, tno
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
11490 #define FLD(f) abuf->fields.fmt_empty.f
11491 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
11492 int UNUSED written
= 0 ;
11493 IADDR UNUSED pc
= abuf
-> addr
;
11494 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
11496 (( void ) 0 ); /*nop*/
11502 /* teq: teq$pack $ICCi_2,$GRi,$GRj */
11505 SEM_FN_NAME ( frvbf
, teq
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
11507 #define FLD(f) abuf->fields.sfmt_teq.f
11508 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
11509 int UNUSED written
= 0 ;
11510 IADDR UNUSED pc
= abuf
-> addr
;
11511 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
11513 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 4 ), 2 ))) {
11519 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
11527 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
11531 abuf
-> written
= written
;
11536 /* tne: tne$pack $ICCi_2,$GRi,$GRj */
11539 SEM_FN_NAME ( frvbf
, tne
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
11541 #define FLD(f) abuf->fields.sfmt_teq.f
11542 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
11543 int UNUSED written
= 0 ;
11544 IADDR UNUSED pc
= abuf
-> addr
;
11545 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
11547 if ( NOTBI ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 4 ), 2 )))) {
11553 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
11561 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
11565 abuf
-> written
= written
;
11570 /* tle: tle$pack $ICCi_2,$GRi,$GRj */
11573 SEM_FN_NAME ( frvbf
, tle
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
11575 #define FLD(f) abuf->fields.sfmt_teq.f
11576 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
11577 int UNUSED written
= 0 ;
11578 IADDR UNUSED pc
= abuf
-> addr
;
11579 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
11581 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 ))))) {
11587 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
11595 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
11599 abuf
-> written
= written
;
11604 /* tgt: tgt$pack $ICCi_2,$GRi,$GRj */
11607 SEM_FN_NAME ( frvbf
, tgt
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
11609 #define FLD(f) abuf->fields.sfmt_teq.f
11610 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
11611 int UNUSED written
= 0 ;
11612 IADDR UNUSED pc
= abuf
-> addr
;
11613 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
11615 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 )))))) {
11621 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
11629 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
11633 abuf
-> written
= written
;
11638 /* tlt: tlt$pack $ICCi_2,$GRi,$GRj */
11641 SEM_FN_NAME ( frvbf
, tlt
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
11643 #define FLD(f) abuf->fields.sfmt_teq.f
11644 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
11645 int UNUSED written
= 0 ;
11646 IADDR UNUSED pc
= abuf
-> addr
;
11647 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
11649 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 )))) {
11655 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
11663 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
11667 abuf
-> written
= written
;
11672 /* tge: tge$pack $ICCi_2,$GRi,$GRj */
11675 SEM_FN_NAME ( frvbf
, tge
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
11677 #define FLD(f) abuf->fields.sfmt_teq.f
11678 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
11679 int UNUSED written
= 0 ;
11680 IADDR UNUSED pc
= abuf
-> addr
;
11681 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
11683 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 ))))) {
11689 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
11697 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
11701 abuf
-> written
= written
;
11706 /* tls: tls$pack $ICCi_2,$GRi,$GRj */
11709 SEM_FN_NAME ( frvbf
, tls
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
11711 #define FLD(f) abuf->fields.sfmt_teq.f
11712 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
11713 int UNUSED written
= 0 ;
11714 IADDR UNUSED pc
= abuf
-> addr
;
11715 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
11717 if ( ORIF ( TRUNCQIBI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 1 )), TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 4 ), 2 )))) {
11723 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
11731 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
11735 abuf
-> written
= written
;
11740 /* thi: thi$pack $ICCi_2,$GRi,$GRj */
11743 SEM_FN_NAME ( frvbf
, thi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
11745 #define FLD(f) abuf->fields.sfmt_teq.f
11746 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
11747 int UNUSED written
= 0 ;
11748 IADDR UNUSED pc
= abuf
-> addr
;
11749 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
11751 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 ))))) {
11757 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
11765 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
11769 abuf
-> written
= written
;
11774 /* tc: tc$pack $ICCi_2,$GRi,$GRj */
11777 SEM_FN_NAME ( frvbf
, tc
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
11779 #define FLD(f) abuf->fields.sfmt_teq.f
11780 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
11781 int UNUSED written
= 0 ;
11782 IADDR UNUSED pc
= abuf
-> addr
;
11783 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
11785 if ( TRUNCQIBI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 1 ))) {
11791 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
11799 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
11803 abuf
-> written
= written
;
11808 /* tnc: tnc$pack $ICCi_2,$GRi,$GRj */
11811 SEM_FN_NAME ( frvbf
, tnc
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
11813 #define FLD(f) abuf->fields.sfmt_teq.f
11814 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
11815 int UNUSED written
= 0 ;
11816 IADDR UNUSED pc
= abuf
-> addr
;
11817 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
11819 if ( NOTBI ( TRUNCQIBI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 1 )))) {
11825 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
11833 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
11837 abuf
-> written
= written
;
11842 /* tn: tn$pack $ICCi_2,$GRi,$GRj */
11845 SEM_FN_NAME ( frvbf
, tn
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
11847 #define FLD(f) abuf->fields.sfmt_teq.f
11848 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
11849 int UNUSED written
= 0 ;
11850 IADDR UNUSED pc
= abuf
-> addr
;
11851 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
11853 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 8 ), 3 ))) {
11859 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
11867 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
11871 abuf
-> written
= written
;
11876 /* tp: tp$pack $ICCi_2,$GRi,$GRj */
11879 SEM_FN_NAME ( frvbf
, tp
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
11881 #define FLD(f) abuf->fields.sfmt_teq.f
11882 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
11883 int UNUSED written
= 0 ;
11884 IADDR UNUSED pc
= abuf
-> addr
;
11885 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
11887 if ( NOTBI ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 8 ), 3 )))) {
11893 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
11901 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
11905 abuf
-> written
= written
;
11910 /* tv: tv$pack $ICCi_2,$GRi,$GRj */
11913 SEM_FN_NAME ( frvbf
, tv
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
11915 #define FLD(f) abuf->fields.sfmt_teq.f
11916 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
11917 int UNUSED written
= 0 ;
11918 IADDR UNUSED pc
= abuf
-> addr
;
11919 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
11921 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 2 ), 1 ))) {
11927 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
11935 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
11939 abuf
-> written
= written
;
11944 /* tnv: tnv$pack $ICCi_2,$GRi,$GRj */
11947 SEM_FN_NAME ( frvbf
, tnv
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
11949 #define FLD(f) abuf->fields.sfmt_teq.f
11950 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
11951 int UNUSED written
= 0 ;
11952 IADDR UNUSED pc
= abuf
-> addr
;
11953 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
11955 if ( NOTBI ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 2 ), 1 )))) {
11961 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
11969 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
11973 abuf
-> written
= written
;
11978 /* ftra: ftra$pack $GRi,$GRj */
11981 SEM_FN_NAME ( frvbf
, ftra
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
11983 #define FLD(f) abuf->fields.sfmt_ftne.f
11984 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
11985 int UNUSED written
= 0 ;
11986 IADDR UNUSED pc
= abuf
-> addr
;
11987 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
11994 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
12002 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
12005 abuf
-> written
= written
;
12010 /* ftno: ftno$pack */
12013 SEM_FN_NAME ( frvbf
, ftno
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
12015 #define FLD(f) abuf->fields.fmt_empty.f
12016 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
12017 int UNUSED written
= 0 ;
12018 IADDR UNUSED pc
= abuf
-> addr
;
12019 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
12021 (( void ) 0 ); /*nop*/
12027 /* ftne: ftne$pack $FCCi_2,$GRi,$GRj */
12030 SEM_FN_NAME ( frvbf
, ftne
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
12032 #define FLD(f) abuf->fields.sfmt_ftne.f
12033 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
12034 int UNUSED written
= 0 ;
12035 IADDR UNUSED pc
= abuf
-> addr
;
12036 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
12038 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 ))))) {
12044 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
12052 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
12056 abuf
-> written
= written
;
12061 /* fteq: fteq$pack $FCCi_2,$GRi,$GRj */
12064 SEM_FN_NAME ( frvbf
, fteq
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
12066 #define FLD(f) abuf->fields.sfmt_ftne.f
12067 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
12068 int UNUSED written
= 0 ;
12069 IADDR UNUSED pc
= abuf
-> addr
;
12070 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
12072 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 8 ), 3 ))) {
12078 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
12086 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
12090 abuf
-> written
= written
;
12095 /* ftlg: ftlg$pack $FCCi_2,$GRi,$GRj */
12098 SEM_FN_NAME ( frvbf
, ftlg
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
12100 #define FLD(f) abuf->fields.sfmt_ftne.f
12101 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
12102 int UNUSED written
= 0 ;
12103 IADDR UNUSED pc
= abuf
-> addr
;
12104 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
12106 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 )))) {
12112 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
12120 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
12124 abuf
-> written
= written
;
12129 /* ftue: ftue$pack $FCCi_2,$GRi,$GRj */
12132 SEM_FN_NAME ( frvbf
, ftue
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
12134 #define FLD(f) abuf->fields.sfmt_ftne.f
12135 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
12136 int UNUSED written
= 0 ;
12137 IADDR UNUSED pc
= abuf
-> addr
;
12138 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
12140 if ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 8 ), 3 )), TRUNCQIBI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 1 )))) {
12146 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
12154 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
12158 abuf
-> written
= written
;
12163 /* ftul: ftul$pack $FCCi_2,$GRi,$GRj */
12166 SEM_FN_NAME ( frvbf
, ftul
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
12168 #define FLD(f) abuf->fields.sfmt_ftne.f
12169 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
12170 int UNUSED written
= 0 ;
12171 IADDR UNUSED pc
= abuf
-> addr
;
12172 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
12174 if ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 4 ), 2 )), TRUNCQIBI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 1 )))) {
12180 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
12188 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
12192 abuf
-> written
= written
;
12197 /* ftge: ftge$pack $FCCi_2,$GRi,$GRj */
12200 SEM_FN_NAME ( frvbf
, ftge
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
12202 #define FLD(f) abuf->fields.sfmt_ftne.f
12203 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
12204 int UNUSED written
= 0 ;
12205 IADDR UNUSED pc
= abuf
-> addr
;
12206 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
12208 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 )))) {
12214 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
12222 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
12226 abuf
-> written
= written
;
12231 /* ftlt: ftlt$pack $FCCi_2,$GRi,$GRj */
12234 SEM_FN_NAME ( frvbf
, ftlt
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
12236 #define FLD(f) abuf->fields.sfmt_ftne.f
12237 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
12238 int UNUSED written
= 0 ;
12239 IADDR UNUSED pc
= abuf
-> addr
;
12240 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
12242 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 4 ), 2 ))) {
12248 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
12256 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
12260 abuf
-> written
= written
;
12265 /* ftuge: ftuge$pack $FCCi_2,$GRi,$GRj */
12268 SEM_FN_NAME ( frvbf
, ftuge
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
12270 #define FLD(f) abuf->fields.sfmt_ftne.f
12271 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
12272 int UNUSED written
= 0 ;
12273 IADDR UNUSED pc
= abuf
-> addr
;
12274 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
12276 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 ))))) {
12282 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
12290 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
12294 abuf
-> written
= written
;
12299 /* ftug: ftug$pack $FCCi_2,$GRi,$GRj */
12302 SEM_FN_NAME ( frvbf
, ftug
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
12304 #define FLD(f) abuf->fields.sfmt_ftne.f
12305 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
12306 int UNUSED written
= 0 ;
12307 IADDR UNUSED pc
= abuf
-> addr
;
12308 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
12310 if ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 2 ), 1 )), TRUNCQIBI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 1 )))) {
12316 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
12324 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
12328 abuf
-> written
= written
;
12333 /* ftle: ftle$pack $FCCi_2,$GRi,$GRj */
12336 SEM_FN_NAME ( frvbf
, ftle
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
12338 #define FLD(f) abuf->fields.sfmt_ftne.f
12339 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
12340 int UNUSED written
= 0 ;
12341 IADDR UNUSED pc
= abuf
-> addr
;
12342 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
12344 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 )))) {
12350 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
12358 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
12362 abuf
-> written
= written
;
12367 /* ftgt: ftgt$pack $FCCi_2,$GRi,$GRj */
12370 SEM_FN_NAME ( frvbf
, ftgt
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
12372 #define FLD(f) abuf->fields.sfmt_ftne.f
12373 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
12374 int UNUSED written
= 0 ;
12375 IADDR UNUSED pc
= abuf
-> addr
;
12376 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
12378 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 2 ), 1 ))) {
12384 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
12392 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
12396 abuf
-> written
= written
;
12401 /* ftule: ftule$pack $FCCi_2,$GRi,$GRj */
12404 SEM_FN_NAME ( frvbf
, ftule
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
12406 #define FLD(f) abuf->fields.sfmt_ftne.f
12407 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
12408 int UNUSED written
= 0 ;
12409 IADDR UNUSED pc
= abuf
-> addr
;
12410 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
12412 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 ))))) {
12418 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
12426 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
12430 abuf
-> written
= written
;
12435 /* ftu: ftu$pack $FCCi_2,$GRi,$GRj */
12438 SEM_FN_NAME ( frvbf
, ftu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
12440 #define FLD(f) abuf->fields.sfmt_ftne.f
12441 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
12442 int UNUSED written
= 0 ;
12443 IADDR UNUSED pc
= abuf
-> addr
;
12444 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
12446 if ( TRUNCQIBI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 1 ))) {
12452 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
12460 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
12464 abuf
-> written
= written
;
12469 /* fto: fto$pack $FCCi_2,$GRi,$GRj */
12472 SEM_FN_NAME ( frvbf
, fto
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
12474 #define FLD(f) abuf->fields.sfmt_ftne.f
12475 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
12476 int UNUSED written
= 0 ;
12477 IADDR UNUSED pc
= abuf
-> addr
;
12478 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
12480 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 ))))) {
12486 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
12494 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)));
12498 abuf
-> written
= written
;
12503 /* tira: tira$pack $GRi,$s12 */
12506 SEM_FN_NAME ( frvbf
, tira
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
12508 #define FLD(f) abuf->fields.sfmt_ftine.f
12509 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
12510 int UNUSED written
= 0 ;
12511 IADDR UNUSED pc
= abuf
-> addr
;
12512 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
12519 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
12527 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
12530 abuf
-> written
= written
;
12535 /* tino: tino$pack */
12538 SEM_FN_NAME ( frvbf
, tino
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
12540 #define FLD(f) abuf->fields.fmt_empty.f
12541 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
12542 int UNUSED written
= 0 ;
12543 IADDR UNUSED pc
= abuf
-> addr
;
12544 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
12546 (( void ) 0 ); /*nop*/
12552 /* tieq: tieq$pack $ICCi_2,$GRi,$s12 */
12555 SEM_FN_NAME ( frvbf
, tieq
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
12557 #define FLD(f) abuf->fields.sfmt_tieq.f
12558 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
12559 int UNUSED written
= 0 ;
12560 IADDR UNUSED pc
= abuf
-> addr
;
12561 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
12563 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 4 ), 2 ))) {
12569 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
12577 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
12581 abuf
-> written
= written
;
12586 /* tine: tine$pack $ICCi_2,$GRi,$s12 */
12589 SEM_FN_NAME ( frvbf
, tine
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
12591 #define FLD(f) abuf->fields.sfmt_tieq.f
12592 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
12593 int UNUSED written
= 0 ;
12594 IADDR UNUSED pc
= abuf
-> addr
;
12595 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
12597 if ( NOTBI ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 4 ), 2 )))) {
12603 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
12611 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
12615 abuf
-> written
= written
;
12620 /* tile: tile$pack $ICCi_2,$GRi,$s12 */
12623 SEM_FN_NAME ( frvbf
, tile
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
12625 #define FLD(f) abuf->fields.sfmt_tieq.f
12626 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
12627 int UNUSED written
= 0 ;
12628 IADDR UNUSED pc
= abuf
-> addr
;
12629 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
12631 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 ))))) {
12637 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
12645 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
12649 abuf
-> written
= written
;
12654 /* tigt: tigt$pack $ICCi_2,$GRi,$s12 */
12657 SEM_FN_NAME ( frvbf
, tigt
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
12659 #define FLD(f) abuf->fields.sfmt_tieq.f
12660 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
12661 int UNUSED written
= 0 ;
12662 IADDR UNUSED pc
= abuf
-> addr
;
12663 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
12665 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 )))))) {
12671 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
12679 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
12683 abuf
-> written
= written
;
12688 /* tilt: tilt$pack $ICCi_2,$GRi,$s12 */
12691 SEM_FN_NAME ( frvbf
, tilt
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
12693 #define FLD(f) abuf->fields.sfmt_tieq.f
12694 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
12695 int UNUSED written
= 0 ;
12696 IADDR UNUSED pc
= abuf
-> addr
;
12697 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
12699 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 )))) {
12705 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
12713 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
12717 abuf
-> written
= written
;
12722 /* tige: tige$pack $ICCi_2,$GRi,$s12 */
12725 SEM_FN_NAME ( frvbf
, tige
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
12727 #define FLD(f) abuf->fields.sfmt_tieq.f
12728 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
12729 int UNUSED written
= 0 ;
12730 IADDR UNUSED pc
= abuf
-> addr
;
12731 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
12733 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 ))))) {
12739 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
12747 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
12751 abuf
-> written
= written
;
12756 /* tils: tils$pack $ICCi_2,$GRi,$s12 */
12759 SEM_FN_NAME ( frvbf
, tils
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
12761 #define FLD(f) abuf->fields.sfmt_tieq.f
12762 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
12763 int UNUSED written
= 0 ;
12764 IADDR UNUSED pc
= abuf
-> addr
;
12765 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
12767 if ( ORIF ( TRUNCQIBI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 1 )), TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 4 ), 2 )))) {
12773 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
12781 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
12785 abuf
-> written
= written
;
12790 /* tihi: tihi$pack $ICCi_2,$GRi,$s12 */
12793 SEM_FN_NAME ( frvbf
, tihi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
12795 #define FLD(f) abuf->fields.sfmt_tieq.f
12796 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
12797 int UNUSED written
= 0 ;
12798 IADDR UNUSED pc
= abuf
-> addr
;
12799 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
12801 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 ))))) {
12807 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
12815 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
12819 abuf
-> written
= written
;
12824 /* tic: tic$pack $ICCi_2,$GRi,$s12 */
12827 SEM_FN_NAME ( frvbf
, tic
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
12829 #define FLD(f) abuf->fields.sfmt_tieq.f
12830 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
12831 int UNUSED written
= 0 ;
12832 IADDR UNUSED pc
= abuf
-> addr
;
12833 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
12835 if ( TRUNCQIBI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 1 ))) {
12841 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
12849 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
12853 abuf
-> written
= written
;
12858 /* tinc: tinc$pack $ICCi_2,$GRi,$s12 */
12861 SEM_FN_NAME ( frvbf
, tinc
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
12863 #define FLD(f) abuf->fields.sfmt_tieq.f
12864 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
12865 int UNUSED written
= 0 ;
12866 IADDR UNUSED pc
= abuf
-> addr
;
12867 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
12869 if ( NOTBI ( TRUNCQIBI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 1 )))) {
12875 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
12883 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
12887 abuf
-> written
= written
;
12892 /* tin: tin$pack $ICCi_2,$GRi,$s12 */
12895 SEM_FN_NAME ( frvbf
, tin
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
12897 #define FLD(f) abuf->fields.sfmt_tieq.f
12898 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
12899 int UNUSED written
= 0 ;
12900 IADDR UNUSED pc
= abuf
-> addr
;
12901 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
12903 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 8 ), 3 ))) {
12909 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
12917 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
12921 abuf
-> written
= written
;
12926 /* tip: tip$pack $ICCi_2,$GRi,$s12 */
12929 SEM_FN_NAME ( frvbf
, tip
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
12931 #define FLD(f) abuf->fields.sfmt_tieq.f
12932 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
12933 int UNUSED written
= 0 ;
12934 IADDR UNUSED pc
= abuf
-> addr
;
12935 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
12937 if ( NOTBI ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 8 ), 3 )))) {
12943 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
12951 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
12955 abuf
-> written
= written
;
12960 /* tiv: tiv$pack $ICCi_2,$GRi,$s12 */
12963 SEM_FN_NAME ( frvbf
, tiv
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
12965 #define FLD(f) abuf->fields.sfmt_tieq.f
12966 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
12967 int UNUSED written
= 0 ;
12968 IADDR UNUSED pc
= abuf
-> addr
;
12969 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
12971 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 2 ), 1 ))) {
12977 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
12985 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
12989 abuf
-> written
= written
;
12994 /* tinv: tinv$pack $ICCi_2,$GRi,$s12 */
12997 SEM_FN_NAME ( frvbf
, tinv
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
12999 #define FLD(f) abuf->fields.sfmt_tieq.f
13000 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
13001 int UNUSED written
= 0 ;
13002 IADDR UNUSED pc
= abuf
-> addr
;
13003 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
13005 if ( NOTBI ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_2
)]), 2 ), 1 )))) {
13011 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
13019 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
13023 abuf
-> written
= written
;
13028 /* ftira: ftira$pack $GRi,$s12 */
13031 SEM_FN_NAME ( frvbf
, ftira
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
13033 #define FLD(f) abuf->fields.sfmt_ftine.f
13034 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
13035 int UNUSED written
= 0 ;
13036 IADDR UNUSED pc
= abuf
-> addr
;
13037 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
13044 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
13052 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
13055 abuf
-> written
= written
;
13060 /* ftino: ftino$pack */
13063 SEM_FN_NAME ( frvbf
, ftino
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
13065 #define FLD(f) abuf->fields.fmt_empty.f
13066 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
13067 int UNUSED written
= 0 ;
13068 IADDR UNUSED pc
= abuf
-> addr
;
13069 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
13071 (( void ) 0 ); /*nop*/
13077 /* ftine: ftine$pack $FCCi_2,$GRi,$s12 */
13080 SEM_FN_NAME ( frvbf
, ftine
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
13082 #define FLD(f) abuf->fields.sfmt_ftine.f
13083 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
13084 int UNUSED written
= 0 ;
13085 IADDR UNUSED pc
= abuf
-> addr
;
13086 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
13088 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 ))))) {
13094 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
13102 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
13106 abuf
-> written
= written
;
13111 /* ftieq: ftieq$pack $FCCi_2,$GRi,$s12 */
13114 SEM_FN_NAME ( frvbf
, ftieq
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
13116 #define FLD(f) abuf->fields.sfmt_ftine.f
13117 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
13118 int UNUSED written
= 0 ;
13119 IADDR UNUSED pc
= abuf
-> addr
;
13120 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
13122 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 8 ), 3 ))) {
13128 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
13136 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
13140 abuf
-> written
= written
;
13145 /* ftilg: ftilg$pack $FCCi_2,$GRi,$s12 */
13148 SEM_FN_NAME ( frvbf
, ftilg
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
13150 #define FLD(f) abuf->fields.sfmt_ftine.f
13151 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
13152 int UNUSED written
= 0 ;
13153 IADDR UNUSED pc
= abuf
-> addr
;
13154 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
13156 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 )))) {
13162 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
13170 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
13174 abuf
-> written
= written
;
13179 /* ftiue: ftiue$pack $FCCi_2,$GRi,$s12 */
13182 SEM_FN_NAME ( frvbf
, ftiue
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
13184 #define FLD(f) abuf->fields.sfmt_ftine.f
13185 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
13186 int UNUSED written
= 0 ;
13187 IADDR UNUSED pc
= abuf
-> addr
;
13188 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
13190 if ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 8 ), 3 )), TRUNCQIBI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 1 )))) {
13196 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
13204 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
13208 abuf
-> written
= written
;
13213 /* ftiul: ftiul$pack $FCCi_2,$GRi,$s12 */
13216 SEM_FN_NAME ( frvbf
, ftiul
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
13218 #define FLD(f) abuf->fields.sfmt_ftine.f
13219 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
13220 int UNUSED written
= 0 ;
13221 IADDR UNUSED pc
= abuf
-> addr
;
13222 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
13224 if ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 4 ), 2 )), TRUNCQIBI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 1 )))) {
13230 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
13238 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
13242 abuf
-> written
= written
;
13247 /* ftige: ftige$pack $FCCi_2,$GRi,$s12 */
13250 SEM_FN_NAME ( frvbf
, ftige
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
13252 #define FLD(f) abuf->fields.sfmt_ftine.f
13253 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
13254 int UNUSED written
= 0 ;
13255 IADDR UNUSED pc
= abuf
-> addr
;
13256 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
13258 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 )))) {
13264 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
13272 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
13276 abuf
-> written
= written
;
13281 /* ftilt: ftilt$pack $FCCi_2,$GRi,$s12 */
13284 SEM_FN_NAME ( frvbf
, ftilt
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
13286 #define FLD(f) abuf->fields.sfmt_ftine.f
13287 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
13288 int UNUSED written
= 0 ;
13289 IADDR UNUSED pc
= abuf
-> addr
;
13290 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
13292 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 4 ), 2 ))) {
13298 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
13306 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
13310 abuf
-> written
= written
;
13315 /* ftiuge: ftiuge$pack $FCCi_2,$GRi,$s12 */
13318 SEM_FN_NAME ( frvbf
, ftiuge
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
13320 #define FLD(f) abuf->fields.sfmt_ftine.f
13321 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
13322 int UNUSED written
= 0 ;
13323 IADDR UNUSED pc
= abuf
-> addr
;
13324 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
13326 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 ))))) {
13332 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
13340 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
13344 abuf
-> written
= written
;
13349 /* ftiug: ftiug$pack $FCCi_2,$GRi,$s12 */
13352 SEM_FN_NAME ( frvbf
, ftiug
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
13354 #define FLD(f) abuf->fields.sfmt_ftine.f
13355 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
13356 int UNUSED written
= 0 ;
13357 IADDR UNUSED pc
= abuf
-> addr
;
13358 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
13360 if ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 2 ), 1 )), TRUNCQIBI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 1 )))) {
13366 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
13374 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
13378 abuf
-> written
= written
;
13383 /* ftile: ftile$pack $FCCi_2,$GRi,$s12 */
13386 SEM_FN_NAME ( frvbf
, ftile
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
13388 #define FLD(f) abuf->fields.sfmt_ftine.f
13389 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
13390 int UNUSED written
= 0 ;
13391 IADDR UNUSED pc
= abuf
-> addr
;
13392 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
13394 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 )))) {
13400 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
13408 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
13412 abuf
-> written
= written
;
13417 /* ftigt: ftigt$pack $FCCi_2,$GRi,$s12 */
13420 SEM_FN_NAME ( frvbf
, ftigt
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
13422 #define FLD(f) abuf->fields.sfmt_ftine.f
13423 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
13424 int UNUSED written
= 0 ;
13425 IADDR UNUSED pc
= abuf
-> addr
;
13426 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
13428 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 2 ), 1 ))) {
13434 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
13442 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
13446 abuf
-> written
= written
;
13451 /* ftiule: ftiule$pack $FCCi_2,$GRi,$s12 */
13454 SEM_FN_NAME ( frvbf
, ftiule
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
13456 #define FLD(f) abuf->fields.sfmt_ftine.f
13457 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
13458 int UNUSED written
= 0 ;
13459 IADDR UNUSED pc
= abuf
-> addr
;
13460 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
13462 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 ))))) {
13468 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
13476 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
13480 abuf
-> written
= written
;
13485 /* ftiu: ftiu$pack $FCCi_2,$GRi,$s12 */
13488 SEM_FN_NAME ( frvbf
, ftiu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
13490 #define FLD(f) abuf->fields.sfmt_ftine.f
13491 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
13492 int UNUSED written
= 0 ;
13493 IADDR UNUSED pc
= abuf
-> addr
;
13494 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
13496 if ( TRUNCQIBI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), 1 ))) {
13502 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
13510 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
13514 abuf
-> written
= written
;
13519 /* ftio: ftio$pack $FCCi_2,$GRi,$s12 */
13522 SEM_FN_NAME ( frvbf
, ftio
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
13524 #define FLD(f) abuf->fields.sfmt_ftine.f
13525 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
13526 int UNUSED written
= 0 ;
13527 IADDR UNUSED pc
= abuf
-> addr
;
13528 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
13530 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 ))))) {
13536 if ( NEBI ( CPU ( h_psr_esr
), 0 )) {
13544 frv_itrap ( current_cpu
, pc
, GET_H_GR ( FLD ( f_GRi
)), FLD ( f_d12
));
13548 abuf
-> written
= written
;
13553 /* break: break$pack */
13556 SEM_FN_NAME ( frvbf
, break ) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
13558 #define FLD(f) abuf->fields.sfmt_break.f
13559 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
13560 int UNUSED written
= 0 ;
13561 IADDR UNUSED pc
= abuf
-> addr
;
13562 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
13571 frv_break ( current_cpu
);
13578 /* mtrap: mtrap$pack */
13581 SEM_FN_NAME ( frvbf
, mtrap
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
13583 #define FLD(f) abuf->fields.fmt_empty.f
13584 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
13585 int UNUSED written
= 0 ;
13586 IADDR UNUSED pc
= abuf
-> addr
;
13587 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
13589 frv_mtrap ( current_cpu
);
13595 /* andcr: andcr$pack $CRi,$CRj,$CRk */
13598 SEM_FN_NAME ( frvbf
, andcr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
13600 #define FLD(f) abuf->fields.sfmt_andcr.f
13601 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
13602 int UNUSED written
= 0 ;
13603 IADDR UNUSED pc
= abuf
-> addr
;
13604 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
13607 UQI opval
= frvbf_cr_logic ( current_cpu
, 0 , CPU ( h_cccr
[ FLD ( f_CRi
)]), CPU ( h_cccr
[ FLD ( f_CRj
)]));
13608 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRk
)]), opval
);
13609 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
13616 /* orcr: orcr$pack $CRi,$CRj,$CRk */
13619 SEM_FN_NAME ( frvbf
, orcr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
13621 #define FLD(f) abuf->fields.sfmt_andcr.f
13622 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
13623 int UNUSED written
= 0 ;
13624 IADDR UNUSED pc
= abuf
-> addr
;
13625 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
13628 UQI opval
= frvbf_cr_logic ( current_cpu
, 1 , CPU ( h_cccr
[ FLD ( f_CRi
)]), CPU ( h_cccr
[ FLD ( f_CRj
)]));
13629 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRk
)]), opval
);
13630 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
13637 /* xorcr: xorcr$pack $CRi,$CRj,$CRk */
13640 SEM_FN_NAME ( frvbf
, xorcr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
13642 #define FLD(f) abuf->fields.sfmt_andcr.f
13643 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
13644 int UNUSED written
= 0 ;
13645 IADDR UNUSED pc
= abuf
-> addr
;
13646 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
13649 UQI opval
= frvbf_cr_logic ( current_cpu
, 2 , CPU ( h_cccr
[ FLD ( f_CRi
)]), CPU ( h_cccr
[ FLD ( f_CRj
)]));
13650 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRk
)]), opval
);
13651 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
13658 /* nandcr: nandcr$pack $CRi,$CRj,$CRk */
13661 SEM_FN_NAME ( frvbf
, nandcr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
13663 #define FLD(f) abuf->fields.sfmt_andcr.f
13664 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
13665 int UNUSED written
= 0 ;
13666 IADDR UNUSED pc
= abuf
-> addr
;
13667 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
13670 UQI opval
= frvbf_cr_logic ( current_cpu
, 3 , CPU ( h_cccr
[ FLD ( f_CRi
)]), CPU ( h_cccr
[ FLD ( f_CRj
)]));
13671 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRk
)]), opval
);
13672 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
13679 /* norcr: norcr$pack $CRi,$CRj,$CRk */
13682 SEM_FN_NAME ( frvbf
, norcr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
13684 #define FLD(f) abuf->fields.sfmt_andcr.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 );
13691 UQI opval
= frvbf_cr_logic ( current_cpu
, 4 , CPU ( h_cccr
[ FLD ( f_CRi
)]), CPU ( h_cccr
[ FLD ( f_CRj
)]));
13692 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRk
)]), opval
);
13693 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
13700 /* andncr: andncr$pack $CRi,$CRj,$CRk */
13703 SEM_FN_NAME ( frvbf
, andncr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
13705 #define FLD(f) abuf->fields.sfmt_andcr.f
13706 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
13707 int UNUSED written
= 0 ;
13708 IADDR UNUSED pc
= abuf
-> addr
;
13709 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
13712 UQI opval
= frvbf_cr_logic ( current_cpu
, 5 , CPU ( h_cccr
[ FLD ( f_CRi
)]), CPU ( h_cccr
[ FLD ( f_CRj
)]));
13713 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRk
)]), opval
);
13714 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
13721 /* orncr: orncr$pack $CRi,$CRj,$CRk */
13724 SEM_FN_NAME ( frvbf
, orncr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
13726 #define FLD(f) abuf->fields.sfmt_andcr.f
13727 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
13728 int UNUSED written
= 0 ;
13729 IADDR UNUSED pc
= abuf
-> addr
;
13730 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
13733 UQI opval
= frvbf_cr_logic ( current_cpu
, 6 , CPU ( h_cccr
[ FLD ( f_CRi
)]), CPU ( h_cccr
[ FLD ( f_CRj
)]));
13734 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRk
)]), opval
);
13735 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
13742 /* nandncr: nandncr$pack $CRi,$CRj,$CRk */
13745 SEM_FN_NAME ( frvbf
, nandncr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
13747 #define FLD(f) abuf->fields.sfmt_andcr.f
13748 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
13749 int UNUSED written
= 0 ;
13750 IADDR UNUSED pc
= abuf
-> addr
;
13751 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
13754 UQI opval
= frvbf_cr_logic ( current_cpu
, 7 , CPU ( h_cccr
[ FLD ( f_CRi
)]), CPU ( h_cccr
[ FLD ( f_CRj
)]));
13755 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRk
)]), opval
);
13756 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
13763 /* norncr: norncr$pack $CRi,$CRj,$CRk */
13766 SEM_FN_NAME ( frvbf
, norncr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
13768 #define FLD(f) abuf->fields.sfmt_andcr.f
13769 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
13770 int UNUSED written
= 0 ;
13771 IADDR UNUSED pc
= abuf
-> addr
;
13772 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
13775 UQI opval
= frvbf_cr_logic ( current_cpu
, 8 , CPU ( h_cccr
[ FLD ( f_CRi
)]), CPU ( h_cccr
[ FLD ( f_CRj
)]));
13776 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRk
)]), opval
);
13777 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
13784 /* notcr: notcr$pack $CRj,$CRk */
13787 SEM_FN_NAME ( frvbf
, notcr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
13789 #define FLD(f) abuf->fields.sfmt_andcr.f
13790 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
13791 int UNUSED written
= 0 ;
13792 IADDR UNUSED pc
= abuf
-> addr
;
13793 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
13796 UQI opval
= XORQI ( CPU ( h_cccr
[ FLD ( f_CRj
)]), 1 );
13797 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRk
)]), opval
);
13798 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
13805 /* ckra: ckra$pack $CRj_int */
13808 SEM_FN_NAME ( frvbf
, ckra
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
13810 #define FLD(f) abuf->fields.sfmt_cckeq.f
13811 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
13812 int UNUSED written
= 0 ;
13813 IADDR UNUSED pc
= abuf
-> addr
;
13814 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
13818 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
13819 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
13826 /* ckno: ckno$pack $CRj_int */
13829 SEM_FN_NAME ( frvbf
, ckno
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
13831 #define FLD(f) abuf->fields.sfmt_cckeq.f
13832 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
13833 int UNUSED written
= 0 ;
13834 IADDR UNUSED pc
= abuf
-> addr
;
13835 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
13839 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
13840 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
13847 /* ckeq: ckeq$pack $ICCi_3,$CRj_int */
13850 SEM_FN_NAME ( frvbf
, ckeq
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
13852 #define FLD(f) abuf->fields.sfmt_cckeq.f
13853 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
13854 int UNUSED written
= 0 ;
13855 IADDR UNUSED pc
= abuf
-> addr
;
13856 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
13858 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_3
)]), 4 ), 2 ))) {
13861 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
13862 written
|= ( 1 << 1 );
13863 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
13868 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
13869 written
|= ( 1 << 1 );
13870 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
13874 abuf
-> written
= written
;
13879 /* ckne: ckne$pack $ICCi_3,$CRj_int */
13882 SEM_FN_NAME ( frvbf
, ckne
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
13884 #define FLD(f) abuf->fields.sfmt_cckeq.f
13885 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
13886 int UNUSED written
= 0 ;
13887 IADDR UNUSED pc
= abuf
-> addr
;
13888 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
13890 if ( NOTBI ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_3
)]), 4 ), 2 )))) {
13893 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
13894 written
|= ( 1 << 1 );
13895 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
13900 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
13901 written
|= ( 1 << 1 );
13902 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
13906 abuf
-> written
= written
;
13911 /* ckle: ckle$pack $ICCi_3,$CRj_int */
13914 SEM_FN_NAME ( frvbf
, ckle
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
13916 #define FLD(f) abuf->fields.sfmt_cckeq.f
13917 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
13918 int UNUSED written
= 0 ;
13919 IADDR UNUSED pc
= abuf
-> addr
;
13920 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
13922 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 ))))) {
13925 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
13926 written
|= ( 1 << 1 );
13927 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
13932 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
13933 written
|= ( 1 << 1 );
13934 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
13938 abuf
-> written
= written
;
13943 /* ckgt: ckgt$pack $ICCi_3,$CRj_int */
13946 SEM_FN_NAME ( frvbf
, ckgt
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
13948 #define FLD(f) abuf->fields.sfmt_cckeq.f
13949 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
13950 int UNUSED written
= 0 ;
13951 IADDR UNUSED pc
= abuf
-> addr
;
13952 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
13954 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 )))))) {
13957 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
13958 written
|= ( 1 << 1 );
13959 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
13964 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
13965 written
|= ( 1 << 1 );
13966 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
13970 abuf
-> written
= written
;
13975 /* cklt: cklt$pack $ICCi_3,$CRj_int */
13978 SEM_FN_NAME ( frvbf
, cklt
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
13980 #define FLD(f) abuf->fields.sfmt_cckeq.f
13981 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
13982 int UNUSED written
= 0 ;
13983 IADDR UNUSED pc
= abuf
-> addr
;
13984 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
13986 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 )))) {
13989 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
13990 written
|= ( 1 << 1 );
13991 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
13996 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
13997 written
|= ( 1 << 1 );
13998 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14002 abuf
-> written
= written
;
14007 /* ckge: ckge$pack $ICCi_3,$CRj_int */
14010 SEM_FN_NAME ( frvbf
, ckge
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
14012 #define FLD(f) abuf->fields.sfmt_cckeq.f
14013 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
14014 int UNUSED written
= 0 ;
14015 IADDR UNUSED pc
= abuf
-> addr
;
14016 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
14018 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 ))))) {
14021 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
14022 written
|= ( 1 << 1 );
14023 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14028 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
14029 written
|= ( 1 << 1 );
14030 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14034 abuf
-> written
= written
;
14039 /* ckls: ckls$pack $ICCi_3,$CRj_int */
14042 SEM_FN_NAME ( frvbf
, ckls
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
14044 #define FLD(f) abuf->fields.sfmt_cckeq.f
14045 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
14046 int UNUSED written
= 0 ;
14047 IADDR UNUSED pc
= abuf
-> addr
;
14048 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
14050 if ( ORIF ( TRUNCQIBI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_3
)]), 1 )), TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_3
)]), 4 ), 2 )))) {
14053 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
14054 written
|= ( 1 << 1 );
14055 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14060 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
14061 written
|= ( 1 << 1 );
14062 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14066 abuf
-> written
= written
;
14071 /* ckhi: ckhi$pack $ICCi_3,$CRj_int */
14074 SEM_FN_NAME ( frvbf
, ckhi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
14076 #define FLD(f) abuf->fields.sfmt_cckeq.f
14077 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
14078 int UNUSED written
= 0 ;
14079 IADDR UNUSED pc
= abuf
-> addr
;
14080 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
14082 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 ))))) {
14085 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
14086 written
|= ( 1 << 1 );
14087 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14092 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
14093 written
|= ( 1 << 1 );
14094 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14098 abuf
-> written
= written
;
14103 /* ckc: ckc$pack $ICCi_3,$CRj_int */
14106 SEM_FN_NAME ( frvbf
, ckc
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
14108 #define FLD(f) abuf->fields.sfmt_cckeq.f
14109 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
14110 int UNUSED written
= 0 ;
14111 IADDR UNUSED pc
= abuf
-> addr
;
14112 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
14114 if ( TRUNCQIBI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_3
)]), 1 ))) {
14117 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
14118 written
|= ( 1 << 1 );
14119 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14124 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
14125 written
|= ( 1 << 1 );
14126 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14130 abuf
-> written
= written
;
14135 /* cknc: cknc$pack $ICCi_3,$CRj_int */
14138 SEM_FN_NAME ( frvbf
, cknc
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
14140 #define FLD(f) abuf->fields.sfmt_cckeq.f
14141 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
14142 int UNUSED written
= 0 ;
14143 IADDR UNUSED pc
= abuf
-> addr
;
14144 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
14146 if ( NOTBI ( TRUNCQIBI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_3
)]), 1 )))) {
14149 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
14150 written
|= ( 1 << 1 );
14151 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14156 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
14157 written
|= ( 1 << 1 );
14158 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14162 abuf
-> written
= written
;
14167 /* ckn: ckn$pack $ICCi_3,$CRj_int */
14170 SEM_FN_NAME ( frvbf
, ckn
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
14172 #define FLD(f) abuf->fields.sfmt_cckeq.f
14173 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
14174 int UNUSED written
= 0 ;
14175 IADDR UNUSED pc
= abuf
-> addr
;
14176 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
14178 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_3
)]), 8 ), 3 ))) {
14181 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
14182 written
|= ( 1 << 1 );
14183 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14188 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
14189 written
|= ( 1 << 1 );
14190 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14194 abuf
-> written
= written
;
14199 /* ckp: ckp$pack $ICCi_3,$CRj_int */
14202 SEM_FN_NAME ( frvbf
, ckp
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
14204 #define FLD(f) abuf->fields.sfmt_cckeq.f
14205 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
14206 int UNUSED written
= 0 ;
14207 IADDR UNUSED pc
= abuf
-> addr
;
14208 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
14210 if ( NOTBI ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_3
)]), 8 ), 3 )))) {
14213 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
14214 written
|= ( 1 << 1 );
14215 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14220 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
14221 written
|= ( 1 << 1 );
14222 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14226 abuf
-> written
= written
;
14231 /* ckv: ckv$pack $ICCi_3,$CRj_int */
14234 SEM_FN_NAME ( frvbf
, ckv
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
14236 #define FLD(f) abuf->fields.sfmt_cckeq.f
14237 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
14238 int UNUSED written
= 0 ;
14239 IADDR UNUSED pc
= abuf
-> addr
;
14240 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
14242 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_3
)]), 2 ), 1 ))) {
14245 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
14246 written
|= ( 1 << 1 );
14247 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14252 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
14253 written
|= ( 1 << 1 );
14254 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14258 abuf
-> written
= written
;
14263 /* cknv: cknv$pack $ICCi_3,$CRj_int */
14266 SEM_FN_NAME ( frvbf
, cknv
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
14268 #define FLD(f) abuf->fields.sfmt_cckeq.f
14269 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
14270 int UNUSED written
= 0 ;
14271 IADDR UNUSED pc
= abuf
-> addr
;
14272 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
14274 if ( NOTBI ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_3
)]), 2 ), 1 )))) {
14277 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
14278 written
|= ( 1 << 1 );
14279 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14284 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
14285 written
|= ( 1 << 1 );
14286 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14290 abuf
-> written
= written
;
14295 /* fckra: fckra$pack $CRj_float */
14298 SEM_FN_NAME ( frvbf
, fckra
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
14300 #define FLD(f) abuf->fields.sfmt_cfckne.f
14301 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
14302 int UNUSED written
= 0 ;
14303 IADDR UNUSED pc
= abuf
-> addr
;
14304 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
14308 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
14309 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14316 /* fckno: fckno$pack $CRj_float */
14319 SEM_FN_NAME ( frvbf
, fckno
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
14321 #define FLD(f) abuf->fields.sfmt_cfckne.f
14322 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
14323 int UNUSED written
= 0 ;
14324 IADDR UNUSED pc
= abuf
-> addr
;
14325 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
14329 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
14330 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14337 /* fckne: fckne$pack $FCCi_3,$CRj_float */
14340 SEM_FN_NAME ( frvbf
, fckne
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
14342 #define FLD(f) abuf->fields.sfmt_cfckne.f
14343 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
14344 int UNUSED written
= 0 ;
14345 IADDR UNUSED pc
= abuf
-> addr
;
14346 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
14348 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 ))))) {
14351 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
14352 written
|= ( 1 << 1 );
14353 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14358 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
14359 written
|= ( 1 << 1 );
14360 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14364 abuf
-> written
= written
;
14369 /* fckeq: fckeq$pack $FCCi_3,$CRj_float */
14372 SEM_FN_NAME ( frvbf
, fckeq
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
14374 #define FLD(f) abuf->fields.sfmt_cfckne.f
14375 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
14376 int UNUSED written
= 0 ;
14377 IADDR UNUSED pc
= abuf
-> addr
;
14378 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
14380 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_3
)]), 8 ), 3 ))) {
14383 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
14384 written
|= ( 1 << 1 );
14385 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14390 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
14391 written
|= ( 1 << 1 );
14392 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14396 abuf
-> written
= written
;
14401 /* fcklg: fcklg$pack $FCCi_3,$CRj_float */
14404 SEM_FN_NAME ( frvbf
, fcklg
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
14406 #define FLD(f) abuf->fields.sfmt_cfckne.f
14407 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
14408 int UNUSED written
= 0 ;
14409 IADDR UNUSED pc
= abuf
-> addr
;
14410 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
14412 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 )))) {
14415 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
14416 written
|= ( 1 << 1 );
14417 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14422 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
14423 written
|= ( 1 << 1 );
14424 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14428 abuf
-> written
= written
;
14433 /* fckue: fckue$pack $FCCi_3,$CRj_float */
14436 SEM_FN_NAME ( frvbf
, fckue
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
14438 #define FLD(f) abuf->fields.sfmt_cfckne.f
14439 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
14440 int UNUSED written
= 0 ;
14441 IADDR UNUSED pc
= abuf
-> addr
;
14442 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
14444 if ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_3
)]), 8 ), 3 )), TRUNCQIBI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_3
)]), 1 )))) {
14447 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
14448 written
|= ( 1 << 1 );
14449 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14454 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
14455 written
|= ( 1 << 1 );
14456 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14460 abuf
-> written
= written
;
14465 /* fckul: fckul$pack $FCCi_3,$CRj_float */
14468 SEM_FN_NAME ( frvbf
, fckul
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
14470 #define FLD(f) abuf->fields.sfmt_cfckne.f
14471 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
14472 int UNUSED written
= 0 ;
14473 IADDR UNUSED pc
= abuf
-> addr
;
14474 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
14476 if ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_3
)]), 4 ), 2 )), TRUNCQIBI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_3
)]), 1 )))) {
14479 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
14480 written
|= ( 1 << 1 );
14481 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14486 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
14487 written
|= ( 1 << 1 );
14488 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14492 abuf
-> written
= written
;
14497 /* fckge: fckge$pack $FCCi_3,$CRj_float */
14500 SEM_FN_NAME ( frvbf
, fckge
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
14502 #define FLD(f) abuf->fields.sfmt_cfckne.f
14503 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
14504 int UNUSED written
= 0 ;
14505 IADDR UNUSED pc
= abuf
-> addr
;
14506 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
14508 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 )))) {
14511 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
14512 written
|= ( 1 << 1 );
14513 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14518 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
14519 written
|= ( 1 << 1 );
14520 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14524 abuf
-> written
= written
;
14529 /* fcklt: fcklt$pack $FCCi_3,$CRj_float */
14532 SEM_FN_NAME ( frvbf
, fcklt
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
14534 #define FLD(f) abuf->fields.sfmt_cfckne.f
14535 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
14536 int UNUSED written
= 0 ;
14537 IADDR UNUSED pc
= abuf
-> addr
;
14538 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
14540 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_3
)]), 4 ), 2 ))) {
14543 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
14544 written
|= ( 1 << 1 );
14545 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14550 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
14551 written
|= ( 1 << 1 );
14552 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14556 abuf
-> written
= written
;
14561 /* fckuge: fckuge$pack $FCCi_3,$CRj_float */
14564 SEM_FN_NAME ( frvbf
, fckuge
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
14566 #define FLD(f) abuf->fields.sfmt_cfckne.f
14567 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
14568 int UNUSED written
= 0 ;
14569 IADDR UNUSED pc
= abuf
-> addr
;
14570 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
14572 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 ))))) {
14575 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
14576 written
|= ( 1 << 1 );
14577 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14582 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
14583 written
|= ( 1 << 1 );
14584 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14588 abuf
-> written
= written
;
14593 /* fckug: fckug$pack $FCCi_3,$CRj_float */
14596 SEM_FN_NAME ( frvbf
, fckug
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
14598 #define FLD(f) abuf->fields.sfmt_cfckne.f
14599 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
14600 int UNUSED written
= 0 ;
14601 IADDR UNUSED pc
= abuf
-> addr
;
14602 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
14604 if ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_3
)]), 2 ), 1 )), TRUNCQIBI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_3
)]), 1 )))) {
14607 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
14608 written
|= ( 1 << 1 );
14609 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14614 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
14615 written
|= ( 1 << 1 );
14616 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14620 abuf
-> written
= written
;
14625 /* fckle: fckle$pack $FCCi_3,$CRj_float */
14628 SEM_FN_NAME ( frvbf
, fckle
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
14630 #define FLD(f) abuf->fields.sfmt_cfckne.f
14631 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
14632 int UNUSED written
= 0 ;
14633 IADDR UNUSED pc
= abuf
-> addr
;
14634 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
14636 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 )))) {
14639 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
14640 written
|= ( 1 << 1 );
14641 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14646 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
14647 written
|= ( 1 << 1 );
14648 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14652 abuf
-> written
= written
;
14657 /* fckgt: fckgt$pack $FCCi_3,$CRj_float */
14660 SEM_FN_NAME ( frvbf
, fckgt
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
14662 #define FLD(f) abuf->fields.sfmt_cfckne.f
14663 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
14664 int UNUSED written
= 0 ;
14665 IADDR UNUSED pc
= abuf
-> addr
;
14666 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
14668 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_3
)]), 2 ), 1 ))) {
14671 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
14672 written
|= ( 1 << 1 );
14673 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14678 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
14679 written
|= ( 1 << 1 );
14680 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14684 abuf
-> written
= written
;
14689 /* fckule: fckule$pack $FCCi_3,$CRj_float */
14692 SEM_FN_NAME ( frvbf
, fckule
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
14694 #define FLD(f) abuf->fields.sfmt_cfckne.f
14695 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
14696 int UNUSED written
= 0 ;
14697 IADDR UNUSED pc
= abuf
-> addr
;
14698 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
14700 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 ))))) {
14703 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
14704 written
|= ( 1 << 1 );
14705 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14710 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
14711 written
|= ( 1 << 1 );
14712 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14716 abuf
-> written
= written
;
14721 /* fcku: fcku$pack $FCCi_3,$CRj_float */
14724 SEM_FN_NAME ( frvbf
, fcku
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
14726 #define FLD(f) abuf->fields.sfmt_cfckne.f
14727 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
14728 int UNUSED written
= 0 ;
14729 IADDR UNUSED pc
= abuf
-> addr
;
14730 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
14732 if ( TRUNCQIBI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_3
)]), 1 ))) {
14735 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
14736 written
|= ( 1 << 1 );
14737 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14742 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
14743 written
|= ( 1 << 1 );
14744 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14748 abuf
-> written
= written
;
14753 /* fcko: fcko$pack $FCCi_3,$CRj_float */
14756 SEM_FN_NAME ( frvbf
, fcko
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
14758 #define FLD(f) abuf->fields.sfmt_cfckne.f
14759 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
14760 int UNUSED written
= 0 ;
14761 IADDR UNUSED pc
= abuf
-> addr
;
14762 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
14764 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 ))))) {
14767 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
14768 written
|= ( 1 << 1 );
14769 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14774 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
14775 written
|= ( 1 << 1 );
14776 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14780 abuf
-> written
= written
;
14785 /* cckra: cckra$pack $CRj_int,$CCi,$cond */
14788 SEM_FN_NAME ( frvbf
, cckra
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
14790 #define FLD(f) abuf->fields.sfmt_cckeq.f
14791 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
14792 int UNUSED written
= 0 ;
14793 IADDR UNUSED pc
= abuf
-> addr
;
14794 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
14796 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
14799 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
14800 written
|= ( 1 << 2 );
14801 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14806 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
14807 written
|= ( 1 << 2 );
14808 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14812 abuf
-> written
= written
;
14817 /* cckno: cckno$pack $CRj_int,$CCi,$cond */
14820 SEM_FN_NAME ( frvbf
, cckno
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
14822 #define FLD(f) abuf->fields.sfmt_cckeq.f
14823 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
14824 int UNUSED written
= 0 ;
14825 IADDR UNUSED pc
= abuf
-> addr
;
14826 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
14828 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
14831 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
14832 written
|= ( 1 << 2 );
14833 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14838 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
14839 written
|= ( 1 << 2 );
14840 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14844 abuf
-> written
= written
;
14849 /* cckeq: cckeq$pack $ICCi_3,$CRj_int,$CCi,$cond */
14852 SEM_FN_NAME ( frvbf
, cckeq
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
14854 #define FLD(f) abuf->fields.sfmt_cckeq.f
14855 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
14856 int UNUSED written
= 0 ;
14857 IADDR UNUSED pc
= abuf
-> addr
;
14858 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
14860 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
14861 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_3
)]), 4 ), 2 ))) {
14864 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
14865 written
|= ( 1 << 3 );
14866 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14871 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
14872 written
|= ( 1 << 3 );
14873 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14879 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
14880 written
|= ( 1 << 3 );
14881 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14885 abuf
-> written
= written
;
14890 /* cckne: cckne$pack $ICCi_3,$CRj_int,$CCi,$cond */
14893 SEM_FN_NAME ( frvbf
, cckne
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
14895 #define FLD(f) abuf->fields.sfmt_cckeq.f
14896 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
14897 int UNUSED written
= 0 ;
14898 IADDR UNUSED pc
= abuf
-> addr
;
14899 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
14901 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
14902 if ( NOTBI ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_3
)]), 4 ), 2 )))) {
14905 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
14906 written
|= ( 1 << 3 );
14907 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14912 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
14913 written
|= ( 1 << 3 );
14914 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14920 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
14921 written
|= ( 1 << 3 );
14922 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14926 abuf
-> written
= written
;
14931 /* cckle: cckle$pack $ICCi_3,$CRj_int,$CCi,$cond */
14934 SEM_FN_NAME ( frvbf
, cckle
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
14936 #define FLD(f) abuf->fields.sfmt_cckeq.f
14937 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
14938 int UNUSED written
= 0 ;
14939 IADDR UNUSED pc
= abuf
-> addr
;
14940 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
14942 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
14943 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 ))))) {
14946 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
14947 written
|= ( 1 << 3 );
14948 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14953 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
14954 written
|= ( 1 << 3 );
14955 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14961 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
14962 written
|= ( 1 << 3 );
14963 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14967 abuf
-> written
= written
;
14972 /* cckgt: cckgt$pack $ICCi_3,$CRj_int,$CCi,$cond */
14975 SEM_FN_NAME ( frvbf
, cckgt
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
14977 #define FLD(f) abuf->fields.sfmt_cckeq.f
14978 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
14979 int UNUSED written
= 0 ;
14980 IADDR UNUSED pc
= abuf
-> addr
;
14981 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
14983 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
14984 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 )))))) {
14987 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
14988 written
|= ( 1 << 3 );
14989 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
14994 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
14995 written
|= ( 1 << 3 );
14996 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15002 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
15003 written
|= ( 1 << 3 );
15004 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15008 abuf
-> written
= written
;
15013 /* ccklt: ccklt$pack $ICCi_3,$CRj_int,$CCi,$cond */
15016 SEM_FN_NAME ( frvbf
, ccklt
) ( 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 ))) {
15025 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 )))) {
15028 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
15029 written
|= ( 1 << 3 );
15030 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15035 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
15036 written
|= ( 1 << 3 );
15037 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15043 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
15044 written
|= ( 1 << 3 );
15045 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15049 abuf
-> written
= written
;
15054 /* cckge: cckge$pack $ICCi_3,$CRj_int,$CCi,$cond */
15057 SEM_FN_NAME ( frvbf
, cckge
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
15059 #define FLD(f) abuf->fields.sfmt_cckeq.f
15060 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
15061 int UNUSED written
= 0 ;
15062 IADDR UNUSED pc
= abuf
-> addr
;
15063 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
15065 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
15066 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 ))))) {
15069 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
15070 written
|= ( 1 << 3 );
15071 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15076 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
15077 written
|= ( 1 << 3 );
15078 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15084 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
15085 written
|= ( 1 << 3 );
15086 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15090 abuf
-> written
= written
;
15095 /* cckls: cckls$pack $ICCi_3,$CRj_int,$CCi,$cond */
15098 SEM_FN_NAME ( frvbf
, cckls
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
15100 #define FLD(f) abuf->fields.sfmt_cckeq.f
15101 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
15102 int UNUSED written
= 0 ;
15103 IADDR UNUSED pc
= abuf
-> addr
;
15104 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
15106 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
15107 if ( ORIF ( TRUNCQIBI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_3
)]), 1 )), TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_3
)]), 4 ), 2 )))) {
15110 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
15111 written
|= ( 1 << 3 );
15112 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15117 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
15118 written
|= ( 1 << 3 );
15119 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15125 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
15126 written
|= ( 1 << 3 );
15127 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15131 abuf
-> written
= written
;
15136 /* cckhi: cckhi$pack $ICCi_3,$CRj_int,$CCi,$cond */
15139 SEM_FN_NAME ( frvbf
, cckhi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
15141 #define FLD(f) abuf->fields.sfmt_cckeq.f
15142 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
15143 int UNUSED written
= 0 ;
15144 IADDR UNUSED pc
= abuf
-> addr
;
15145 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
15147 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
15148 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 ))))) {
15151 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
15152 written
|= ( 1 << 3 );
15153 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15158 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
15159 written
|= ( 1 << 3 );
15160 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15166 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
15167 written
|= ( 1 << 3 );
15168 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15172 abuf
-> written
= written
;
15177 /* cckc: cckc$pack $ICCi_3,$CRj_int,$CCi,$cond */
15180 SEM_FN_NAME ( frvbf
, cckc
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
15182 #define FLD(f) abuf->fields.sfmt_cckeq.f
15183 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
15184 int UNUSED written
= 0 ;
15185 IADDR UNUSED pc
= abuf
-> addr
;
15186 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
15188 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
15189 if ( TRUNCQIBI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_3
)]), 1 ))) {
15192 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
15193 written
|= ( 1 << 3 );
15194 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15199 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
15200 written
|= ( 1 << 3 );
15201 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15207 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
15208 written
|= ( 1 << 3 );
15209 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15213 abuf
-> written
= written
;
15218 /* ccknc: ccknc$pack $ICCi_3,$CRj_int,$CCi,$cond */
15221 SEM_FN_NAME ( frvbf
, ccknc
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
15223 #define FLD(f) abuf->fields.sfmt_cckeq.f
15224 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
15225 int UNUSED written
= 0 ;
15226 IADDR UNUSED pc
= abuf
-> addr
;
15227 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
15229 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
15230 if ( NOTBI ( TRUNCQIBI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_3
)]), 1 )))) {
15233 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
15234 written
|= ( 1 << 3 );
15235 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15240 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
15241 written
|= ( 1 << 3 );
15242 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15248 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
15249 written
|= ( 1 << 3 );
15250 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15254 abuf
-> written
= written
;
15259 /* cckn: cckn$pack $ICCi_3,$CRj_int,$CCi,$cond */
15262 SEM_FN_NAME ( frvbf
, cckn
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
15264 #define FLD(f) abuf->fields.sfmt_cckeq.f
15265 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
15266 int UNUSED written
= 0 ;
15267 IADDR UNUSED pc
= abuf
-> addr
;
15268 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
15270 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
15271 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_3
)]), 8 ), 3 ))) {
15274 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
15275 written
|= ( 1 << 3 );
15276 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15281 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
15282 written
|= ( 1 << 3 );
15283 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15289 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
15290 written
|= ( 1 << 3 );
15291 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15295 abuf
-> written
= written
;
15300 /* cckp: cckp$pack $ICCi_3,$CRj_int,$CCi,$cond */
15303 SEM_FN_NAME ( frvbf
, cckp
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
15305 #define FLD(f) abuf->fields.sfmt_cckeq.f
15306 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
15307 int UNUSED written
= 0 ;
15308 IADDR UNUSED pc
= abuf
-> addr
;
15309 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
15311 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
15312 if ( NOTBI ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_3
)]), 8 ), 3 )))) {
15315 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
15316 written
|= ( 1 << 3 );
15317 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15322 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
15323 written
|= ( 1 << 3 );
15324 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15330 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
15331 written
|= ( 1 << 3 );
15332 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15336 abuf
-> written
= written
;
15341 /* cckv: cckv$pack $ICCi_3,$CRj_int,$CCi,$cond */
15344 SEM_FN_NAME ( frvbf
, cckv
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
15346 #define FLD(f) abuf->fields.sfmt_cckeq.f
15347 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
15348 int UNUSED written
= 0 ;
15349 IADDR UNUSED pc
= abuf
-> addr
;
15350 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
15352 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
15353 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_3
)]), 2 ), 1 ))) {
15356 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
15357 written
|= ( 1 << 3 );
15358 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15363 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
15364 written
|= ( 1 << 3 );
15365 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15371 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
15372 written
|= ( 1 << 3 );
15373 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15377 abuf
-> written
= written
;
15382 /* ccknv: ccknv$pack $ICCi_3,$CRj_int,$CCi,$cond */
15385 SEM_FN_NAME ( frvbf
, ccknv
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
15387 #define FLD(f) abuf->fields.sfmt_cckeq.f
15388 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
15389 int UNUSED written
= 0 ;
15390 IADDR UNUSED pc
= abuf
-> addr
;
15391 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
15393 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
15394 if ( NOTBI ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_iccr
[ FLD ( f_ICCi_3
)]), 2 ), 1 )))) {
15397 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
15398 written
|= ( 1 << 3 );
15399 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15404 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
15405 written
|= ( 1 << 3 );
15406 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15412 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_int
)]), opval
);
15413 written
|= ( 1 << 3 );
15414 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15418 abuf
-> written
= written
;
15423 /* cfckra: cfckra$pack $CRj_float,$CCi,$cond */
15426 SEM_FN_NAME ( frvbf
, cfckra
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
15428 #define FLD(f) abuf->fields.sfmt_cfckne.f
15429 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
15430 int UNUSED written
= 0 ;
15431 IADDR UNUSED pc
= abuf
-> addr
;
15432 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
15434 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
15437 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
15438 written
|= ( 1 << 2 );
15439 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15444 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
15445 written
|= ( 1 << 2 );
15446 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15450 abuf
-> written
= written
;
15455 /* cfckno: cfckno$pack $CRj_float,$CCi,$cond */
15458 SEM_FN_NAME ( frvbf
, cfckno
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
15460 #define FLD(f) abuf->fields.sfmt_cfckne.f
15461 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
15462 int UNUSED written
= 0 ;
15463 IADDR UNUSED pc
= abuf
-> addr
;
15464 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
15466 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
15469 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
15470 written
|= ( 1 << 2 );
15471 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15476 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
15477 written
|= ( 1 << 2 );
15478 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15482 abuf
-> written
= written
;
15487 /* cfckne: cfckne$pack $FCCi_3,$CRj_float,$CCi,$cond */
15490 SEM_FN_NAME ( frvbf
, cfckne
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
15492 #define FLD(f) abuf->fields.sfmt_cfckne.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 ( 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 ))))) {
15502 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), 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_float
)]), 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_float
)]), opval
);
15518 written
|= ( 1 << 3 );
15519 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15523 abuf
-> written
= written
;
15528 /* cfckeq: cfckeq$pack $FCCi_3,$CRj_float,$CCi,$cond */
15531 SEM_FN_NAME ( frvbf
, cfckeq
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
15533 #define FLD(f) abuf->fields.sfmt_cfckne.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 ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_3
)]), 8 ), 3 ))) {
15543 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), 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_float
)]), 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_float
)]), opval
);
15559 written
|= ( 1 << 3 );
15560 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15564 abuf
-> written
= written
;
15569 /* cfcklg: cfcklg$pack $FCCi_3,$CRj_float,$CCi,$cond */
15572 SEM_FN_NAME ( frvbf
, cfcklg
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
15574 #define FLD(f) abuf->fields.sfmt_cfckne.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 ( 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 )))) {
15584 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), 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_float
)]), 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_float
)]), opval
);
15600 written
|= ( 1 << 3 );
15601 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15605 abuf
-> written
= written
;
15610 /* cfckue: cfckue$pack $FCCi_3,$CRj_float,$CCi,$cond */
15613 SEM_FN_NAME ( frvbf
, cfckue
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
15615 #define FLD(f) abuf->fields.sfmt_cfckne.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 ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_3
)]), 8 ), 3 )), TRUNCQIBI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_3
)]), 1 )))) {
15625 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), 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_float
)]), 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_float
)]), opval
);
15641 written
|= ( 1 << 3 );
15642 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15646 abuf
-> written
= written
;
15651 /* cfckul: cfckul$pack $FCCi_3,$CRj_float,$CCi,$cond */
15654 SEM_FN_NAME ( frvbf
, cfckul
) ( 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 ))) {
15663 if ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_3
)]), 4 ), 2 )), TRUNCQIBI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_3
)]), 1 )))) {
15666 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
15667 written
|= ( 1 << 3 );
15668 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15673 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
15674 written
|= ( 1 << 3 );
15675 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15681 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
15682 written
|= ( 1 << 3 );
15683 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15687 abuf
-> written
= written
;
15692 /* cfckge: cfckge$pack $FCCi_3,$CRj_float,$CCi,$cond */
15695 SEM_FN_NAME ( frvbf
, cfckge
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
15697 #define FLD(f) abuf->fields.sfmt_cfckne.f
15698 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
15699 int UNUSED written
= 0 ;
15700 IADDR UNUSED pc
= abuf
-> addr
;
15701 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
15703 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
15704 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 )))) {
15707 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
15708 written
|= ( 1 << 3 );
15709 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15714 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
15715 written
|= ( 1 << 3 );
15716 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15722 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
15723 written
|= ( 1 << 3 );
15724 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15728 abuf
-> written
= written
;
15733 /* cfcklt: cfcklt$pack $FCCi_3,$CRj_float,$CCi,$cond */
15736 SEM_FN_NAME ( frvbf
, cfcklt
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
15738 #define FLD(f) abuf->fields.sfmt_cfckne.f
15739 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
15740 int UNUSED written
= 0 ;
15741 IADDR UNUSED pc
= abuf
-> addr
;
15742 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
15744 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
15745 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_3
)]), 4 ), 2 ))) {
15748 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
15749 written
|= ( 1 << 3 );
15750 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15755 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
15756 written
|= ( 1 << 3 );
15757 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15763 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
15764 written
|= ( 1 << 3 );
15765 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15769 abuf
-> written
= written
;
15774 /* cfckuge: cfckuge$pack $FCCi_3,$CRj_float,$CCi,$cond */
15777 SEM_FN_NAME ( frvbf
, cfckuge
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
15779 #define FLD(f) abuf->fields.sfmt_cfckne.f
15780 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
15781 int UNUSED written
= 0 ;
15782 IADDR UNUSED pc
= abuf
-> addr
;
15783 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
15785 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
15786 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 ))))) {
15789 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
15790 written
|= ( 1 << 3 );
15791 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15796 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
15797 written
|= ( 1 << 3 );
15798 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15804 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
15805 written
|= ( 1 << 3 );
15806 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15810 abuf
-> written
= written
;
15815 /* cfckug: cfckug$pack $FCCi_3,$CRj_float,$CCi,$cond */
15818 SEM_FN_NAME ( frvbf
, cfckug
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
15820 #define FLD(f) abuf->fields.sfmt_cfckne.f
15821 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
15822 int UNUSED written
= 0 ;
15823 IADDR UNUSED pc
= abuf
-> addr
;
15824 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
15826 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
15827 if ( ORIF ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_3
)]), 2 ), 1 )), TRUNCQIBI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_3
)]), 1 )))) {
15830 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
15831 written
|= ( 1 << 3 );
15832 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15837 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
15838 written
|= ( 1 << 3 );
15839 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15845 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
15846 written
|= ( 1 << 3 );
15847 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15851 abuf
-> written
= written
;
15856 /* cfckle: cfckle$pack $FCCi_3,$CRj_float,$CCi,$cond */
15859 SEM_FN_NAME ( frvbf
, cfckle
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
15861 #define FLD(f) abuf->fields.sfmt_cfckne.f
15862 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
15863 int UNUSED written
= 0 ;
15864 IADDR UNUSED pc
= abuf
-> addr
;
15865 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
15867 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
15868 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 )))) {
15871 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
15872 written
|= ( 1 << 3 );
15873 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15878 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
15879 written
|= ( 1 << 3 );
15880 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15886 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
15887 written
|= ( 1 << 3 );
15888 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15892 abuf
-> written
= written
;
15897 /* cfckgt: cfckgt$pack $FCCi_3,$CRj_float,$CCi,$cond */
15900 SEM_FN_NAME ( frvbf
, cfckgt
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
15902 #define FLD(f) abuf->fields.sfmt_cfckne.f
15903 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
15904 int UNUSED written
= 0 ;
15905 IADDR UNUSED pc
= abuf
-> addr
;
15906 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
15908 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
15909 if ( TRUNCQIBI ( SRLQI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_3
)]), 2 ), 1 ))) {
15912 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
15913 written
|= ( 1 << 3 );
15914 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15919 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
15920 written
|= ( 1 << 3 );
15921 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15927 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
15928 written
|= ( 1 << 3 );
15929 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15933 abuf
-> written
= written
;
15938 /* cfckule: cfckule$pack $FCCi_3,$CRj_float,$CCi,$cond */
15941 SEM_FN_NAME ( frvbf
, cfckule
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
15943 #define FLD(f) abuf->fields.sfmt_cfckne.f
15944 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
15945 int UNUSED written
= 0 ;
15946 IADDR UNUSED pc
= abuf
-> addr
;
15947 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
15949 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
15950 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 ))))) {
15953 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
15954 written
|= ( 1 << 3 );
15955 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15960 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
15961 written
|= ( 1 << 3 );
15962 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15968 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
15969 written
|= ( 1 << 3 );
15970 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
15974 abuf
-> written
= written
;
15979 /* cfcku: cfcku$pack $FCCi_3,$CRj_float,$CCi,$cond */
15982 SEM_FN_NAME ( frvbf
, cfcku
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
15984 #define FLD(f) abuf->fields.sfmt_cfckne.f
15985 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
15986 int UNUSED written
= 0 ;
15987 IADDR UNUSED pc
= abuf
-> addr
;
15988 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
15990 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
15991 if ( TRUNCQIBI ( ANDQI ( CPU ( h_fccr
[ FLD ( f_FCCi_3
)]), 1 ))) {
15994 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
15995 written
|= ( 1 << 3 );
15996 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
16001 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
16002 written
|= ( 1 << 3 );
16003 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
16009 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
16010 written
|= ( 1 << 3 );
16011 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
16015 abuf
-> written
= written
;
16020 /* cfcko: cfcko$pack $FCCi_3,$CRj_float,$CCi,$cond */
16023 SEM_FN_NAME ( frvbf
, cfcko
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16025 #define FLD(f) abuf->fields.sfmt_cfckne.f
16026 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16027 int UNUSED written
= 0 ;
16028 IADDR UNUSED pc
= abuf
-> addr
;
16029 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16031 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
16032 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 ))))) {
16035 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
16036 written
|= ( 1 << 3 );
16037 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
16042 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
16043 written
|= ( 1 << 3 );
16044 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
16050 sim_queue_qi_write ( current_cpu
, & CPU ( h_cccr
[ FLD ( f_CRj_float
)]), opval
);
16051 written
|= ( 1 << 3 );
16052 TRACE_RESULT ( current_cpu
, abuf
, "cccr" , 'x' , opval
);
16056 abuf
-> written
= written
;
16061 /* cjmpl: cjmpl$pack @($GRi,$GRj),$CCi,$cond */
16064 SEM_FN_NAME ( frvbf
, cjmpl
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16066 #define FLD(f) abuf->fields.sfmt_cjmpl.f
16067 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16068 int UNUSED written
= 0 ;
16069 IADDR UNUSED pc
= abuf
-> addr
;
16070 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16072 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
16074 if ( EQSI ( FLD ( f_LI
), 1 )) {
16075 frvbf_set_write_next_vliw_addr_to_LR ( current_cpu
, 1 );
16078 USI opval
= ANDSI ( ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
))), 0xfffffffc );
16079 sim_queue_pc_write ( current_cpu
, opval
);
16080 written
|= ( 1 << 6 );
16081 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
16083 frvbf_model_branch ( current_cpu
, pc
, 2 );
16087 abuf
-> written
= written
;
16092 /* ccalll: ccalll$pack @($GRi,$GRj),$CCi,$cond */
16095 SEM_FN_NAME ( frvbf
, ccalll
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16097 #define FLD(f) abuf->fields.sfmt_cjmpl.f
16098 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16099 int UNUSED written
= 0 ;
16100 IADDR UNUSED pc
= abuf
-> addr
;
16101 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16103 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
16105 if ( EQSI ( FLD ( f_LI
), 1 )) {
16106 frvbf_set_write_next_vliw_addr_to_LR ( current_cpu
, 1 );
16109 USI opval
= ANDSI ( ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
))), 0xfffffffc );
16110 sim_queue_pc_write ( current_cpu
, opval
);
16111 written
|= ( 1 << 6 );
16112 TRACE_RESULT ( current_cpu
, abuf
, "pc" , 'x' , opval
);
16114 frvbf_model_branch ( current_cpu
, pc
, 2 );
16118 abuf
-> written
= written
;
16123 /* ici: ici$pack @($GRi,$GRj) */
16126 SEM_FN_NAME ( frvbf
, ici
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16128 #define FLD(f) abuf->fields.sfmt_icpl.f
16129 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16130 int UNUSED written
= 0 ;
16131 IADDR UNUSED pc
= abuf
-> addr
;
16132 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16134 frvbf_insn_cache_invalidate ( current_cpu
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
))), 0 );
16140 /* dci: dci$pack @($GRi,$GRj) */
16143 SEM_FN_NAME ( frvbf
, dci
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16145 #define FLD(f) abuf->fields.sfmt_icpl.f
16146 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16147 int UNUSED written
= 0 ;
16148 IADDR UNUSED pc
= abuf
-> addr
;
16149 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16151 frvbf_data_cache_invalidate ( current_cpu
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
))), 0 );
16157 /* icei: icei$pack @($GRi,$GRj),$ae */
16160 SEM_FN_NAME ( frvbf
, icei
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16162 #define FLD(f) abuf->fields.sfmt_icei.f
16163 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16164 int UNUSED written
= 0 ;
16165 IADDR UNUSED pc
= abuf
-> addr
;
16166 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16168 if ( EQSI ( FLD ( f_ae
), 0 )) {
16169 frvbf_insn_cache_invalidate ( current_cpu
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
))), - 1 );
16171 frvbf_insn_cache_invalidate ( current_cpu
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
))), FLD ( f_ae
));
16178 /* dcei: dcei$pack @($GRi,$GRj),$ae */
16181 SEM_FN_NAME ( frvbf
, dcei
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16183 #define FLD(f) abuf->fields.sfmt_icei.f
16184 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16185 int UNUSED written
= 0 ;
16186 IADDR UNUSED pc
= abuf
-> addr
;
16187 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16189 if ( EQSI ( FLD ( f_ae
), 0 )) {
16190 frvbf_data_cache_invalidate ( current_cpu
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
))), - 1 );
16192 frvbf_data_cache_invalidate ( current_cpu
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
))), FLD ( f_ae
));
16199 /* dcf: dcf$pack @($GRi,$GRj) */
16202 SEM_FN_NAME ( frvbf
, dcf
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16204 #define FLD(f) abuf->fields.sfmt_icpl.f
16205 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16206 int UNUSED written
= 0 ;
16207 IADDR UNUSED pc
= abuf
-> addr
;
16208 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16210 frvbf_data_cache_flush ( current_cpu
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
))), 0 );
16216 /* dcef: dcef$pack @($GRi,$GRj),$ae */
16219 SEM_FN_NAME ( frvbf
, dcef
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16221 #define FLD(f) abuf->fields.sfmt_icei.f
16222 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16223 int UNUSED written
= 0 ;
16224 IADDR UNUSED pc
= abuf
-> addr
;
16225 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16227 if ( EQSI ( FLD ( f_ae
), 0 )) {
16228 frvbf_data_cache_flush ( current_cpu
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
))), - 1 );
16230 frvbf_data_cache_flush ( current_cpu
, ADDSI ( GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
))), FLD ( f_ae
));
16237 /* witlb: witlb$pack $GRk,@($GRi,$GRj) */
16240 SEM_FN_NAME ( frvbf
, witlb
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16242 #define FLD(f) abuf->fields.fmt_empty.f
16243 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16244 int UNUSED written
= 0 ;
16245 IADDR UNUSED pc
= abuf
-> addr
;
16246 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16248 (( void ) 0 ); /*nop*/
16254 /* wdtlb: wdtlb$pack $GRk,@($GRi,$GRj) */
16257 SEM_FN_NAME ( frvbf
, wdtlb
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16259 #define FLD(f) abuf->fields.fmt_empty.f
16260 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16261 int UNUSED written
= 0 ;
16262 IADDR UNUSED pc
= abuf
-> addr
;
16263 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16265 (( void ) 0 ); /*nop*/
16271 /* itlbi: itlbi$pack @($GRi,$GRj) */
16274 SEM_FN_NAME ( frvbf
, itlbi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16276 #define FLD(f) abuf->fields.fmt_empty.f
16277 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16278 int UNUSED written
= 0 ;
16279 IADDR UNUSED pc
= abuf
-> addr
;
16280 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16282 (( void ) 0 ); /*nop*/
16288 /* dtlbi: dtlbi$pack @($GRi,$GRj) */
16291 SEM_FN_NAME ( frvbf
, dtlbi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16293 #define FLD(f) abuf->fields.fmt_empty.f
16294 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16295 int UNUSED written
= 0 ;
16296 IADDR UNUSED pc
= abuf
-> addr
;
16297 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16299 (( void ) 0 ); /*nop*/
16305 /* icpl: icpl$pack $GRi,$GRj,$lock */
16308 SEM_FN_NAME ( frvbf
, icpl
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16310 #define FLD(f) abuf->fields.sfmt_icpl.f
16311 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16312 int UNUSED written
= 0 ;
16313 IADDR UNUSED pc
= abuf
-> addr
;
16314 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16316 frvbf_insn_cache_preload ( current_cpu
, GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)), FLD ( f_lock
));
16322 /* dcpl: dcpl$pack $GRi,$GRj,$lock */
16325 SEM_FN_NAME ( frvbf
, dcpl
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16327 #define FLD(f) abuf->fields.sfmt_icpl.f
16328 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16329 int UNUSED written
= 0 ;
16330 IADDR UNUSED pc
= abuf
-> addr
;
16331 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16333 frvbf_data_cache_preload ( current_cpu
, GET_H_GR ( FLD ( f_GRi
)), GET_H_GR ( FLD ( f_GRj
)), FLD ( f_lock
));
16339 /* icul: icul$pack $GRi */
16342 SEM_FN_NAME ( frvbf
, icul
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16344 #define FLD(f) abuf->fields.sfmt_jmpil.f
16345 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16346 int UNUSED written
= 0 ;
16347 IADDR UNUSED pc
= abuf
-> addr
;
16348 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16350 frvbf_insn_cache_unlock ( current_cpu
, GET_H_GR ( FLD ( f_GRi
)));
16356 /* dcul: dcul$pack $GRi */
16359 SEM_FN_NAME ( frvbf
, dcul
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16361 #define FLD(f) abuf->fields.sfmt_jmpil.f
16362 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16363 int UNUSED written
= 0 ;
16364 IADDR UNUSED pc
= abuf
-> addr
;
16365 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16367 frvbf_data_cache_unlock ( current_cpu
, GET_H_GR ( FLD ( f_GRi
)));
16373 /* bar: bar$pack */
16376 SEM_FN_NAME ( frvbf
, bar
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16378 #define FLD(f) abuf->fields.fmt_empty.f
16379 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16380 int UNUSED written
= 0 ;
16381 IADDR UNUSED pc
= abuf
-> addr
;
16382 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16384 (( void ) 0 ); /*nop*/
16390 /* membar: membar$pack */
16393 SEM_FN_NAME ( frvbf
, membar
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16395 #define FLD(f) abuf->fields.fmt_empty.f
16396 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16397 int UNUSED written
= 0 ;
16398 IADDR UNUSED pc
= abuf
-> addr
;
16399 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16401 (( void ) 0 ); /*nop*/
16407 /* lrai: lrai$pack $GRi,$GRk,$LRAE,$LRAD,$LRAS */
16410 SEM_FN_NAME ( frvbf
, lrai
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16412 #define FLD(f) abuf->fields.fmt_empty.f
16413 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16414 int UNUSED written
= 0 ;
16415 IADDR UNUSED pc
= abuf
-> addr
;
16416 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16418 (( void ) 0 ); /*nop*/
16424 /* lrad: lrad$pack $GRi,$GRk,$LRAE,$LRAD,$LRAS */
16427 SEM_FN_NAME ( frvbf
, lrad
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16429 #define FLD(f) abuf->fields.fmt_empty.f
16430 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16431 int UNUSED written
= 0 ;
16432 IADDR UNUSED pc
= abuf
-> addr
;
16433 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16435 (( void ) 0 ); /*nop*/
16441 /* tlbpr: tlbpr$pack $GRi,$GRj,$TLBPRopx,$TLBPRL */
16444 SEM_FN_NAME ( frvbf
, tlbpr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16446 #define FLD(f) abuf->fields.fmt_empty.f
16447 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16448 int UNUSED written
= 0 ;
16449 IADDR UNUSED pc
= abuf
-> addr
;
16450 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16452 (( void ) 0 ); /*nop*/
16458 /* cop1: cop1$pack $s6_1,$CPRi,$CPRj,$CPRk */
16461 SEM_FN_NAME ( frvbf
, cop1
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16463 #define FLD(f) abuf->fields.fmt_empty.f
16464 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16465 int UNUSED written
= 0 ;
16466 IADDR UNUSED pc
= abuf
-> addr
;
16467 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16469 (( void ) 0 ); /*nop*/
16475 /* cop2: cop2$pack $s6_1,$CPRi,$CPRj,$CPRk */
16478 SEM_FN_NAME ( frvbf
, cop2
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16480 #define FLD(f) abuf->fields.fmt_empty.f
16481 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16482 int UNUSED written
= 0 ;
16483 IADDR UNUSED pc
= abuf
-> addr
;
16484 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16486 (( void ) 0 ); /*nop*/
16492 /* clrgr: clrgr$pack $GRk */
16495 SEM_FN_NAME ( frvbf
, clrgr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16497 #define FLD(f) abuf->fields.sfmt_swapi.f
16498 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16499 int UNUSED written
= 0 ;
16500 IADDR UNUSED pc
= abuf
-> addr
;
16501 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16504 frv_ref_SI ( GET_H_GR ( FLD ( f_GRk
)));
16505 frvbf_clear_ne_flags ( current_cpu
, FLD ( f_GRk
), 0 );
16512 /* clrfr: clrfr$pack $FRk */
16515 SEM_FN_NAME ( frvbf
, clrfr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16517 #define FLD(f) abuf->fields.sfmt_cfmadds.f
16518 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16519 int UNUSED written
= 0 ;
16520 IADDR UNUSED pc
= abuf
-> addr
;
16521 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16524 frv_ref_SI ( GET_H_FR ( FLD ( f_FRk
)));
16525 frvbf_clear_ne_flags ( current_cpu
, FLD ( f_FRk
), 1 );
16532 /* clrga: clrga$pack */
16535 SEM_FN_NAME ( frvbf
, clrga
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16537 #define FLD(f) abuf->fields.fmt_empty.f
16538 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16539 int UNUSED written
= 0 ;
16540 IADDR UNUSED pc
= abuf
-> addr
;
16541 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16543 frvbf_clear_ne_flags ( current_cpu
, - 1 , 0 );
16549 /* clrfa: clrfa$pack */
16552 SEM_FN_NAME ( frvbf
, clrfa
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16554 #define FLD(f) abuf->fields.fmt_empty.f
16555 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16556 int UNUSED written
= 0 ;
16557 IADDR UNUSED pc
= abuf
-> addr
;
16558 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16560 frvbf_clear_ne_flags ( current_cpu
, - 1 , 1 );
16566 /* commitgr: commitgr$pack $GRk */
16569 SEM_FN_NAME ( frvbf
, commitgr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16571 #define FLD(f) abuf->fields.sfmt_setlos.f
16572 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16573 int UNUSED written
= 0 ;
16574 IADDR UNUSED pc
= abuf
-> addr
;
16575 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16577 frvbf_commit ( current_cpu
, FLD ( f_GRk
), 0 );
16583 /* commitfr: commitfr$pack $FRk */
16586 SEM_FN_NAME ( frvbf
, commitfr
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16588 #define FLD(f) abuf->fields.sfmt_mhsethis.f
16589 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16590 int UNUSED written
= 0 ;
16591 IADDR UNUSED pc
= abuf
-> addr
;
16592 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16594 frvbf_commit ( current_cpu
, FLD ( f_FRk
), 1 );
16600 /* commitga: commitga$pack */
16603 SEM_FN_NAME ( frvbf
, commitga
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16605 #define FLD(f) abuf->fields.fmt_empty.f
16606 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16607 int UNUSED written
= 0 ;
16608 IADDR UNUSED pc
= abuf
-> addr
;
16609 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16611 frvbf_commit ( current_cpu
, - 1 , 0 );
16617 /* commitfa: commitfa$pack */
16620 SEM_FN_NAME ( frvbf
, commitfa
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16622 #define FLD(f) abuf->fields.fmt_empty.f
16623 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16624 int UNUSED written
= 0 ;
16625 IADDR UNUSED pc
= abuf
-> addr
;
16626 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16628 frvbf_commit ( current_cpu
, - 1 , 1 );
16634 /* fitos: fitos$pack $FRintj,$FRk */
16637 SEM_FN_NAME ( frvbf
, fitos
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16639 #define FLD(f) abuf->fields.sfmt_fditos.f
16640 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16641 int UNUSED written
= 0 ;
16642 IADDR UNUSED pc
= abuf
-> addr
;
16643 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16646 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> floatsisf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR_INT ( FLD ( f_FRj
)));
16647 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
16648 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
16655 /* fstoi: fstoi$pack $FRj,$FRintk */
16658 SEM_FN_NAME ( frvbf
, fstoi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16660 #define FLD(f) abuf->fields.sfmt_fdstoi.f
16661 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16662 int UNUSED written
= 0 ;
16663 IADDR UNUSED pc
= abuf
-> addr
;
16664 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16667 SI opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> fixsfsi ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( FLD ( f_FRj
)));
16668 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
16669 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
16676 /* fitod: fitod$pack $FRintj,$FRdoublek */
16679 SEM_FN_NAME ( frvbf
, fitod
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16681 #define FLD(f) abuf->fields.sfmt_fitod.f
16682 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16683 int UNUSED written
= 0 ;
16684 IADDR UNUSED pc
= abuf
-> addr
;
16685 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16688 DF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> floatsidf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR_INT ( FLD ( f_FRj
)));
16689 sim_queue_fn_df_write ( current_cpu
, frvbf_h_fr_double_set
, FLD ( f_FRk
), opval
);
16690 TRACE_RESULT ( current_cpu
, abuf
, "fr_double" , 'f' , opval
);
16697 /* fdtoi: fdtoi$pack $FRdoublej,$FRintk */
16700 SEM_FN_NAME ( frvbf
, fdtoi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16702 #define FLD(f) abuf->fields.sfmt_fdtoi.f
16703 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16704 int UNUSED written
= 0 ;
16705 IADDR UNUSED pc
= abuf
-> addr
;
16706 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16709 SI opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> fixdfsi ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR_DOUBLE ( FLD ( f_FRj
)));
16710 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
16711 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
16718 /* fditos: fditos$pack $FRintj,$FRk */
16721 SEM_FN_NAME ( frvbf
, fditos
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16723 #define FLD(f) abuf->fields.sfmt_fditos.f
16724 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16725 int UNUSED written
= 0 ;
16726 IADDR UNUSED pc
= abuf
-> addr
;
16727 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16731 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> floatsisf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR_INT ( FLD ( f_FRj
)));
16732 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
16733 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
16736 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> floatsisf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR_INT ((( FLD ( f_FRj
)) + ( 1 ))));
16737 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
16738 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
16746 /* fdstoi: fdstoi$pack $FRj,$FRintk */
16749 SEM_FN_NAME ( frvbf
, fdstoi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16751 #define FLD(f) abuf->fields.sfmt_fdstoi.f
16752 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16753 int UNUSED written
= 0 ;
16754 IADDR UNUSED pc
= abuf
-> addr
;
16755 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16759 SI opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> fixsfsi ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( FLD ( f_FRj
)));
16760 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
16761 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
16764 USI opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> fixsfsi ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ((( FLD ( f_FRj
)) + ( 1 ))));
16765 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
16766 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
16774 /* nfditos: nfditos$pack $FRintj,$FRk */
16777 SEM_FN_NAME ( frvbf
, nfditos
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16779 #define FLD(f) abuf->fields.sfmt_fditos.f
16780 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16781 int UNUSED written
= 0 ;
16782 IADDR UNUSED pc
= abuf
-> addr
;
16783 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16786 frvbf_set_ne_index ( current_cpu
, FLD ( f_FRk
));
16788 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> floatsisf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR_INT ( FLD ( f_FRj
)));
16789 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
16790 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
16792 frvbf_set_ne_index ( current_cpu
, ADDSI ( FLD ( f_FRk
), 1 ));
16794 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> floatsisf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR_INT ((( FLD ( f_FRj
)) + ( 1 ))));
16795 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
16796 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
16804 /* nfdstoi: nfdstoi$pack $FRj,$FRintk */
16807 SEM_FN_NAME ( frvbf
, nfdstoi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16809 #define FLD(f) abuf->fields.sfmt_fdstoi.f
16810 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16811 int UNUSED written
= 0 ;
16812 IADDR UNUSED pc
= abuf
-> addr
;
16813 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16816 frvbf_set_ne_index ( current_cpu
, FLD ( f_FRk
));
16818 SI opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> fixsfsi ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( FLD ( f_FRj
)));
16819 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
16820 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
16822 frvbf_set_ne_index ( current_cpu
, ADDSI ( FLD ( f_FRk
), 1 ));
16824 USI opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> fixsfsi ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ((( FLD ( f_FRj
)) + ( 1 ))));
16825 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
16826 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
16834 /* cfitos: cfitos$pack $FRintj,$FRk,$CCi,$cond */
16837 SEM_FN_NAME ( frvbf
, cfitos
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16839 #define FLD(f) abuf->fields.sfmt_cfitos.f
16840 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16841 int UNUSED written
= 0 ;
16842 IADDR UNUSED pc
= abuf
-> addr
;
16843 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16845 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
16847 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> floatsisf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR_INT ( FLD ( f_FRj
)));
16848 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
16849 written
|= ( 1 << 3 );
16850 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
16854 abuf
-> written
= written
;
16859 /* cfstoi: cfstoi$pack $FRj,$FRintk,$CCi,$cond */
16862 SEM_FN_NAME ( frvbf
, cfstoi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16864 #define FLD(f) abuf->fields.sfmt_cfstoi.f
16865 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16866 int UNUSED written
= 0 ;
16867 IADDR UNUSED pc
= abuf
-> addr
;
16868 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16870 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
16872 SI opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> fixsfsi ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( FLD ( f_FRj
)));
16873 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
16874 written
|= ( 1 << 3 );
16875 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
16879 abuf
-> written
= written
;
16884 /* nfitos: nfitos$pack $FRintj,$FRk */
16887 SEM_FN_NAME ( frvbf
, nfitos
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16889 #define FLD(f) abuf->fields.sfmt_fditos.f
16890 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16891 int UNUSED written
= 0 ;
16892 IADDR UNUSED pc
= abuf
-> addr
;
16893 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16896 frvbf_set_ne_index ( current_cpu
, FLD ( f_FRk
));
16898 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> floatsisf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR_INT ( FLD ( f_FRj
)));
16899 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
16900 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
16908 /* nfstoi: nfstoi$pack $FRj,$FRintk */
16911 SEM_FN_NAME ( frvbf
, nfstoi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16913 #define FLD(f) abuf->fields.sfmt_fdstoi.f
16914 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16915 int UNUSED written
= 0 ;
16916 IADDR UNUSED pc
= abuf
-> addr
;
16917 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16920 frvbf_set_ne_index ( current_cpu
, FLD ( f_FRk
));
16922 SI opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> fixsfsi ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( FLD ( f_FRj
)));
16923 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
16924 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
16932 /* fmovs: fmovs$pack $FRj,$FRk */
16935 SEM_FN_NAME ( frvbf
, fmovs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16937 #define FLD(f) abuf->fields.sfmt_cfmadds.f
16938 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16939 int UNUSED written
= 0 ;
16940 IADDR UNUSED pc
= abuf
-> addr
;
16941 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16944 SF opval
= GET_H_FR ( FLD ( f_FRj
));
16945 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
16946 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
16953 /* fmovd: fmovd$pack $FRdoublej,$FRdoublek */
16956 SEM_FN_NAME ( frvbf
, fmovd
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16958 #define FLD(f) abuf->fields.sfmt_fmaddd.f
16959 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16960 int UNUSED written
= 0 ;
16961 IADDR UNUSED pc
= abuf
-> addr
;
16962 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16965 DF opval
= GET_H_FR_DOUBLE ( FLD ( f_FRj
));
16966 sim_queue_fn_df_write ( current_cpu
, frvbf_h_fr_double_set
, FLD ( f_FRk
), opval
);
16967 TRACE_RESULT ( current_cpu
, abuf
, "fr_double" , 'f' , opval
);
16974 /* fdmovs: fdmovs$pack $FRj,$FRk */
16977 SEM_FN_NAME ( frvbf
, fdmovs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
16979 #define FLD(f) abuf->fields.sfmt_fdmadds.f
16980 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
16981 int UNUSED written
= 0 ;
16982 IADDR UNUSED pc
= abuf
-> addr
;
16983 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
16987 SF opval
= GET_H_FR ( FLD ( f_FRj
));
16988 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
16989 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
16992 SF opval
= GET_H_FR ((( FLD ( f_FRj
)) + ( 1 )));
16993 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
16994 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
17002 /* cfmovs: cfmovs$pack $FRj,$FRk,$CCi,$cond */
17005 SEM_FN_NAME ( frvbf
, cfmovs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
17007 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17008 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
17009 int UNUSED written
= 0 ;
17010 IADDR UNUSED pc
= abuf
-> addr
;
17011 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
17013 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
17015 SF opval
= GET_H_FR ( FLD ( f_FRj
));
17016 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
17017 written
|= ( 1 << 3 );
17018 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
17022 abuf
-> written
= written
;
17027 /* fnegs: fnegs$pack $FRj,$FRk */
17030 SEM_FN_NAME ( frvbf
, fnegs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
17032 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17033 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
17034 int UNUSED written
= 0 ;
17035 IADDR UNUSED pc
= abuf
-> addr
;
17036 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
17039 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> negsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( FLD ( f_FRj
)));
17040 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
17041 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
17048 /* fnegd: fnegd$pack $FRdoublej,$FRdoublek */
17051 SEM_FN_NAME ( frvbf
, fnegd
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
17053 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17054 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
17055 int UNUSED written
= 0 ;
17056 IADDR UNUSED pc
= abuf
-> addr
;
17057 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
17060 DF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> negdf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR_DOUBLE ( FLD ( f_FRj
)));
17061 sim_queue_fn_df_write ( current_cpu
, frvbf_h_fr_double_set
, FLD ( f_FRk
), opval
);
17062 TRACE_RESULT ( current_cpu
, abuf
, "fr_double" , 'f' , opval
);
17069 /* fdnegs: fdnegs$pack $FRj,$FRk */
17072 SEM_FN_NAME ( frvbf
, fdnegs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
17074 #define FLD(f) abuf->fields.sfmt_fdmadds.f
17075 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
17076 int UNUSED written
= 0 ;
17077 IADDR UNUSED pc
= abuf
-> addr
;
17078 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
17082 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> negsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( FLD ( f_FRj
)));
17083 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
17084 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
17087 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> negsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ((( FLD ( f_FRj
)) + ( 1 ))));
17088 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
17089 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
17097 /* cfnegs: cfnegs$pack $FRj,$FRk,$CCi,$cond */
17100 SEM_FN_NAME ( frvbf
, cfnegs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
17102 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17103 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
17104 int UNUSED written
= 0 ;
17105 IADDR UNUSED pc
= abuf
-> addr
;
17106 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
17108 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
17110 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> negsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( FLD ( f_FRj
)));
17111 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
17112 written
|= ( 1 << 3 );
17113 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
17117 abuf
-> written
= written
;
17122 /* fabss: fabss$pack $FRj,$FRk */
17125 SEM_FN_NAME ( frvbf
, fabss
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
17127 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17128 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
17129 int UNUSED written
= 0 ;
17130 IADDR UNUSED pc
= abuf
-> addr
;
17131 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
17134 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> abssf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( FLD ( f_FRj
)));
17135 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
17136 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
17143 /* fabsd: fabsd$pack $FRdoublej,$FRdoublek */
17146 SEM_FN_NAME ( frvbf
, fabsd
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
17148 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17149 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
17150 int UNUSED written
= 0 ;
17151 IADDR UNUSED pc
= abuf
-> addr
;
17152 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
17155 DF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> absdf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR_DOUBLE ( FLD ( f_FRj
)));
17156 sim_queue_fn_df_write ( current_cpu
, frvbf_h_fr_double_set
, FLD ( f_FRk
), opval
);
17157 TRACE_RESULT ( current_cpu
, abuf
, "fr_double" , 'f' , opval
);
17164 /* fdabss: fdabss$pack $FRj,$FRk */
17167 SEM_FN_NAME ( frvbf
, fdabss
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
17169 #define FLD(f) abuf->fields.sfmt_fdmadds.f
17170 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
17171 int UNUSED written
= 0 ;
17172 IADDR UNUSED pc
= abuf
-> addr
;
17173 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
17177 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> abssf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( FLD ( f_FRj
)));
17178 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
17179 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
17182 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> abssf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ((( FLD ( f_FRj
)) + ( 1 ))));
17183 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
17184 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
17192 /* cfabss: cfabss$pack $FRj,$FRk,$CCi,$cond */
17195 SEM_FN_NAME ( frvbf
, cfabss
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
17197 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17198 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
17199 int UNUSED written
= 0 ;
17200 IADDR UNUSED pc
= abuf
-> addr
;
17201 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
17203 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
17205 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> abssf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( FLD ( f_FRj
)));
17206 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
17207 written
|= ( 1 << 3 );
17208 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
17212 abuf
-> written
= written
;
17217 /* fsqrts: fsqrts$pack $FRj,$FRk */
17220 SEM_FN_NAME ( frvbf
, fsqrts
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
17222 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17223 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
17224 int UNUSED written
= 0 ;
17225 IADDR UNUSED pc
= abuf
-> addr
;
17226 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
17229 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> sqrtsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( FLD ( f_FRj
)));
17230 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
17231 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
17238 /* fdsqrts: fdsqrts$pack $FRj,$FRk */
17241 SEM_FN_NAME ( frvbf
, fdsqrts
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
17243 #define FLD(f) abuf->fields.sfmt_fdmadds.f
17244 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
17245 int UNUSED written
= 0 ;
17246 IADDR UNUSED pc
= abuf
-> addr
;
17247 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
17251 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> sqrtsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( FLD ( f_FRj
)));
17252 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
17253 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
17256 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> sqrtsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ((( FLD ( f_FRj
)) + ( 1 ))));
17257 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
17258 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
17266 /* nfdsqrts: nfdsqrts$pack $FRj,$FRk */
17269 SEM_FN_NAME ( frvbf
, nfdsqrts
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
17271 #define FLD(f) abuf->fields.sfmt_fdmadds.f
17272 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
17273 int UNUSED written
= 0 ;
17274 IADDR UNUSED pc
= abuf
-> addr
;
17275 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
17278 frvbf_set_ne_index ( current_cpu
, FLD ( f_FRk
));
17280 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> sqrtsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( FLD ( f_FRj
)));
17281 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
17282 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
17284 frvbf_set_ne_index ( current_cpu
, ADDSI ( FLD ( f_FRk
), 1 ));
17286 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> sqrtsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ((( FLD ( f_FRj
)) + ( 1 ))));
17287 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
17288 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
17296 /* fsqrtd: fsqrtd$pack $FRdoublej,$FRdoublek */
17299 SEM_FN_NAME ( frvbf
, fsqrtd
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
17301 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17302 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
17303 int UNUSED written
= 0 ;
17304 IADDR UNUSED pc
= abuf
-> addr
;
17305 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
17308 DF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> sqrtdf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR_DOUBLE ( FLD ( f_FRj
)));
17309 sim_queue_fn_df_write ( current_cpu
, frvbf_h_fr_double_set
, FLD ( f_FRk
), opval
);
17310 TRACE_RESULT ( current_cpu
, abuf
, "fr_double" , 'f' , opval
);
17317 /* cfsqrts: cfsqrts$pack $FRj,$FRk,$CCi,$cond */
17320 SEM_FN_NAME ( frvbf
, cfsqrts
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
17322 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17323 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
17324 int UNUSED written
= 0 ;
17325 IADDR UNUSED pc
= abuf
-> addr
;
17326 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
17328 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
17330 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> sqrtsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( FLD ( f_FRj
)));
17331 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
17332 written
|= ( 1 << 3 );
17333 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
17337 abuf
-> written
= written
;
17342 /* nfsqrts: nfsqrts$pack $FRj,$FRk */
17345 SEM_FN_NAME ( frvbf
, nfsqrts
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
17347 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17348 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
17349 int UNUSED written
= 0 ;
17350 IADDR UNUSED pc
= abuf
-> addr
;
17351 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
17354 frvbf_set_ne_index ( current_cpu
, FLD ( f_FRk
));
17356 SF opval
= CGEN_CPU_FPU ( current_cpu
)-> ops
-> sqrtsf ( CGEN_CPU_FPU ( current_cpu
), GET_H_FR ( FLD ( f_FRj
)));
17357 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
17358 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
17366 /* fadds: fadds$pack $FRi,$FRj,$FRk */
17369 SEM_FN_NAME ( frvbf
, fadds
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
17371 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17372 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
17373 int UNUSED written
= 0 ;
17374 IADDR UNUSED pc
= abuf
-> addr
;
17375 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
17378 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
)));
17379 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
17380 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
17387 /* fsubs: fsubs$pack $FRi,$FRj,$FRk */
17390 SEM_FN_NAME ( frvbf
, fsubs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
17392 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17393 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
17394 int UNUSED written
= 0 ;
17395 IADDR UNUSED pc
= abuf
-> addr
;
17396 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
17399 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
)));
17400 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
17401 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
17408 /* fmuls: fmuls$pack $FRi,$FRj,$FRk */
17411 SEM_FN_NAME ( frvbf
, fmuls
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
17413 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17414 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
17415 int UNUSED written
= 0 ;
17416 IADDR UNUSED pc
= abuf
-> addr
;
17417 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
17420 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
)));
17421 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
17422 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
17429 /* fdivs: fdivs$pack $FRi,$FRj,$FRk */
17432 SEM_FN_NAME ( frvbf
, fdivs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
17434 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17435 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
17436 int UNUSED written
= 0 ;
17437 IADDR UNUSED pc
= abuf
-> addr
;
17438 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
17441 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
)));
17442 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
17443 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
17450 /* faddd: faddd$pack $FRdoublei,$FRdoublej,$FRdoublek */
17453 SEM_FN_NAME ( frvbf
, faddd
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
17455 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17456 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
17457 int UNUSED written
= 0 ;
17458 IADDR UNUSED pc
= abuf
-> addr
;
17459 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
17462 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
)));
17463 sim_queue_fn_df_write ( current_cpu
, frvbf_h_fr_double_set
, FLD ( f_FRk
), opval
);
17464 TRACE_RESULT ( current_cpu
, abuf
, "fr_double" , 'f' , opval
);
17471 /* fsubd: fsubd$pack $FRdoublei,$FRdoublej,$FRdoublek */
17474 SEM_FN_NAME ( frvbf
, fsubd
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
17476 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17477 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
17478 int UNUSED written
= 0 ;
17479 IADDR UNUSED pc
= abuf
-> addr
;
17480 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
17483 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
)));
17484 sim_queue_fn_df_write ( current_cpu
, frvbf_h_fr_double_set
, FLD ( f_FRk
), opval
);
17485 TRACE_RESULT ( current_cpu
, abuf
, "fr_double" , 'f' , opval
);
17492 /* fmuld: fmuld$pack $FRdoublei,$FRdoublej,$FRdoublek */
17495 SEM_FN_NAME ( frvbf
, fmuld
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
17497 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17498 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
17499 int UNUSED written
= 0 ;
17500 IADDR UNUSED pc
= abuf
-> addr
;
17501 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
17504 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
)));
17505 sim_queue_fn_df_write ( current_cpu
, frvbf_h_fr_double_set
, FLD ( f_FRk
), opval
);
17506 TRACE_RESULT ( current_cpu
, abuf
, "fr_double" , 'f' , opval
);
17513 /* fdivd: fdivd$pack $FRdoublei,$FRdoublej,$FRdoublek */
17516 SEM_FN_NAME ( frvbf
, fdivd
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
17518 #define FLD(f) abuf->fields.sfmt_fmaddd.f
17519 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
17520 int UNUSED written
= 0 ;
17521 IADDR UNUSED pc
= abuf
-> addr
;
17522 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
17525 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
)));
17526 sim_queue_fn_df_write ( current_cpu
, frvbf_h_fr_double_set
, FLD ( f_FRk
), opval
);
17527 TRACE_RESULT ( current_cpu
, abuf
, "fr_double" , 'f' , opval
);
17534 /* cfadds: cfadds$pack $FRi,$FRj,$FRk,$CCi,$cond */
17537 SEM_FN_NAME ( frvbf
, cfadds
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
17539 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17540 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
17541 int UNUSED written
= 0 ;
17542 IADDR UNUSED pc
= abuf
-> addr
;
17543 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
17545 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
17547 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
)));
17548 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
17549 written
|= ( 1 << 4 );
17550 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
17554 abuf
-> written
= written
;
17559 /* cfsubs: cfsubs$pack $FRi,$FRj,$FRk,$CCi,$cond */
17562 SEM_FN_NAME ( frvbf
, cfsubs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
17564 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17565 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
17566 int UNUSED written
= 0 ;
17567 IADDR UNUSED pc
= abuf
-> addr
;
17568 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
17570 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
17572 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
)));
17573 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
17574 written
|= ( 1 << 4 );
17575 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
17579 abuf
-> written
= written
;
17584 /* cfmuls: cfmuls$pack $FRi,$FRj,$FRk,$CCi,$cond */
17587 SEM_FN_NAME ( frvbf
, cfmuls
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
17589 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17590 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
17591 int UNUSED written
= 0 ;
17592 IADDR UNUSED pc
= abuf
-> addr
;
17593 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
17595 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
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 written
|= ( 1 << 4 );
17600 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
17604 abuf
-> written
= written
;
17609 /* cfdivs: cfdivs$pack $FRi,$FRj,$FRk,$CCi,$cond */
17612 SEM_FN_NAME ( frvbf
, cfdivs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
17614 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17615 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
17616 int UNUSED written
= 0 ;
17617 IADDR UNUSED pc
= abuf
-> addr
;
17618 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
17620 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
17622 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
)));
17623 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
17624 written
|= ( 1 << 4 );
17625 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
17629 abuf
-> written
= written
;
17634 /* nfadds: nfadds$pack $FRi,$FRj,$FRk */
17637 SEM_FN_NAME ( frvbf
, nfadds
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
17639 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17640 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
17641 int UNUSED written
= 0 ;
17642 IADDR UNUSED pc
= abuf
-> addr
;
17643 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
17646 frvbf_set_ne_index ( current_cpu
, FLD ( f_FRk
));
17648 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
)));
17649 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
17650 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
17658 /* nfsubs: nfsubs$pack $FRi,$FRj,$FRk */
17661 SEM_FN_NAME ( frvbf
, nfsubs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
17663 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17664 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
17665 int UNUSED written
= 0 ;
17666 IADDR UNUSED pc
= abuf
-> addr
;
17667 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
17670 frvbf_set_ne_index ( current_cpu
, FLD ( f_FRk
));
17672 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
)));
17673 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
17674 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
17682 /* nfmuls: nfmuls$pack $FRi,$FRj,$FRk */
17685 SEM_FN_NAME ( frvbf
, nfmuls
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
17687 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17688 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
17689 int UNUSED written
= 0 ;
17690 IADDR UNUSED pc
= abuf
-> addr
;
17691 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
17694 frvbf_set_ne_index ( current_cpu
, FLD ( f_FRk
));
17696 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
)));
17697 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
17698 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
17706 /* nfdivs: nfdivs$pack $FRi,$FRj,$FRk */
17709 SEM_FN_NAME ( frvbf
, nfdivs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
17711 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17712 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
17713 int UNUSED written
= 0 ;
17714 IADDR UNUSED pc
= abuf
-> addr
;
17715 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
17718 frvbf_set_ne_index ( current_cpu
, FLD ( f_FRk
));
17720 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
)));
17721 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
17722 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
17730 /* fcmps: fcmps$pack $FRi,$FRj,$FCCi_2 */
17733 SEM_FN_NAME ( frvbf
, fcmps
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
17735 #define FLD(f) abuf->fields.sfmt_cfcmps.f
17736 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
17737 int UNUSED written
= 0 ;
17738 IADDR UNUSED pc
= abuf
-> addr
;
17739 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
17741 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
)))) {
17744 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), opval
);
17745 written
|= ( 1 << 2 );
17746 TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
17749 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
)))) {
17752 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), opval
);
17753 written
|= ( 1 << 2 );
17754 TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
17757 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
)))) {
17760 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), opval
);
17761 written
|= ( 1 << 2 );
17762 TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
17767 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), opval
);
17768 written
|= ( 1 << 2 );
17769 TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
17775 abuf
-> written
= written
;
17780 /* fcmpd: fcmpd$pack $FRdoublei,$FRdoublej,$FCCi_2 */
17783 SEM_FN_NAME ( frvbf
, fcmpd
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
17785 #define FLD(f) abuf->fields.sfmt_fcmpd.f
17786 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
17787 int UNUSED written
= 0 ;
17788 IADDR UNUSED pc
= abuf
-> addr
;
17789 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
17791 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
)))) {
17794 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), opval
);
17795 written
|= ( 1 << 2 );
17796 TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
17799 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
)))) {
17802 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), opval
);
17803 written
|= ( 1 << 2 );
17804 TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
17807 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
)))) {
17810 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), opval
);
17811 written
|= ( 1 << 2 );
17812 TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
17817 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), opval
);
17818 written
|= ( 1 << 2 );
17819 TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
17825 abuf
-> written
= written
;
17830 /* cfcmps: cfcmps$pack $FRi,$FRj,$FCCi_2,$CCi,$cond */
17833 SEM_FN_NAME ( frvbf
, cfcmps
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
17835 #define FLD(f) abuf->fields.sfmt_cfcmps.f
17836 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
17837 int UNUSED written
= 0 ;
17838 IADDR UNUSED pc
= abuf
-> addr
;
17839 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
17841 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
17842 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
)))) {
17845 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), opval
);
17846 written
|= ( 1 << 4 );
17847 TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
17850 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
)))) {
17853 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), opval
);
17854 written
|= ( 1 << 4 );
17855 TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
17858 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
)))) {
17861 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), opval
);
17862 written
|= ( 1 << 4 );
17863 TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
17868 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), opval
);
17869 written
|= ( 1 << 4 );
17870 TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
17877 abuf
-> written
= written
;
17882 /* fdcmps: fdcmps$pack $FRi,$FRj,$FCCi_2 */
17885 SEM_FN_NAME ( frvbf
, fdcmps
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
17887 #define FLD(f) abuf->fields.sfmt_nfdcmps.f
17888 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
17889 int UNUSED written
= 0 ;
17890 IADDR UNUSED pc
= abuf
-> addr
;
17891 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
17894 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
)))) {
17897 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), opval
);
17898 written
|= ( 1 << 7 );
17899 TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
17902 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
)))) {
17905 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), opval
);
17906 written
|= ( 1 << 7 );
17907 TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
17910 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
)))) {
17913 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), opval
);
17914 written
|= ( 1 << 7 );
17915 TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
17920 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), opval
);
17921 written
|= ( 1 << 7 );
17922 TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
17927 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 ))))) {
17930 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[(( FLD ( f_FCCi_2
)) + ( 1 ))]), opval
);
17931 written
|= ( 1 << 8 );
17932 TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
17935 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 ))))) {
17938 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[(( FLD ( f_FCCi_2
)) + ( 1 ))]), opval
);
17939 written
|= ( 1 << 8 );
17940 TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
17943 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 ))))) {
17946 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[(( FLD ( f_FCCi_2
)) + ( 1 ))]), opval
);
17947 written
|= ( 1 << 8 );
17948 TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
17953 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[(( FLD ( f_FCCi_2
)) + ( 1 ))]), opval
);
17954 written
|= ( 1 << 8 );
17955 TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
17962 abuf
-> written
= written
;
17967 /* fmadds: fmadds$pack $FRi,$FRj,$FRk */
17970 SEM_FN_NAME ( frvbf
, fmadds
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
17972 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17973 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
17974 int UNUSED written
= 0 ;
17975 IADDR UNUSED pc
= abuf
-> addr
;
17976 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
17979 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
)));
17980 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
17981 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
17988 /* fmsubs: fmsubs$pack $FRi,$FRj,$FRk */
17991 SEM_FN_NAME ( frvbf
, fmsubs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
17993 #define FLD(f) abuf->fields.sfmt_cfmadds.f
17994 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
17995 int UNUSED written
= 0 ;
17996 IADDR UNUSED pc
= abuf
-> addr
;
17997 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
18000 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
)));
18001 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
18002 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18009 /* fmaddd: fmaddd$pack $FRdoublei,$FRdoublej,$FRdoublek */
18012 SEM_FN_NAME ( frvbf
, fmaddd
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
18014 #define FLD(f) abuf->fields.sfmt_fmaddd.f
18015 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
18016 int UNUSED written
= 0 ;
18017 IADDR UNUSED pc
= abuf
-> addr
;
18018 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
18021 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
)));
18022 sim_queue_fn_df_write ( current_cpu
, frvbf_h_fr_double_set
, FLD ( f_FRk
), opval
);
18023 TRACE_RESULT ( current_cpu
, abuf
, "fr_double" , 'f' , opval
);
18030 /* fmsubd: fmsubd$pack $FRdoublei,$FRdoublej,$FRdoublek */
18033 SEM_FN_NAME ( frvbf
, fmsubd
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
18035 #define FLD(f) abuf->fields.sfmt_fmaddd.f
18036 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
18037 int UNUSED written
= 0 ;
18038 IADDR UNUSED pc
= abuf
-> addr
;
18039 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
18042 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
)));
18043 sim_queue_fn_df_write ( current_cpu
, frvbf_h_fr_double_set
, FLD ( f_FRk
), opval
);
18044 TRACE_RESULT ( current_cpu
, abuf
, "fr_double" , 'f' , opval
);
18051 /* fdmadds: fdmadds$pack $FRi,$FRj,$FRk */
18054 SEM_FN_NAME ( frvbf
, fdmadds
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
18056 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18057 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
18058 int UNUSED written
= 0 ;
18059 IADDR UNUSED pc
= abuf
-> addr
;
18060 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
18064 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
)));
18065 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
18066 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18069 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 ))));
18070 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
18071 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18079 /* nfdmadds: nfdmadds$pack $FRi,$FRj,$FRk */
18082 SEM_FN_NAME ( frvbf
, nfdmadds
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
18084 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18085 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
18086 int UNUSED written
= 0 ;
18087 IADDR UNUSED pc
= abuf
-> addr
;
18088 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
18091 frvbf_set_ne_index ( current_cpu
, FLD ( f_FRk
));
18093 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
)));
18094 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
18095 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18097 frvbf_set_ne_index ( current_cpu
, ADDSI ( FLD ( f_FRk
), 1 ));
18099 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 ))));
18100 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
18101 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18109 /* cfmadds: cfmadds$pack $FRi,$FRj,$FRk,$CCi,$cond */
18112 SEM_FN_NAME ( frvbf
, cfmadds
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
18114 #define FLD(f) abuf->fields.sfmt_cfmadds.f
18115 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
18116 int UNUSED written
= 0 ;
18117 IADDR UNUSED pc
= abuf
-> addr
;
18118 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
18120 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
18122 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
)));
18123 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
18124 written
|= ( 1 << 5 );
18125 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18129 abuf
-> written
= written
;
18134 /* cfmsubs: cfmsubs$pack $FRi,$FRj,$FRk,$CCi,$cond */
18137 SEM_FN_NAME ( frvbf
, cfmsubs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
18139 #define FLD(f) abuf->fields.sfmt_cfmadds.f
18140 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
18141 int UNUSED written
= 0 ;
18142 IADDR UNUSED pc
= abuf
-> addr
;
18143 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
18145 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
18147 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
)));
18148 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
18149 written
|= ( 1 << 5 );
18150 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18154 abuf
-> written
= written
;
18159 /* nfmadds: nfmadds$pack $FRi,$FRj,$FRk */
18162 SEM_FN_NAME ( frvbf
, nfmadds
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
18164 #define FLD(f) abuf->fields.sfmt_cfmadds.f
18165 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
18166 int UNUSED written
= 0 ;
18167 IADDR UNUSED pc
= abuf
-> addr
;
18168 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
18171 frvbf_set_ne_index ( current_cpu
, FLD ( f_FRk
));
18173 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
)));
18174 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
18175 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18183 /* nfmsubs: nfmsubs$pack $FRi,$FRj,$FRk */
18186 SEM_FN_NAME ( frvbf
, nfmsubs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
18188 #define FLD(f) abuf->fields.sfmt_cfmadds.f
18189 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
18190 int UNUSED written
= 0 ;
18191 IADDR UNUSED pc
= abuf
-> addr
;
18192 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
18195 frvbf_set_ne_index ( current_cpu
, FLD ( f_FRk
));
18197 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
)));
18198 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
18199 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18207 /* fmas: fmas$pack $FRi,$FRj,$FRk */
18210 SEM_FN_NAME ( frvbf
, fmas
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
18212 #define FLD(f) abuf->fields.sfmt_fdmadds.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 );
18220 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
)));
18221 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
18222 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18225 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 ))));
18226 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
18227 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18235 /* fmss: fmss$pack $FRi,$FRj,$FRk */
18238 SEM_FN_NAME ( frvbf
, fmss
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
18240 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18241 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
18242 int UNUSED written
= 0 ;
18243 IADDR UNUSED pc
= abuf
-> addr
;
18244 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
18248 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
)));
18249 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
18250 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18253 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 ))));
18254 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
18255 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18263 /* fdmas: fdmas$pack $FRi,$FRj,$FRk */
18266 SEM_FN_NAME ( frvbf
, fdmas
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
18268 #define FLD(f) abuf->fields.sfmt_fdmas.f
18269 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
18270 int UNUSED written
= 0 ;
18271 IADDR UNUSED pc
= abuf
-> addr
;
18272 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
18276 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
)));
18277 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
18278 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18281 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 ))));
18282 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
18283 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18286 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 ))));
18287 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, (( FLD ( f_FRk
)) + ( 2 )), opval
);
18288 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18291 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 ))));
18292 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, (( FLD ( f_FRk
)) + ( 3 )), opval
);
18293 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18301 /* fdmss: fdmss$pack $FRi,$FRj,$FRk */
18304 SEM_FN_NAME ( frvbf
, fdmss
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
18306 #define FLD(f) abuf->fields.sfmt_fdmas.f
18307 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
18308 int UNUSED written
= 0 ;
18309 IADDR UNUSED pc
= abuf
-> addr
;
18310 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
18314 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
)));
18315 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
18316 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18319 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 ))));
18320 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
18321 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18324 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 ))));
18325 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, (( FLD ( f_FRk
)) + ( 2 )), opval
);
18326 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18329 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 ))));
18330 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, (( FLD ( f_FRk
)) + ( 3 )), opval
);
18331 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18339 /* nfdmas: nfdmas$pack $FRi,$FRj,$FRk */
18342 SEM_FN_NAME ( frvbf
, nfdmas
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
18344 #define FLD(f) abuf->fields.sfmt_fdmas.f
18345 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
18346 int UNUSED written
= 0 ;
18347 IADDR UNUSED pc
= abuf
-> addr
;
18348 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
18351 frvbf_set_ne_index ( current_cpu
, FLD ( f_FRk
));
18352 frvbf_set_ne_index ( current_cpu
, ADDSI ( FLD ( f_FRk
), 1 ));
18353 frvbf_set_ne_index ( current_cpu
, ADDSI ( FLD ( f_FRk
), 2 ));
18354 frvbf_set_ne_index ( current_cpu
, ADDSI ( FLD ( f_FRk
), 3 ));
18356 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
)));
18357 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
18358 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18361 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 ))));
18362 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
18363 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18366 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 ))));
18367 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, (( FLD ( f_FRk
)) + ( 2 )), opval
);
18368 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18371 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 ))));
18372 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, (( FLD ( f_FRk
)) + ( 3 )), opval
);
18373 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18381 /* nfdmss: nfdmss$pack $FRi,$FRj,$FRk */
18384 SEM_FN_NAME ( frvbf
, nfdmss
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
18386 #define FLD(f) abuf->fields.sfmt_fdmas.f
18387 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
18388 int UNUSED written
= 0 ;
18389 IADDR UNUSED pc
= abuf
-> addr
;
18390 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
18393 frvbf_set_ne_index ( current_cpu
, FLD ( f_FRk
));
18394 frvbf_set_ne_index ( current_cpu
, ADDSI ( FLD ( f_FRk
), 1 ));
18395 frvbf_set_ne_index ( current_cpu
, ADDSI ( FLD ( f_FRk
), 2 ));
18396 frvbf_set_ne_index ( current_cpu
, ADDSI ( FLD ( f_FRk
), 3 ));
18398 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
)));
18399 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
18400 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18403 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 ))));
18404 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
18405 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18408 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 ))));
18409 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, (( FLD ( f_FRk
)) + ( 2 )), opval
);
18410 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18413 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 ))));
18414 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, (( FLD ( f_FRk
)) + ( 3 )), opval
);
18415 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18423 /* cfmas: cfmas$pack $FRi,$FRj,$FRk,$CCi,$cond */
18426 SEM_FN_NAME ( frvbf
, cfmas
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
18428 #define FLD(f) abuf->fields.sfmt_cfmas.f
18429 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
18430 int UNUSED written
= 0 ;
18431 IADDR UNUSED pc
= abuf
-> addr
;
18432 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
18434 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
18437 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
)));
18438 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
18439 written
|= ( 1 << 9 );
18440 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18443 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 ))));
18444 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
18445 written
|= ( 1 << 10 );
18446 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18451 abuf
-> written
= written
;
18456 /* cfmss: cfmss$pack $FRi,$FRj,$FRk,$CCi,$cond */
18459 SEM_FN_NAME ( frvbf
, cfmss
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
18461 #define FLD(f) abuf->fields.sfmt_cfmas.f
18462 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
18463 int UNUSED written
= 0 ;
18464 IADDR UNUSED pc
= abuf
-> addr
;
18465 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
18467 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
18470 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
)));
18471 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
18472 written
|= ( 1 << 9 );
18473 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18476 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 ))));
18477 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
18478 written
|= ( 1 << 10 );
18479 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18484 abuf
-> written
= written
;
18489 /* fmad: fmad$pack $FRi,$FRj,$FRk */
18492 SEM_FN_NAME ( frvbf
, fmad
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
18494 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18495 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
18496 int UNUSED written
= 0 ;
18497 IADDR UNUSED pc
= abuf
-> addr
;
18498 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
18502 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
)))));
18503 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
18504 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18507 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 ))))));
18508 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
18509 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18517 /* fmsd: fmsd$pack $FRi,$FRj,$FRk */
18520 SEM_FN_NAME ( frvbf
, fmsd
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
18522 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18523 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
18524 int UNUSED written
= 0 ;
18525 IADDR UNUSED pc
= abuf
-> addr
;
18526 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
18530 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
)))));
18531 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
18532 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18535 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 ))))));
18536 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
18537 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18545 /* nfmas: nfmas$pack $FRi,$FRj,$FRk */
18548 SEM_FN_NAME ( frvbf
, nfmas
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
18550 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18551 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
18552 int UNUSED written
= 0 ;
18553 IADDR UNUSED pc
= abuf
-> addr
;
18554 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
18557 frvbf_set_ne_index ( current_cpu
, FLD ( f_FRk
));
18559 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
)));
18560 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
18561 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18563 frvbf_set_ne_index ( current_cpu
, ADDSI ( FLD ( f_FRk
), 1 ));
18565 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 ))));
18566 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
18567 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18575 /* nfmss: nfmss$pack $FRi,$FRj,$FRk */
18578 SEM_FN_NAME ( frvbf
, nfmss
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
18580 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18581 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
18582 int UNUSED written
= 0 ;
18583 IADDR UNUSED pc
= abuf
-> addr
;
18584 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
18587 frvbf_set_ne_index ( current_cpu
, FLD ( f_FRk
));
18589 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
)));
18590 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
18591 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18593 frvbf_set_ne_index ( current_cpu
, ADDSI ( FLD ( f_FRk
), 1 ));
18595 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 ))));
18596 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
18597 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18605 /* fdadds: fdadds$pack $FRi,$FRj,$FRk */
18608 SEM_FN_NAME ( frvbf
, fdadds
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
18610 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18611 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
18612 int UNUSED written
= 0 ;
18613 IADDR UNUSED pc
= abuf
-> addr
;
18614 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
18618 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
)));
18619 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
18620 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18623 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 ))));
18624 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
18625 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18633 /* fdsubs: fdsubs$pack $FRi,$FRj,$FRk */
18636 SEM_FN_NAME ( frvbf
, fdsubs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
18638 #define FLD(f) abuf->fields.sfmt_fdmadds.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 );
18646 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
)));
18647 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
18648 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18651 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 ))));
18652 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
18653 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18661 /* fdmuls: fdmuls$pack $FRi,$FRj,$FRk */
18664 SEM_FN_NAME ( frvbf
, fdmuls
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
18666 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18667 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
18668 int UNUSED written
= 0 ;
18669 IADDR UNUSED pc
= abuf
-> addr
;
18670 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
18674 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
)));
18675 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
18676 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18679 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 ))));
18680 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
18681 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18689 /* fddivs: fddivs$pack $FRi,$FRj,$FRk */
18692 SEM_FN_NAME ( frvbf
, fddivs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
18694 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18695 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
18696 int UNUSED written
= 0 ;
18697 IADDR UNUSED pc
= abuf
-> addr
;
18698 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
18702 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
)));
18703 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
18704 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18707 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 ))));
18708 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
18709 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18717 /* fdsads: fdsads$pack $FRi,$FRj,$FRk */
18720 SEM_FN_NAME ( frvbf
, fdsads
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
18722 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18723 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
18724 int UNUSED written
= 0 ;
18725 IADDR UNUSED pc
= abuf
-> addr
;
18726 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
18730 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
)));
18731 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
18732 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18735 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 ))));
18736 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
18737 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18745 /* fdmulcs: fdmulcs$pack $FRi,$FRj,$FRk */
18748 SEM_FN_NAME ( frvbf
, fdmulcs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
18750 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18751 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
18752 int UNUSED written
= 0 ;
18753 IADDR UNUSED pc
= abuf
-> addr
;
18754 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
18758 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 ))));
18759 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
18760 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18763 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
)));
18764 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
18765 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18773 /* nfdmulcs: nfdmulcs$pack $FRi,$FRj,$FRk */
18776 SEM_FN_NAME ( frvbf
, nfdmulcs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
18778 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18779 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
18780 int UNUSED written
= 0 ;
18781 IADDR UNUSED pc
= abuf
-> addr
;
18782 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
18785 frvbf_set_ne_index ( current_cpu
, FLD ( f_FRk
));
18787 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 ))));
18788 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
18789 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18791 frvbf_set_ne_index ( current_cpu
, ADDSI ( FLD ( f_FRk
), 1 ));
18793 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
)));
18794 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
18795 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18803 /* nfdadds: nfdadds$pack $FRi,$FRj,$FRk */
18806 SEM_FN_NAME ( frvbf
, nfdadds
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
18808 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18809 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
18810 int UNUSED written
= 0 ;
18811 IADDR UNUSED pc
= abuf
-> addr
;
18812 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
18815 frvbf_set_ne_index ( current_cpu
, FLD ( f_FRk
));
18817 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
)));
18818 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
18819 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18821 frvbf_set_ne_index ( current_cpu
, ADDSI ( FLD ( f_FRk
), 1 ));
18823 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 ))));
18824 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
18825 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18833 /* nfdsubs: nfdsubs$pack $FRi,$FRj,$FRk */
18836 SEM_FN_NAME ( frvbf
, nfdsubs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
18838 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18839 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
18840 int UNUSED written
= 0 ;
18841 IADDR UNUSED pc
= abuf
-> addr
;
18842 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
18845 frvbf_set_ne_index ( current_cpu
, FLD ( f_FRk
));
18847 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
)));
18848 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
18849 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18851 frvbf_set_ne_index ( current_cpu
, ADDSI ( FLD ( f_FRk
), 1 ));
18853 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 ))));
18854 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
18855 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18863 /* nfdmuls: nfdmuls$pack $FRi,$FRj,$FRk */
18866 SEM_FN_NAME ( frvbf
, nfdmuls
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
18868 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18869 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
18870 int UNUSED written
= 0 ;
18871 IADDR UNUSED pc
= abuf
-> addr
;
18872 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
18875 frvbf_set_ne_index ( current_cpu
, FLD ( f_FRk
));
18877 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
)));
18878 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
18879 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18881 frvbf_set_ne_index ( current_cpu
, ADDSI ( FLD ( f_FRk
), 1 ));
18883 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 ))));
18884 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
18885 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18893 /* nfddivs: nfddivs$pack $FRi,$FRj,$FRk */
18896 SEM_FN_NAME ( frvbf
, nfddivs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
18898 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18899 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
18900 int UNUSED written
= 0 ;
18901 IADDR UNUSED pc
= abuf
-> addr
;
18902 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
18905 frvbf_set_ne_index ( current_cpu
, FLD ( f_FRk
));
18907 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
)));
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
);
18911 frvbf_set_ne_index ( current_cpu
, ADDSI ( FLD ( f_FRk
), 1 ));
18913 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 ))));
18914 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
18915 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18923 /* nfdsads: nfdsads$pack $FRi,$FRj,$FRk */
18926 SEM_FN_NAME ( frvbf
, nfdsads
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
18928 #define FLD(f) abuf->fields.sfmt_fdmadds.f
18929 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
18930 int UNUSED written
= 0 ;
18931 IADDR UNUSED pc
= abuf
-> addr
;
18932 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
18935 frvbf_set_ne_index ( current_cpu
, FLD ( f_FRk
));
18937 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
)));
18938 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, FLD ( f_FRk
), opval
);
18939 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18941 frvbf_set_ne_index ( current_cpu
, ADDSI ( FLD ( f_FRk
), 1 ));
18943 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 ))));
18944 sim_queue_fn_sf_write ( current_cpu
, frvbf_h_fr_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
18945 TRACE_RESULT ( current_cpu
, abuf
, "fr" , 'f' , opval
);
18953 /* nfdcmps: nfdcmps$pack $FRi,$FRj,$FCCi_2 */
18956 SEM_FN_NAME ( frvbf
, nfdcmps
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
18958 #define FLD(f) abuf->fields.sfmt_nfdcmps.f
18959 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
18960 int UNUSED written
= 0 ;
18961 IADDR UNUSED pc
= abuf
-> addr
;
18962 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
18965 frvbf_set_ne_index ( current_cpu
, FLD ( f_FRk
));
18966 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
)))) {
18969 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), opval
);
18970 written
|= ( 1 << 8 );
18971 TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
18974 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
)))) {
18977 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), opval
);
18978 written
|= ( 1 << 8 );
18979 TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
18982 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
)))) {
18985 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), opval
);
18986 written
|= ( 1 << 8 );
18987 TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
18992 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[ FLD ( f_FCCi_2
)]), opval
);
18993 written
|= ( 1 << 8 );
18994 TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
18999 frvbf_set_ne_index ( current_cpu
, ADDSI ( FLD ( f_FRk
), 1 ));
19000 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 ))))) {
19003 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[(( FLD ( f_FCCi_2
)) + ( 1 ))]), opval
);
19004 written
|= ( 1 << 9 );
19005 TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
19008 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 ))))) {
19011 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[(( FLD ( f_FCCi_2
)) + ( 1 ))]), opval
);
19012 written
|= ( 1 << 9 );
19013 TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
19016 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 ))))) {
19019 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[(( FLD ( f_FCCi_2
)) + ( 1 ))]), opval
);
19020 written
|= ( 1 << 9 );
19021 TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
19026 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[(( FLD ( f_FCCi_2
)) + ( 1 ))]), opval
);
19027 written
|= ( 1 << 9 );
19028 TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
19035 abuf
-> written
= written
;
19040 /* mhsetlos: mhsetlos$pack $u12,$FRklo */
19043 SEM_FN_NAME ( frvbf
, mhsetlos
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
19045 #define FLD(f) abuf->fields.sfmt_mhsetlos.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 UHI opval
= FLD ( f_u12
);
19053 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, FLD ( f_FRk
), opval
);
19054 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
19061 /* mhsethis: mhsethis$pack $u12,$FRkhi */
19064 SEM_FN_NAME ( frvbf
, mhsethis
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
19066 #define FLD(f) abuf->fields.sfmt_mhsethis.f
19067 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
19068 int UNUSED written
= 0 ;
19069 IADDR UNUSED pc
= abuf
-> addr
;
19070 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
19073 UHI opval
= FLD ( f_u12
);
19074 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, FLD ( f_FRk
), opval
);
19075 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
19082 /* mhdsets: mhdsets$pack $u12,$FRintk */
19085 SEM_FN_NAME ( frvbf
, mhdsets
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
19087 #define FLD(f) abuf->fields.sfmt_mhdsets.f
19088 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
19089 int UNUSED written
= 0 ;
19090 IADDR UNUSED pc
= abuf
-> addr
;
19091 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
19095 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRk
)));
19096 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
19097 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
19100 UHI opval
= FLD ( f_u12
);
19101 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
19102 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
19105 UHI opval
= FLD ( f_u12
);
19106 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
19107 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
19115 /* mhsetloh: mhsetloh$pack $s5,$FRklo */
19118 SEM_FN_NAME ( frvbf
, mhsetloh
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
19120 #define FLD(f) abuf->fields.sfmt_mhsetloh.f
19121 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
19122 int UNUSED written
= 0 ;
19123 IADDR UNUSED pc
= abuf
-> addr
;
19124 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
19128 tmp_tmp
= GET_H_FR_LO ( FLD ( f_FRk
));
19129 tmp_tmp
= ANDHI ( tmp_tmp
, 2047 );
19130 tmp_tmp
= ORHI ( tmp_tmp
, SLLSI ( ANDSI ( FLD ( f_s5
), 31 ), 11 ));
19132 UHI opval
= tmp_tmp
;
19133 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, FLD ( f_FRk
), opval
);
19134 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
19142 /* mhsethih: mhsethih$pack $s5,$FRkhi */
19145 SEM_FN_NAME ( frvbf
, mhsethih
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
19147 #define FLD(f) abuf->fields.sfmt_mhsethih.f
19148 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
19149 int UNUSED written
= 0 ;
19150 IADDR UNUSED pc
= abuf
-> addr
;
19151 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
19155 tmp_tmp
= GET_H_FR_HI ( FLD ( f_FRk
));
19156 tmp_tmp
= ANDHI ( tmp_tmp
, 2047 );
19157 tmp_tmp
= ORHI ( tmp_tmp
, SLLSI ( ANDSI ( FLD ( f_s5
), 31 ), 11 ));
19159 UHI opval
= tmp_tmp
;
19160 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, FLD ( f_FRk
), opval
);
19161 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
19169 /* mhdseth: mhdseth$pack $s5,$FRintk */
19172 SEM_FN_NAME ( frvbf
, mhdseth
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
19174 #define FLD(f) abuf->fields.sfmt_mhdseth.f
19175 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
19176 int UNUSED written
= 0 ;
19177 IADDR UNUSED pc
= abuf
-> addr
;
19178 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
19182 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRk
)));
19183 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
19184 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
19188 tmp_tmp
= GET_H_FR_HI ((( FLD ( f_FRk
)) + ( 0 )));
19189 tmp_tmp
= ANDHI ( tmp_tmp
, 2047 );
19190 tmp_tmp
= ORHI ( tmp_tmp
, SLLSI ( ANDSI ( FLD ( f_s5
), 31 ), 11 ));
19192 UHI opval
= tmp_tmp
;
19193 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
19194 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
19199 tmp_tmp
= GET_H_FR_LO ((( FLD ( f_FRk
)) + ( 0 )));
19200 tmp_tmp
= ANDHI ( tmp_tmp
, 2047 );
19201 tmp_tmp
= ORHI ( tmp_tmp
, SLLSI ( ANDSI ( FLD ( f_s5
), 31 ), 11 ));
19203 UHI opval
= tmp_tmp
;
19204 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
19205 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
19214 /* mand: mand$pack $FRinti,$FRintj,$FRintk */
19217 SEM_FN_NAME ( frvbf
, mand
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
19219 #define FLD(f) abuf->fields.sfmt_mwcut.f
19220 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
19221 int UNUSED written
= 0 ;
19222 IADDR UNUSED pc
= abuf
-> addr
;
19223 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
19226 SI opval
= ANDSI ( GET_H_FR_INT ( FLD ( f_FRi
)), GET_H_FR_INT ( FLD ( f_FRj
)));
19227 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
19228 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
19235 /* mor: mor$pack $FRinti,$FRintj,$FRintk */
19238 SEM_FN_NAME ( frvbf
, mor
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
19240 #define FLD(f) abuf->fields.sfmt_mwcut.f
19241 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
19242 int UNUSED written
= 0 ;
19243 IADDR UNUSED pc
= abuf
-> addr
;
19244 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
19247 SI opval
= ORSI ( GET_H_FR_INT ( FLD ( f_FRi
)), GET_H_FR_INT ( FLD ( f_FRj
)));
19248 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
19249 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
19256 /* mxor: mxor$pack $FRinti,$FRintj,$FRintk */
19259 SEM_FN_NAME ( frvbf
, mxor
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
19261 #define FLD(f) abuf->fields.sfmt_mwcut.f
19262 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
19263 int UNUSED written
= 0 ;
19264 IADDR UNUSED pc
= abuf
-> addr
;
19265 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
19268 SI opval
= XORSI ( GET_H_FR_INT ( FLD ( f_FRi
)), GET_H_FR_INT ( FLD ( f_FRj
)));
19269 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
19270 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
19277 /* cmand: cmand$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
19280 SEM_FN_NAME ( frvbf
, cmand
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
19282 #define FLD(f) abuf->fields.sfmt_cmand.f
19283 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
19284 int UNUSED written
= 0 ;
19285 IADDR UNUSED pc
= abuf
-> addr
;
19286 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
19288 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
19290 SI opval
= ANDSI ( GET_H_FR_INT ( FLD ( f_FRi
)), GET_H_FR_INT ( FLD ( f_FRj
)));
19291 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
19292 written
|= ( 1 << 4 );
19293 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
19297 abuf
-> written
= written
;
19302 /* cmor: cmor$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
19305 SEM_FN_NAME ( frvbf
, cmor
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
19307 #define FLD(f) abuf->fields.sfmt_cmand.f
19308 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
19309 int UNUSED written
= 0 ;
19310 IADDR UNUSED pc
= abuf
-> addr
;
19311 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
19313 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
19315 SI opval
= ORSI ( GET_H_FR_INT ( FLD ( f_FRi
)), GET_H_FR_INT ( FLD ( f_FRj
)));
19316 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
19317 written
|= ( 1 << 4 );
19318 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
19322 abuf
-> written
= written
;
19327 /* cmxor: cmxor$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
19330 SEM_FN_NAME ( frvbf
, cmxor
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
19332 #define FLD(f) abuf->fields.sfmt_cmand.f
19333 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
19334 int UNUSED written
= 0 ;
19335 IADDR UNUSED pc
= abuf
-> addr
;
19336 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
19338 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
19340 SI opval
= XORSI ( GET_H_FR_INT ( FLD ( f_FRi
)), GET_H_FR_INT ( FLD ( f_FRj
)));
19341 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
19342 written
|= ( 1 << 4 );
19343 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
19347 abuf
-> written
= written
;
19352 /* mnot: mnot$pack $FRintj,$FRintk */
19355 SEM_FN_NAME ( frvbf
, mnot
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
19357 #define FLD(f) abuf->fields.sfmt_mcut.f
19358 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
19359 int UNUSED written
= 0 ;
19360 IADDR UNUSED pc
= abuf
-> addr
;
19361 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
19364 SI opval
= INVSI ( GET_H_FR_INT ( FLD ( f_FRj
)));
19365 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
19366 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
19373 /* cmnot: cmnot$pack $FRintj,$FRintk,$CCi,$cond */
19376 SEM_FN_NAME ( frvbf
, cmnot
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
19378 #define FLD(f) abuf->fields.sfmt_cmand.f
19379 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
19380 int UNUSED written
= 0 ;
19381 IADDR UNUSED pc
= abuf
-> addr
;
19382 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
19384 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
19386 SI opval
= INVSI ( GET_H_FR_INT ( FLD ( f_FRj
)));
19387 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
19388 written
|= ( 1 << 3 );
19389 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
19393 abuf
-> written
= written
;
19398 /* mrotli: mrotli$pack $FRinti,$u6,$FRintk */
19401 SEM_FN_NAME ( frvbf
, mrotli
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
19403 #define FLD(f) abuf->fields.sfmt_mwcuti.f
19404 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
19405 int UNUSED written
= 0 ;
19406 IADDR UNUSED pc
= abuf
-> addr
;
19407 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
19410 SI opval
= ROLSI ( GET_H_FR_INT ( FLD ( f_FRi
)), ANDSI ( FLD ( f_u6
), 31 ));
19411 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
19412 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
19419 /* mrotri: mrotri$pack $FRinti,$u6,$FRintk */
19422 SEM_FN_NAME ( frvbf
, mrotri
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
19424 #define FLD(f) abuf->fields.sfmt_mwcuti.f
19425 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
19426 int UNUSED written
= 0 ;
19427 IADDR UNUSED pc
= abuf
-> addr
;
19428 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
19431 SI opval
= RORSI ( GET_H_FR_INT ( FLD ( f_FRi
)), ANDSI ( FLD ( f_u6
), 31 ));
19432 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
19433 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
19440 /* mwcut: mwcut$pack $FRinti,$FRintj,$FRintk */
19443 SEM_FN_NAME ( frvbf
, mwcut
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
19445 #define FLD(f) abuf->fields.sfmt_mwcut.f
19446 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
19447 int UNUSED written
= 0 ;
19448 IADDR UNUSED pc
= abuf
-> addr
;
19449 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
19452 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
)));
19453 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
19454 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
19461 /* mwcuti: mwcuti$pack $FRinti,$u6,$FRintk */
19464 SEM_FN_NAME ( frvbf
, mwcuti
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
19466 #define FLD(f) abuf->fields.sfmt_mwcuti.f
19467 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
19468 int UNUSED written
= 0 ;
19469 IADDR UNUSED pc
= abuf
-> addr
;
19470 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
19473 SI opval
= frvbf_cut ( current_cpu
, GET_H_FR_INT ( FLD ( f_FRi
)), GET_H_FR_INT ((( FLD ( f_FRi
)) + ( 1 ))), FLD ( f_u6
));
19474 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
19475 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
19482 /* mcut: mcut$pack $ACC40Si,$FRintj,$FRintk */
19485 SEM_FN_NAME ( frvbf
, mcut
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
19487 #define FLD(f) abuf->fields.sfmt_mcut.f
19488 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
19489 int UNUSED written
= 0 ;
19490 IADDR UNUSED pc
= abuf
-> addr
;
19491 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
19494 SI opval
= frvbf_media_cut ( current_cpu
, GET_H_ACC40S ( FLD ( f_ACC40Si
)), GET_H_FR_INT ( FLD ( f_FRj
)));
19495 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
19496 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
19503 /* mcuti: mcuti$pack $ACC40Si,$s6,$FRintk */
19506 SEM_FN_NAME ( frvbf
, mcuti
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
19508 #define FLD(f) abuf->fields.sfmt_mcuti.f
19509 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
19510 int UNUSED written
= 0 ;
19511 IADDR UNUSED pc
= abuf
-> addr
;
19512 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
19515 SI opval
= frvbf_media_cut ( current_cpu
, GET_H_ACC40S ( FLD ( f_ACC40Si
)), FLD ( f_s6
));
19516 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
19517 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
19524 /* mcutss: mcutss$pack $ACC40Si,$FRintj,$FRintk */
19527 SEM_FN_NAME ( frvbf
, mcutss
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
19529 #define FLD(f) abuf->fields.sfmt_mcut.f
19530 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
19531 int UNUSED written
= 0 ;
19532 IADDR UNUSED pc
= abuf
-> addr
;
19533 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
19536 SI opval
= frvbf_media_cut_ss ( current_cpu
, GET_H_ACC40S ( FLD ( f_ACC40Si
)), GET_H_FR_INT ( FLD ( f_FRj
)));
19537 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
19538 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
19545 /* mcutssi: mcutssi$pack $ACC40Si,$s6,$FRintk */
19548 SEM_FN_NAME ( frvbf
, mcutssi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
19550 #define FLD(f) abuf->fields.sfmt_mcuti.f
19551 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
19552 int UNUSED written
= 0 ;
19553 IADDR UNUSED pc
= abuf
-> addr
;
19554 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
19557 SI opval
= frvbf_media_cut_ss ( current_cpu
, GET_H_ACC40S ( FLD ( f_ACC40Si
)), FLD ( f_s6
));
19558 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
19559 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
19566 /* mdcutssi: mdcutssi$pack $ACC40Si,$s6,$FRintkeven */
19569 SEM_FN_NAME ( frvbf
, mdcutssi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
19571 #define FLD(f) abuf->fields.sfmt_mdcutssi.f
19572 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
19573 int UNUSED written
= 0 ;
19574 IADDR UNUSED pc
= abuf
-> addr
;
19575 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
19577 if ( ANDSI ( FLD ( f_ACC40Si
), SUBSI ( 2 , 1 ))) {
19578 frvbf_media_acc_not_aligned ( current_cpu
);
19580 if ( ANDSI ( FLD ( f_FRk
), SUBSI ( 2 , 1 ))) {
19581 frvbf_media_register_not_aligned ( current_cpu
);
19585 SI opval
= frvbf_media_cut_ss ( current_cpu
, GET_H_ACC40S ( FLD ( f_ACC40Si
)), FLD ( f_s6
));
19586 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
19587 written
|= ( 1 << 5 );
19588 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
19591 USI opval
= frvbf_media_cut_ss ( current_cpu
, GET_H_ACC40S ((( FLD ( f_ACC40Si
)) + ( 1 ))), FLD ( f_s6
));
19592 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
19593 written
|= ( 1 << 6 );
19594 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
19600 abuf
-> written
= written
;
19605 /* maveh: maveh$pack $FRinti,$FRintj,$FRintk */
19608 SEM_FN_NAME ( frvbf
, maveh
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
19610 #define FLD(f) abuf->fields.sfmt_mwcut.f
19611 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
19612 int UNUSED written
= 0 ;
19613 IADDR UNUSED pc
= abuf
-> addr
;
19614 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
19617 SI opval
= frvbf_media_average ( current_cpu
, GET_H_FR_INT ( FLD ( f_FRi
)), GET_H_FR_INT ( FLD ( f_FRj
)));
19618 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
19619 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
19626 /* msllhi: msllhi$pack $FRinti,$u6,$FRintk */
19629 SEM_FN_NAME ( frvbf
, msllhi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
19631 #define FLD(f) abuf->fields.sfmt_msllhi.f
19632 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
19633 int UNUSED written
= 0 ;
19634 IADDR UNUSED pc
= abuf
-> addr
;
19635 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
19639 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRi
)));
19640 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRi
), opval
);
19641 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
19644 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRk
)));
19645 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
19646 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
19649 UHI opval
= SLLHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), ANDSI ( FLD ( f_u6
), 15 ));
19650 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
19651 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
19654 UHI opval
= SLLHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), ANDSI ( FLD ( f_u6
), 15 ));
19655 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
19656 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
19664 /* msrlhi: msrlhi$pack $FRinti,$u6,$FRintk */
19667 SEM_FN_NAME ( frvbf
, msrlhi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
19669 #define FLD(f) abuf->fields.sfmt_msllhi.f
19670 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
19671 int UNUSED written
= 0 ;
19672 IADDR UNUSED pc
= abuf
-> addr
;
19673 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
19677 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRi
)));
19678 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRi
), opval
);
19679 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
19682 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRk
)));
19683 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
19684 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
19687 UHI opval
= SRLHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), ANDSI ( FLD ( f_u6
), 15 ));
19688 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
19689 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
19692 UHI opval
= SRLHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), ANDSI ( FLD ( f_u6
), 15 ));
19693 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
19694 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
19702 /* msrahi: msrahi$pack $FRinti,$u6,$FRintk */
19705 SEM_FN_NAME ( frvbf
, msrahi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
19707 #define FLD(f) abuf->fields.sfmt_msllhi.f
19708 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
19709 int UNUSED written
= 0 ;
19710 IADDR UNUSED pc
= abuf
-> addr
;
19711 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
19715 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRi
)));
19716 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRi
), opval
);
19717 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
19720 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRk
)));
19721 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
19722 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
19725 UHI opval
= SRAHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), ANDSI ( FLD ( f_u6
), 15 ));
19726 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
19727 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
19730 UHI opval
= SRAHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), ANDSI ( FLD ( f_u6
), 15 ));
19731 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
19732 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
19740 /* mdrotli: mdrotli$pack $FRintieven,$s6,$FRintkeven */
19743 SEM_FN_NAME ( frvbf
, mdrotli
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
19745 #define FLD(f) abuf->fields.sfmt_mdrotli.f
19746 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
19747 int UNUSED written
= 0 ;
19748 IADDR UNUSED pc
= abuf
-> addr
;
19749 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
19751 if ( ORIF ( ANDSI ( FLD ( f_FRi
), SUBSI ( 2 , 1 )), ANDSI ( FLD ( f_FRk
), SUBSI ( 2 , 1 )))) {
19752 frvbf_media_register_not_aligned ( current_cpu
);
19756 SI opval
= ROLSI ( GET_H_FR_INT ( FLD ( f_FRi
)), ANDSI ( FLD ( f_s6
), 31 ));
19757 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
19758 written
|= ( 1 << 5 );
19759 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
19762 USI opval
= ROLSI ( GET_H_FR_INT ((( FLD ( f_FRi
)) + ( 1 ))), ANDSI ( FLD ( f_s6
), 31 ));
19763 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
19764 written
|= ( 1 << 6 );
19765 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
19770 abuf
-> written
= written
;
19775 /* mcplhi: mcplhi$pack $FRinti,$u6,$FRintk */
19778 SEM_FN_NAME ( frvbf
, mcplhi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
19780 #define FLD(f) abuf->fields.sfmt_mcplhi.f
19781 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
19782 int UNUSED written
= 0 ;
19783 IADDR UNUSED pc
= abuf
-> addr
;
19784 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
19791 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRi
)));
19792 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRi
), opval
);
19793 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
19796 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRk
)));
19797 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
19798 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
19800 tmp_shift
= ANDSI ( FLD ( f_u6
), 15 );
19801 tmp_arg1
= SLLHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), tmp_shift
);
19802 if ( NEHI ( tmp_shift
, 0 )) {
19804 tmp_arg2
= GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 1 )));
19805 tmp_arg2
= SRLHI ( SLLHI ( tmp_arg2
, SUBSI ( 15 , tmp_shift
)), SUBSI ( 15 , tmp_shift
));
19806 tmp_arg1
= ORHI ( tmp_arg1
, tmp_arg2
);
19810 UHI opval
= tmp_arg1
;
19811 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
19812 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
19820 /* mcpli: mcpli$pack $FRinti,$u6,$FRintk */
19823 SEM_FN_NAME ( frvbf
, mcpli
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
19825 #define FLD(f) abuf->fields.sfmt_mwcuti.f
19826 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
19827 int UNUSED written
= 0 ;
19828 IADDR UNUSED pc
= abuf
-> addr
;
19829 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
19834 tmp_shift
= ANDSI ( FLD ( f_u6
), 31 );
19835 tmp_tmp
= SLLSI ( GET_H_FR_INT ( FLD ( f_FRi
)), tmp_shift
);
19836 if ( NESI ( tmp_shift
, 0 )) {
19839 tmp_tmp1
= SRLSI ( SLLSI ( GET_H_FR_INT ((( FLD ( f_FRi
)) + ( 1 ))), SUBSI ( 31 , tmp_shift
)), SUBSI ( 31 , tmp_shift
));
19840 tmp_tmp
= ORSI ( tmp_tmp
, tmp_tmp1
);
19844 SI opval
= tmp_tmp
;
19845 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
19846 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
19854 /* msaths: msaths$pack $FRinti,$FRintj,$FRintk */
19857 SEM_FN_NAME ( frvbf
, msaths
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
19859 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
19860 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
19861 int UNUSED written
= 0 ;
19862 IADDR UNUSED pc
= abuf
-> addr
;
19863 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
19871 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
19872 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
19873 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
19874 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
19876 if ( GTHI ( tmp_argihi
, tmp_argjhi
)) {
19878 UHI opval
= tmp_argjhi
;
19879 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
19880 written
|= ( 1 << 9 );
19881 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
19884 if ( LTHI ( tmp_argihi
, INVHI ( tmp_argjhi
))) {
19886 UHI opval
= INVHI ( tmp_argjhi
);
19887 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
19888 written
|= ( 1 << 9 );
19889 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
19893 UHI opval
= tmp_argihi
;
19894 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
19895 written
|= ( 1 << 9 );
19896 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
19900 if ( GTHI ( tmp_argilo
, tmp_argjlo
)) {
19902 UHI opval
= tmp_argjlo
;
19903 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
19904 written
|= ( 1 << 10 );
19905 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
19908 if ( LTHI ( tmp_argilo
, INVHI ( tmp_argjlo
))) {
19910 UHI opval
= INVHI ( tmp_argjlo
);
19911 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
19912 written
|= ( 1 << 10 );
19913 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
19917 UHI opval
= tmp_argilo
;
19918 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
19919 written
|= ( 1 << 10 );
19920 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
19926 abuf
-> written
= written
;
19931 /* mqsaths: mqsaths$pack $FRintieven,$FRintjeven,$FRintkeven */
19934 SEM_FN_NAME ( frvbf
, mqsaths
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
19936 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
19937 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
19938 int UNUSED written
= 0 ;
19939 IADDR UNUSED pc
= abuf
-> addr
;
19940 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
19942 if ( ORIF ( ANDSI ( FLD ( f_FRi
), SUBSI ( 2 , 1 )), ORIF ( ANDSI ( FLD ( f_FRj
), SUBSI ( 2 , 1 )), ANDSI ( FLD ( f_FRk
), SUBSI ( 2 , 1 ))))) {
19943 frvbf_media_register_not_aligned ( current_cpu
);
19951 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRk
)));
19952 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
19953 written
|= ( 1 << 14 );
19954 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
19957 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
19958 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
19959 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
19960 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
19962 if ( GTHI ( tmp_argihi
, tmp_argjhi
)) {
19964 UHI opval
= tmp_argjhi
;
19965 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
19966 written
|= ( 1 << 15 );
19967 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
19970 if ( LTHI ( tmp_argihi
, INVHI ( tmp_argjhi
))) {
19972 UHI opval
= INVHI ( tmp_argjhi
);
19973 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
19974 written
|= ( 1 << 15 );
19975 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
19979 UHI opval
= tmp_argihi
;
19980 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
19981 written
|= ( 1 << 15 );
19982 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
19986 if ( GTHI ( tmp_argilo
, tmp_argjlo
)) {
19988 UHI opval
= tmp_argjlo
;
19989 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
19990 written
|= ( 1 << 17 );
19991 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
19994 if ( LTHI ( tmp_argilo
, INVHI ( tmp_argjlo
))) {
19996 UHI opval
= INVHI ( tmp_argjlo
);
19997 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
19998 written
|= ( 1 << 17 );
19999 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
20003 UHI opval
= tmp_argilo
;
20004 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
20005 written
|= ( 1 << 17 );
20006 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
20011 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
20012 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
20013 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
20014 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
20016 if ( GTHI ( tmp_argihi
, tmp_argjhi
)) {
20018 UHI opval
= tmp_argjhi
;
20019 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
20020 written
|= ( 1 << 16 );
20021 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
20024 if ( LTHI ( tmp_argihi
, INVHI ( tmp_argjhi
))) {
20026 UHI opval
= INVHI ( tmp_argjhi
);
20027 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
20028 written
|= ( 1 << 16 );
20029 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
20033 UHI opval
= tmp_argihi
;
20034 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
20035 written
|= ( 1 << 16 );
20036 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
20040 if ( GTHI ( tmp_argilo
, tmp_argjlo
)) {
20042 UHI opval
= tmp_argjlo
;
20043 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
20044 written
|= ( 1 << 18 );
20045 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
20048 if ( LTHI ( tmp_argilo
, INVHI ( tmp_argjlo
))) {
20050 UHI opval
= INVHI ( tmp_argjlo
);
20051 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
20052 written
|= ( 1 << 18 );
20053 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
20057 UHI opval
= tmp_argilo
;
20058 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
20059 written
|= ( 1 << 18 );
20060 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
20067 abuf
-> written
= written
;
20072 /* msathu: msathu$pack $FRinti,$FRintj,$FRintk */
20075 SEM_FN_NAME ( frvbf
, msathu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
20077 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20078 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
20079 int UNUSED written
= 0 ;
20080 IADDR UNUSED pc
= abuf
-> addr
;
20081 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
20089 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
20090 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
20091 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
20092 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
20094 if ( GTUHI ( tmp_argihi
, tmp_argjhi
)) {
20096 UHI opval
= tmp_argjhi
;
20097 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
20098 written
|= ( 1 << 9 );
20099 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
20103 UHI opval
= tmp_argihi
;
20104 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
20105 written
|= ( 1 << 9 );
20106 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
20109 if ( GTUHI ( tmp_argilo
, tmp_argjlo
)) {
20111 UHI opval
= tmp_argjlo
;
20112 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
20113 written
|= ( 1 << 10 );
20114 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
20118 UHI opval
= tmp_argilo
;
20119 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
20120 written
|= ( 1 << 10 );
20121 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
20126 abuf
-> written
= written
;
20131 /* mcmpsh: mcmpsh$pack $FRinti,$FRintj,$FCCk */
20134 SEM_FN_NAME ( frvbf
, mcmpsh
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
20136 #define FLD(f) abuf->fields.sfmt_mcmpsh.f
20137 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
20138 int UNUSED written
= 0 ;
20139 IADDR UNUSED pc
= abuf
-> addr
;
20140 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
20142 if ( ANDSI ( FLD ( f_FCCk
), SUBSI ( 2 , 1 ))) {
20143 frvbf_media_cr_not_aligned ( current_cpu
);
20151 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
20152 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
20153 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
20154 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
20156 if ( GTHI ( tmp_argihi
, tmp_argjhi
)) {
20159 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[ FLD ( f_FCCk
)]), opval
);
20160 written
|= ( 1 << 9 );
20161 TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
20164 if ( EQHI ( tmp_argihi
, tmp_argjhi
)) {
20167 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[ FLD ( f_FCCk
)]), opval
);
20168 written
|= ( 1 << 9 );
20169 TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
20172 if ( LTHI ( tmp_argihi
, tmp_argjhi
)) {
20175 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[ FLD ( f_FCCk
)]), opval
);
20176 written
|= ( 1 << 9 );
20177 TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
20182 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[ FLD ( f_FCCk
)]), opval
);
20183 written
|= ( 1 << 9 );
20184 TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
20189 if ( GTHI ( tmp_argilo
, tmp_argjlo
)) {
20192 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[(( FLD ( f_FCCk
)) + ( 1 ))]), opval
);
20193 written
|= ( 1 << 10 );
20194 TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
20197 if ( EQHI ( tmp_argilo
, tmp_argjlo
)) {
20200 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[(( FLD ( f_FCCk
)) + ( 1 ))]), opval
);
20201 written
|= ( 1 << 10 );
20202 TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
20205 if ( LTHI ( tmp_argilo
, tmp_argjlo
)) {
20208 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[(( FLD ( f_FCCk
)) + ( 1 ))]), opval
);
20209 written
|= ( 1 << 10 );
20210 TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
20215 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[(( FLD ( f_FCCk
)) + ( 1 ))]), opval
);
20216 written
|= ( 1 << 10 );
20217 TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
20225 abuf
-> written
= written
;
20230 /* mcmpuh: mcmpuh$pack $FRinti,$FRintj,$FCCk */
20233 SEM_FN_NAME ( frvbf
, mcmpuh
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
20235 #define FLD(f) abuf->fields.sfmt_mcmpsh.f
20236 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
20237 int UNUSED written
= 0 ;
20238 IADDR UNUSED pc
= abuf
-> addr
;
20239 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
20241 if ( ANDSI ( FLD ( f_FCCk
), SUBSI ( 2 , 1 ))) {
20242 frvbf_media_cr_not_aligned ( current_cpu
);
20250 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
20251 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
20252 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
20253 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
20255 if ( GTUHI ( tmp_argihi
, tmp_argjhi
)) {
20258 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[ FLD ( f_FCCk
)]), opval
);
20259 written
|= ( 1 << 9 );
20260 TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
20263 if ( EQHI ( tmp_argihi
, tmp_argjhi
)) {
20266 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[ FLD ( f_FCCk
)]), opval
);
20267 written
|= ( 1 << 9 );
20268 TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
20271 if ( LTUHI ( tmp_argihi
, tmp_argjhi
)) {
20274 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[ FLD ( f_FCCk
)]), opval
);
20275 written
|= ( 1 << 9 );
20276 TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
20281 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[ FLD ( f_FCCk
)]), opval
);
20282 written
|= ( 1 << 9 );
20283 TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
20288 if ( GTUHI ( tmp_argilo
, tmp_argjlo
)) {
20291 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[(( FLD ( f_FCCk
)) + ( 1 ))]), opval
);
20292 written
|= ( 1 << 10 );
20293 TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
20296 if ( EQHI ( tmp_argilo
, tmp_argjlo
)) {
20299 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[(( FLD ( f_FCCk
)) + ( 1 ))]), opval
);
20300 written
|= ( 1 << 10 );
20301 TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
20304 if ( LTUHI ( tmp_argilo
, tmp_argjlo
)) {
20307 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[(( FLD ( f_FCCk
)) + ( 1 ))]), opval
);
20308 written
|= ( 1 << 10 );
20309 TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
20314 sim_queue_qi_write ( current_cpu
, & CPU ( h_fccr
[(( FLD ( f_FCCk
)) + ( 1 ))]), opval
);
20315 written
|= ( 1 << 10 );
20316 TRACE_RESULT ( current_cpu
, abuf
, "fccr" , 'x' , opval
);
20324 abuf
-> written
= written
;
20329 /* mabshs: mabshs$pack $FRintj,$FRintk */
20332 SEM_FN_NAME ( frvbf
, mabshs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
20334 #define FLD(f) abuf->fields.sfmt_mabshs.f
20335 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
20336 int UNUSED written
= 0 ;
20337 IADDR UNUSED pc
= abuf
-> addr
;
20338 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
20344 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRj
)));
20345 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRj
), opval
);
20346 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
20349 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRk
)));
20350 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
20351 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
20353 tmp_arghi
= GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 )));
20354 tmp_arglo
= GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 )));
20355 if ( GTDI ( ABSHI ( tmp_arghi
), 32767 )) {
20359 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
20360 written
|= ( 1 << 8 );
20361 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
20363 frvbf_media_overflow ( current_cpu
, 8 );
20366 if ( LTDI ( ABSHI ( tmp_arghi
), - 32768 )) {
20369 UHI opval
= - 32768 ;
20370 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
20371 written
|= ( 1 << 8 );
20372 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
20374 frvbf_media_overflow ( current_cpu
, 8 );
20378 UHI opval
= ABSHI ( tmp_arghi
);
20379 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
20380 written
|= ( 1 << 8 );
20381 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
20385 if ( GTDI ( ABSHI ( tmp_arglo
), 32767 )) {
20389 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
20390 written
|= ( 1 << 9 );
20391 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
20393 frvbf_media_overflow ( current_cpu
, 4 );
20396 if ( LTDI ( ABSHI ( tmp_arglo
), - 32768 )) {
20399 UHI opval
= - 32768 ;
20400 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
20401 written
|= ( 1 << 9 );
20402 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
20404 frvbf_media_overflow ( current_cpu
, 4 );
20408 UHI opval
= ABSHI ( tmp_arglo
);
20409 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
20410 written
|= ( 1 << 9 );
20411 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
20417 abuf
-> written
= written
;
20422 /* maddhss: maddhss$pack $FRinti,$FRintj,$FRintk */
20425 SEM_FN_NAME ( frvbf
, maddhss
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
20427 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20428 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
20429 int UNUSED written
= 0 ;
20430 IADDR UNUSED pc
= abuf
-> addr
;
20431 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
20439 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
20440 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
20441 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
20442 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
20446 tmp_tmp
= ADDHI ( tmp_argihi
, tmp_argjhi
);
20447 if ( GTDI ( tmp_tmp
, 32767 )) {
20451 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
20452 written
|= ( 1 << 9 );
20453 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
20455 frvbf_media_overflow ( current_cpu
, 8 );
20458 if ( LTDI ( tmp_tmp
, - 32768 )) {
20461 UHI opval
= - 32768 ;
20462 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
20463 written
|= ( 1 << 9 );
20464 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
20466 frvbf_media_overflow ( current_cpu
, 8 );
20470 UHI opval
= tmp_tmp
;
20471 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
20472 written
|= ( 1 << 9 );
20473 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
20480 tmp_tmp
= ADDHI ( tmp_argilo
, tmp_argjlo
);
20481 if ( GTDI ( tmp_tmp
, 32767 )) {
20485 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
20486 written
|= ( 1 << 10 );
20487 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
20489 frvbf_media_overflow ( current_cpu
, 4 );
20492 if ( LTDI ( tmp_tmp
, - 32768 )) {
20495 UHI opval
= - 32768 ;
20496 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
20497 written
|= ( 1 << 10 );
20498 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
20500 frvbf_media_overflow ( current_cpu
, 4 );
20504 UHI opval
= tmp_tmp
;
20505 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
20506 written
|= ( 1 << 10 );
20507 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
20514 abuf
-> written
= written
;
20519 /* maddhus: maddhus$pack $FRinti,$FRintj,$FRintk */
20522 SEM_FN_NAME ( frvbf
, maddhus
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
20524 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20525 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
20526 int UNUSED written
= 0 ;
20527 IADDR UNUSED pc
= abuf
-> addr
;
20528 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
20536 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
20537 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
20538 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
20539 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
20543 tmp_tmp
= ADDHI ( tmp_argihi
, tmp_argjhi
);
20544 if ( GTDI ( tmp_tmp
, 65535 )) {
20548 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
20549 written
|= ( 1 << 9 );
20550 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
20552 frvbf_media_overflow ( current_cpu
, 8 );
20555 if ( LTDI ( tmp_tmp
, 0 )) {
20559 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
20560 written
|= ( 1 << 9 );
20561 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
20563 frvbf_media_overflow ( current_cpu
, 8 );
20567 UHI opval
= tmp_tmp
;
20568 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
20569 written
|= ( 1 << 9 );
20570 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
20577 tmp_tmp
= ADDHI ( tmp_argilo
, tmp_argjlo
);
20578 if ( GTDI ( tmp_tmp
, 65535 )) {
20582 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
20583 written
|= ( 1 << 10 );
20584 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
20586 frvbf_media_overflow ( current_cpu
, 4 );
20589 if ( LTDI ( tmp_tmp
, 0 )) {
20593 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
20594 written
|= ( 1 << 10 );
20595 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
20597 frvbf_media_overflow ( current_cpu
, 4 );
20601 UHI opval
= tmp_tmp
;
20602 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
20603 written
|= ( 1 << 10 );
20604 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
20611 abuf
-> written
= written
;
20616 /* msubhss: msubhss$pack $FRinti,$FRintj,$FRintk */
20619 SEM_FN_NAME ( frvbf
, msubhss
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
20621 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20622 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
20623 int UNUSED written
= 0 ;
20624 IADDR UNUSED pc
= abuf
-> addr
;
20625 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
20633 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
20634 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
20635 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
20636 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
20640 tmp_tmp
= SUBHI ( tmp_argihi
, tmp_argjhi
);
20641 if ( GTDI ( tmp_tmp
, 32767 )) {
20645 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
20646 written
|= ( 1 << 9 );
20647 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
20649 frvbf_media_overflow ( current_cpu
, 8 );
20652 if ( LTDI ( tmp_tmp
, - 32768 )) {
20655 UHI opval
= - 32768 ;
20656 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
20657 written
|= ( 1 << 9 );
20658 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
20660 frvbf_media_overflow ( current_cpu
, 8 );
20664 UHI opval
= tmp_tmp
;
20665 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
20666 written
|= ( 1 << 9 );
20667 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
20674 tmp_tmp
= SUBHI ( tmp_argilo
, tmp_argjlo
);
20675 if ( GTDI ( tmp_tmp
, 32767 )) {
20679 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
20680 written
|= ( 1 << 10 );
20681 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
20683 frvbf_media_overflow ( current_cpu
, 4 );
20686 if ( LTDI ( tmp_tmp
, - 32768 )) {
20689 UHI opval
= - 32768 ;
20690 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
20691 written
|= ( 1 << 10 );
20692 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
20694 frvbf_media_overflow ( current_cpu
, 4 );
20698 UHI opval
= tmp_tmp
;
20699 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
20700 written
|= ( 1 << 10 );
20701 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
20708 abuf
-> written
= written
;
20713 /* msubhus: msubhus$pack $FRinti,$FRintj,$FRintk */
20716 SEM_FN_NAME ( frvbf
, msubhus
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
20718 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20719 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
20720 int UNUSED written
= 0 ;
20721 IADDR UNUSED pc
= abuf
-> addr
;
20722 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
20730 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
20731 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
20732 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
20733 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
20737 tmp_tmp
= SUBHI ( tmp_argihi
, tmp_argjhi
);
20738 if ( GTDI ( tmp_tmp
, 65535 )) {
20742 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
20743 written
|= ( 1 << 9 );
20744 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
20746 frvbf_media_overflow ( current_cpu
, 8 );
20749 if ( LTDI ( tmp_tmp
, 0 )) {
20753 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
20754 written
|= ( 1 << 9 );
20755 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
20757 frvbf_media_overflow ( current_cpu
, 8 );
20761 UHI opval
= tmp_tmp
;
20762 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
20763 written
|= ( 1 << 9 );
20764 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
20771 tmp_tmp
= SUBHI ( tmp_argilo
, tmp_argjlo
);
20772 if ( GTDI ( tmp_tmp
, 65535 )) {
20776 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
20777 written
|= ( 1 << 10 );
20778 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
20780 frvbf_media_overflow ( current_cpu
, 4 );
20783 if ( LTDI ( tmp_tmp
, 0 )) {
20787 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
20788 written
|= ( 1 << 10 );
20789 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
20791 frvbf_media_overflow ( current_cpu
, 4 );
20795 UHI opval
= tmp_tmp
;
20796 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
20797 written
|= ( 1 << 10 );
20798 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
20805 abuf
-> written
= written
;
20810 /* cmaddhss: cmaddhss$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
20813 SEM_FN_NAME ( frvbf
, cmaddhss
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
20815 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20816 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
20817 int UNUSED written
= 0 ;
20818 IADDR UNUSED pc
= abuf
-> addr
;
20819 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
20821 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
20828 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
20829 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
20830 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
20831 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
20835 tmp_tmp
= ADDHI ( tmp_argihi
, tmp_argjhi
);
20836 if ( GTDI ( tmp_tmp
, 32767 )) {
20840 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
20841 written
|= ( 1 << 11 );
20842 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
20844 frvbf_media_overflow ( current_cpu
, 8 );
20847 if ( LTDI ( tmp_tmp
, - 32768 )) {
20850 UHI opval
= - 32768 ;
20851 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
20852 written
|= ( 1 << 11 );
20853 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
20855 frvbf_media_overflow ( current_cpu
, 8 );
20859 UHI opval
= tmp_tmp
;
20860 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
20861 written
|= ( 1 << 11 );
20862 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
20869 tmp_tmp
= ADDHI ( tmp_argilo
, tmp_argjlo
);
20870 if ( GTDI ( tmp_tmp
, 32767 )) {
20874 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
20875 written
|= ( 1 << 12 );
20876 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
20878 frvbf_media_overflow ( current_cpu
, 4 );
20881 if ( LTDI ( tmp_tmp
, - 32768 )) {
20884 UHI opval
= - 32768 ;
20885 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
20886 written
|= ( 1 << 12 );
20887 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
20889 frvbf_media_overflow ( current_cpu
, 4 );
20893 UHI opval
= tmp_tmp
;
20894 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
20895 written
|= ( 1 << 12 );
20896 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
20904 abuf
-> written
= written
;
20909 /* cmaddhus: cmaddhus$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
20912 SEM_FN_NAME ( frvbf
, cmaddhus
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
20914 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
20915 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
20916 int UNUSED written
= 0 ;
20917 IADDR UNUSED pc
= abuf
-> addr
;
20918 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
20920 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
20927 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
20928 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
20929 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
20930 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
20934 tmp_tmp
= ADDHI ( tmp_argihi
, tmp_argjhi
);
20935 if ( GTDI ( tmp_tmp
, 65535 )) {
20939 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
20940 written
|= ( 1 << 11 );
20941 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
20943 frvbf_media_overflow ( current_cpu
, 8 );
20946 if ( LTDI ( tmp_tmp
, 0 )) {
20950 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
20951 written
|= ( 1 << 11 );
20952 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
20954 frvbf_media_overflow ( current_cpu
, 8 );
20958 UHI opval
= tmp_tmp
;
20959 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
20960 written
|= ( 1 << 11 );
20961 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
20968 tmp_tmp
= ADDHI ( tmp_argilo
, tmp_argjlo
);
20969 if ( GTDI ( tmp_tmp
, 65535 )) {
20973 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
20974 written
|= ( 1 << 12 );
20975 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
20977 frvbf_media_overflow ( current_cpu
, 4 );
20980 if ( LTDI ( tmp_tmp
, 0 )) {
20984 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
20985 written
|= ( 1 << 12 );
20986 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
20988 frvbf_media_overflow ( current_cpu
, 4 );
20992 UHI opval
= tmp_tmp
;
20993 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
20994 written
|= ( 1 << 12 );
20995 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
21003 abuf
-> written
= written
;
21008 /* cmsubhss: cmsubhss$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
21011 SEM_FN_NAME ( frvbf
, cmsubhss
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
21013 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
21014 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
21015 int UNUSED written
= 0 ;
21016 IADDR UNUSED pc
= abuf
-> addr
;
21017 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
21019 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
21026 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
21027 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
21028 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
21029 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
21033 tmp_tmp
= SUBHI ( tmp_argihi
, tmp_argjhi
);
21034 if ( GTDI ( tmp_tmp
, 32767 )) {
21038 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
21039 written
|= ( 1 << 11 );
21040 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
21042 frvbf_media_overflow ( current_cpu
, 8 );
21045 if ( LTDI ( tmp_tmp
, - 32768 )) {
21048 UHI opval
= - 32768 ;
21049 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
21050 written
|= ( 1 << 11 );
21051 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
21053 frvbf_media_overflow ( current_cpu
, 8 );
21057 UHI opval
= tmp_tmp
;
21058 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
21059 written
|= ( 1 << 11 );
21060 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
21067 tmp_tmp
= SUBHI ( tmp_argilo
, tmp_argjlo
);
21068 if ( GTDI ( tmp_tmp
, 32767 )) {
21072 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
21073 written
|= ( 1 << 12 );
21074 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
21076 frvbf_media_overflow ( current_cpu
, 4 );
21079 if ( LTDI ( tmp_tmp
, - 32768 )) {
21082 UHI opval
= - 32768 ;
21083 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
21084 written
|= ( 1 << 12 );
21085 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
21087 frvbf_media_overflow ( current_cpu
, 4 );
21091 UHI opval
= tmp_tmp
;
21092 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
21093 written
|= ( 1 << 12 );
21094 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
21102 abuf
-> written
= written
;
21107 /* cmsubhus: cmsubhus$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
21110 SEM_FN_NAME ( frvbf
, cmsubhus
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
21112 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
21113 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
21114 int UNUSED written
= 0 ;
21115 IADDR UNUSED pc
= abuf
-> addr
;
21116 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
21118 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
21125 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
21126 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
21127 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
21128 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
21132 tmp_tmp
= SUBHI ( tmp_argihi
, tmp_argjhi
);
21133 if ( GTDI ( tmp_tmp
, 65535 )) {
21137 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
21138 written
|= ( 1 << 11 );
21139 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
21141 frvbf_media_overflow ( current_cpu
, 8 );
21144 if ( LTDI ( tmp_tmp
, 0 )) {
21148 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
21149 written
|= ( 1 << 11 );
21150 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
21152 frvbf_media_overflow ( current_cpu
, 8 );
21156 UHI opval
= tmp_tmp
;
21157 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
21158 written
|= ( 1 << 11 );
21159 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
21166 tmp_tmp
= SUBHI ( tmp_argilo
, tmp_argjlo
);
21167 if ( GTDI ( tmp_tmp
, 65535 )) {
21171 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
21172 written
|= ( 1 << 12 );
21173 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
21175 frvbf_media_overflow ( current_cpu
, 4 );
21178 if ( LTDI ( tmp_tmp
, 0 )) {
21182 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
21183 written
|= ( 1 << 12 );
21184 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
21186 frvbf_media_overflow ( current_cpu
, 4 );
21190 UHI opval
= tmp_tmp
;
21191 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
21192 written
|= ( 1 << 12 );
21193 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
21201 abuf
-> written
= written
;
21206 /* mqaddhss: mqaddhss$pack $FRintieven,$FRintjeven,$FRintkeven */
21209 SEM_FN_NAME ( frvbf
, mqaddhss
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
21211 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
21212 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
21213 int UNUSED written
= 0 ;
21214 IADDR UNUSED pc
= abuf
-> addr
;
21215 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
21217 if ( ORIF ( ANDSI ( FLD ( f_FRi
), SUBSI ( 2 , 1 )), ORIF ( ANDSI ( FLD ( f_FRj
), SUBSI ( 2 , 1 )), ANDSI ( FLD ( f_FRk
), SUBSI ( 2 , 1 ))))) {
21218 frvbf_media_register_not_aligned ( current_cpu
);
21226 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRk
)));
21227 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
21228 written
|= ( 1 << 14 );
21229 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
21232 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
21233 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
21234 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
21235 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
21239 tmp_tmp
= ADDHI ( tmp_argihi
, tmp_argjhi
);
21240 if ( GTDI ( tmp_tmp
, 32767 )) {
21244 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
21245 written
|= ( 1 << 15 );
21246 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
21248 frvbf_media_overflow ( current_cpu
, 8 );
21251 if ( LTDI ( tmp_tmp
, - 32768 )) {
21254 UHI opval
= - 32768 ;
21255 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
21256 written
|= ( 1 << 15 );
21257 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
21259 frvbf_media_overflow ( current_cpu
, 8 );
21263 UHI opval
= tmp_tmp
;
21264 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
21265 written
|= ( 1 << 15 );
21266 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
21273 tmp_tmp
= ADDHI ( tmp_argilo
, tmp_argjlo
);
21274 if ( GTDI ( tmp_tmp
, 32767 )) {
21278 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
21279 written
|= ( 1 << 17 );
21280 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
21282 frvbf_media_overflow ( current_cpu
, 4 );
21285 if ( LTDI ( tmp_tmp
, - 32768 )) {
21288 UHI opval
= - 32768 ;
21289 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
21290 written
|= ( 1 << 17 );
21291 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
21293 frvbf_media_overflow ( current_cpu
, 4 );
21297 UHI opval
= tmp_tmp
;
21298 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
21299 written
|= ( 1 << 17 );
21300 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
21306 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
21307 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
21308 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
21309 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
21313 tmp_tmp
= ADDHI ( tmp_argihi
, tmp_argjhi
);
21314 if ( GTDI ( tmp_tmp
, 32767 )) {
21318 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
21319 written
|= ( 1 << 16 );
21320 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
21322 frvbf_media_overflow ( current_cpu
, 2 );
21325 if ( LTDI ( tmp_tmp
, - 32768 )) {
21328 UHI opval
= - 32768 ;
21329 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
21330 written
|= ( 1 << 16 );
21331 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
21333 frvbf_media_overflow ( current_cpu
, 2 );
21337 UHI opval
= tmp_tmp
;
21338 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
21339 written
|= ( 1 << 16 );
21340 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
21347 tmp_tmp
= ADDHI ( tmp_argilo
, tmp_argjlo
);
21348 if ( GTDI ( tmp_tmp
, 32767 )) {
21352 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
21353 written
|= ( 1 << 18 );
21354 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
21356 frvbf_media_overflow ( current_cpu
, 1 );
21359 if ( LTDI ( tmp_tmp
, - 32768 )) {
21362 UHI opval
= - 32768 ;
21363 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
21364 written
|= ( 1 << 18 );
21365 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
21367 frvbf_media_overflow ( current_cpu
, 1 );
21371 UHI opval
= tmp_tmp
;
21372 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
21373 written
|= ( 1 << 18 );
21374 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
21382 abuf
-> written
= written
;
21387 /* mqaddhus: mqaddhus$pack $FRintieven,$FRintjeven,$FRintkeven */
21390 SEM_FN_NAME ( frvbf
, mqaddhus
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
21392 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
21393 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
21394 int UNUSED written
= 0 ;
21395 IADDR UNUSED pc
= abuf
-> addr
;
21396 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
21398 if ( ORIF ( ANDSI ( FLD ( f_FRi
), SUBSI ( 2 , 1 )), ORIF ( ANDSI ( FLD ( f_FRj
), SUBSI ( 2 , 1 )), ANDSI ( FLD ( f_FRk
), SUBSI ( 2 , 1 ))))) {
21399 frvbf_media_register_not_aligned ( current_cpu
);
21407 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRk
)));
21408 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
21409 written
|= ( 1 << 14 );
21410 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
21413 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
21414 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
21415 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
21416 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
21420 tmp_tmp
= ADDHI ( tmp_argihi
, tmp_argjhi
);
21421 if ( GTDI ( tmp_tmp
, 65535 )) {
21425 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
21426 written
|= ( 1 << 15 );
21427 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
21429 frvbf_media_overflow ( current_cpu
, 8 );
21432 if ( LTDI ( tmp_tmp
, 0 )) {
21436 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
21437 written
|= ( 1 << 15 );
21438 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
21440 frvbf_media_overflow ( current_cpu
, 8 );
21444 UHI opval
= tmp_tmp
;
21445 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
21446 written
|= ( 1 << 15 );
21447 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
21454 tmp_tmp
= ADDHI ( tmp_argilo
, tmp_argjlo
);
21455 if ( GTDI ( tmp_tmp
, 65535 )) {
21459 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
21460 written
|= ( 1 << 17 );
21461 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
21463 frvbf_media_overflow ( current_cpu
, 4 );
21466 if ( LTDI ( tmp_tmp
, 0 )) {
21470 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
21471 written
|= ( 1 << 17 );
21472 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
21474 frvbf_media_overflow ( current_cpu
, 4 );
21478 UHI opval
= tmp_tmp
;
21479 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
21480 written
|= ( 1 << 17 );
21481 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
21487 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
21488 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
21489 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
21490 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
21494 tmp_tmp
= ADDHI ( tmp_argihi
, tmp_argjhi
);
21495 if ( GTDI ( tmp_tmp
, 65535 )) {
21499 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
21500 written
|= ( 1 << 16 );
21501 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
21503 frvbf_media_overflow ( current_cpu
, 2 );
21506 if ( LTDI ( tmp_tmp
, 0 )) {
21510 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
21511 written
|= ( 1 << 16 );
21512 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
21514 frvbf_media_overflow ( current_cpu
, 2 );
21518 UHI opval
= tmp_tmp
;
21519 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
21520 written
|= ( 1 << 16 );
21521 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
21528 tmp_tmp
= ADDHI ( tmp_argilo
, tmp_argjlo
);
21529 if ( GTDI ( tmp_tmp
, 65535 )) {
21533 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
21534 written
|= ( 1 << 18 );
21535 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
21537 frvbf_media_overflow ( current_cpu
, 1 );
21540 if ( LTDI ( tmp_tmp
, 0 )) {
21544 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
21545 written
|= ( 1 << 18 );
21546 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
21548 frvbf_media_overflow ( current_cpu
, 1 );
21552 UHI opval
= tmp_tmp
;
21553 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
21554 written
|= ( 1 << 18 );
21555 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
21563 abuf
-> written
= written
;
21568 /* mqsubhss: mqsubhss$pack $FRintieven,$FRintjeven,$FRintkeven */
21571 SEM_FN_NAME ( frvbf
, mqsubhss
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
21573 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
21574 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
21575 int UNUSED written
= 0 ;
21576 IADDR UNUSED pc
= abuf
-> addr
;
21577 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
21579 if ( ORIF ( ANDSI ( FLD ( f_FRi
), SUBSI ( 2 , 1 )), ORIF ( ANDSI ( FLD ( f_FRj
), SUBSI ( 2 , 1 )), ANDSI ( FLD ( f_FRk
), SUBSI ( 2 , 1 ))))) {
21580 frvbf_media_register_not_aligned ( current_cpu
);
21588 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRk
)));
21589 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
21590 written
|= ( 1 << 14 );
21591 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
21594 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
21595 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
21596 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
21597 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
21601 tmp_tmp
= SUBHI ( tmp_argihi
, tmp_argjhi
);
21602 if ( GTDI ( tmp_tmp
, 32767 )) {
21606 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
21607 written
|= ( 1 << 15 );
21608 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
21610 frvbf_media_overflow ( current_cpu
, 8 );
21613 if ( LTDI ( tmp_tmp
, - 32768 )) {
21616 UHI opval
= - 32768 ;
21617 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
21618 written
|= ( 1 << 15 );
21619 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
21621 frvbf_media_overflow ( current_cpu
, 8 );
21625 UHI opval
= tmp_tmp
;
21626 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
21627 written
|= ( 1 << 15 );
21628 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
21635 tmp_tmp
= SUBHI ( tmp_argilo
, tmp_argjlo
);
21636 if ( GTDI ( tmp_tmp
, 32767 )) {
21640 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
21641 written
|= ( 1 << 17 );
21642 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
21644 frvbf_media_overflow ( current_cpu
, 4 );
21647 if ( LTDI ( tmp_tmp
, - 32768 )) {
21650 UHI opval
= - 32768 ;
21651 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
21652 written
|= ( 1 << 17 );
21653 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
21655 frvbf_media_overflow ( current_cpu
, 4 );
21659 UHI opval
= tmp_tmp
;
21660 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
21661 written
|= ( 1 << 17 );
21662 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
21668 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
21669 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
21670 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
21671 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
21675 tmp_tmp
= SUBHI ( tmp_argihi
, tmp_argjhi
);
21676 if ( GTDI ( tmp_tmp
, 32767 )) {
21680 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
21681 written
|= ( 1 << 16 );
21682 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
21684 frvbf_media_overflow ( current_cpu
, 2 );
21687 if ( LTDI ( tmp_tmp
, - 32768 )) {
21690 UHI opval
= - 32768 ;
21691 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
21692 written
|= ( 1 << 16 );
21693 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
21695 frvbf_media_overflow ( current_cpu
, 2 );
21699 UHI opval
= tmp_tmp
;
21700 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
21701 written
|= ( 1 << 16 );
21702 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
21709 tmp_tmp
= SUBHI ( tmp_argilo
, tmp_argjlo
);
21710 if ( GTDI ( tmp_tmp
, 32767 )) {
21714 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
21715 written
|= ( 1 << 18 );
21716 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
21718 frvbf_media_overflow ( current_cpu
, 1 );
21721 if ( LTDI ( tmp_tmp
, - 32768 )) {
21724 UHI opval
= - 32768 ;
21725 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
21726 written
|= ( 1 << 18 );
21727 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
21729 frvbf_media_overflow ( current_cpu
, 1 );
21733 UHI opval
= tmp_tmp
;
21734 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
21735 written
|= ( 1 << 18 );
21736 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
21744 abuf
-> written
= written
;
21749 /* mqsubhus: mqsubhus$pack $FRintieven,$FRintjeven,$FRintkeven */
21752 SEM_FN_NAME ( frvbf
, mqsubhus
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
21754 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
21755 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
21756 int UNUSED written
= 0 ;
21757 IADDR UNUSED pc
= abuf
-> addr
;
21758 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
21760 if ( ORIF ( ANDSI ( FLD ( f_FRi
), SUBSI ( 2 , 1 )), ORIF ( ANDSI ( FLD ( f_FRj
), SUBSI ( 2 , 1 )), ANDSI ( FLD ( f_FRk
), SUBSI ( 2 , 1 ))))) {
21761 frvbf_media_register_not_aligned ( current_cpu
);
21769 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRk
)));
21770 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
21771 written
|= ( 1 << 14 );
21772 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
21775 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
21776 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
21777 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
21778 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
21782 tmp_tmp
= SUBHI ( tmp_argihi
, tmp_argjhi
);
21783 if ( GTDI ( tmp_tmp
, 65535 )) {
21787 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
21788 written
|= ( 1 << 15 );
21789 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
21791 frvbf_media_overflow ( current_cpu
, 8 );
21794 if ( LTDI ( tmp_tmp
, 0 )) {
21798 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
21799 written
|= ( 1 << 15 );
21800 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
21802 frvbf_media_overflow ( current_cpu
, 8 );
21806 UHI opval
= tmp_tmp
;
21807 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
21808 written
|= ( 1 << 15 );
21809 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
21816 tmp_tmp
= SUBHI ( tmp_argilo
, tmp_argjlo
);
21817 if ( GTDI ( tmp_tmp
, 65535 )) {
21821 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
21822 written
|= ( 1 << 17 );
21823 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
21825 frvbf_media_overflow ( current_cpu
, 4 );
21828 if ( LTDI ( tmp_tmp
, 0 )) {
21832 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
21833 written
|= ( 1 << 17 );
21834 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
21836 frvbf_media_overflow ( current_cpu
, 4 );
21840 UHI opval
= tmp_tmp
;
21841 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
21842 written
|= ( 1 << 17 );
21843 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
21849 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
21850 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
21851 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
21852 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
21856 tmp_tmp
= SUBHI ( tmp_argihi
, tmp_argjhi
);
21857 if ( GTDI ( tmp_tmp
, 65535 )) {
21861 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
21862 written
|= ( 1 << 16 );
21863 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
21865 frvbf_media_overflow ( current_cpu
, 2 );
21868 if ( LTDI ( tmp_tmp
, 0 )) {
21872 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
21873 written
|= ( 1 << 16 );
21874 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
21876 frvbf_media_overflow ( current_cpu
, 2 );
21880 UHI opval
= tmp_tmp
;
21881 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
21882 written
|= ( 1 << 16 );
21883 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
21890 tmp_tmp
= SUBHI ( tmp_argilo
, tmp_argjlo
);
21891 if ( GTDI ( tmp_tmp
, 65535 )) {
21895 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
21896 written
|= ( 1 << 18 );
21897 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
21899 frvbf_media_overflow ( current_cpu
, 1 );
21902 if ( LTDI ( tmp_tmp
, 0 )) {
21906 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
21907 written
|= ( 1 << 18 );
21908 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
21910 frvbf_media_overflow ( current_cpu
, 1 );
21914 UHI opval
= tmp_tmp
;
21915 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
21916 written
|= ( 1 << 18 );
21917 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
21925 abuf
-> written
= written
;
21930 /* cmqaddhss: cmqaddhss$pack $FRintieven,$FRintjeven,$FRintkeven,$CCi,$cond */
21933 SEM_FN_NAME ( frvbf
, cmqaddhss
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
21935 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
21936 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
21937 int UNUSED written
= 0 ;
21938 IADDR UNUSED pc
= abuf
-> addr
;
21939 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
21941 if ( ORIF ( ANDSI ( FLD ( f_FRi
), SUBSI ( 2 , 1 )), ORIF ( ANDSI ( FLD ( f_FRj
), SUBSI ( 2 , 1 )), ANDSI ( FLD ( f_FRk
), SUBSI ( 2 , 1 ))))) {
21942 frvbf_media_register_not_aligned ( current_cpu
);
21944 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
21951 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRk
)));
21952 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
21953 written
|= ( 1 << 16 );
21954 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
21957 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
21958 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
21959 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
21960 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
21964 tmp_tmp
= ADDHI ( tmp_argihi
, tmp_argjhi
);
21965 if ( GTDI ( tmp_tmp
, 32767 )) {
21969 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
21970 written
|= ( 1 << 17 );
21971 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
21973 frvbf_media_overflow ( current_cpu
, 8 );
21976 if ( LTDI ( tmp_tmp
, - 32768 )) {
21979 UHI opval
= - 32768 ;
21980 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
21981 written
|= ( 1 << 17 );
21982 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
21984 frvbf_media_overflow ( current_cpu
, 8 );
21988 UHI opval
= tmp_tmp
;
21989 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
21990 written
|= ( 1 << 17 );
21991 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
21998 tmp_tmp
= ADDHI ( tmp_argilo
, tmp_argjlo
);
21999 if ( GTDI ( tmp_tmp
, 32767 )) {
22003 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
22004 written
|= ( 1 << 19 );
22005 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
22007 frvbf_media_overflow ( current_cpu
, 4 );
22010 if ( LTDI ( tmp_tmp
, - 32768 )) {
22013 UHI opval
= - 32768 ;
22014 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
22015 written
|= ( 1 << 19 );
22016 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
22018 frvbf_media_overflow ( current_cpu
, 4 );
22022 UHI opval
= tmp_tmp
;
22023 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
22024 written
|= ( 1 << 19 );
22025 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
22031 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
22032 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
22033 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
22034 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
22038 tmp_tmp
= ADDHI ( tmp_argihi
, tmp_argjhi
);
22039 if ( GTDI ( tmp_tmp
, 32767 )) {
22043 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
22044 written
|= ( 1 << 18 );
22045 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
22047 frvbf_media_overflow ( current_cpu
, 2 );
22050 if ( LTDI ( tmp_tmp
, - 32768 )) {
22053 UHI opval
= - 32768 ;
22054 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
22055 written
|= ( 1 << 18 );
22056 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
22058 frvbf_media_overflow ( current_cpu
, 2 );
22062 UHI opval
= tmp_tmp
;
22063 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
22064 written
|= ( 1 << 18 );
22065 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
22072 tmp_tmp
= ADDHI ( tmp_argilo
, tmp_argjlo
);
22073 if ( GTDI ( tmp_tmp
, 32767 )) {
22077 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
22078 written
|= ( 1 << 20 );
22079 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
22081 frvbf_media_overflow ( current_cpu
, 1 );
22084 if ( LTDI ( tmp_tmp
, - 32768 )) {
22087 UHI opval
= - 32768 ;
22088 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
22089 written
|= ( 1 << 20 );
22090 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
22092 frvbf_media_overflow ( current_cpu
, 1 );
22096 UHI opval
= tmp_tmp
;
22097 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
22098 written
|= ( 1 << 20 );
22099 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
22108 abuf
-> written
= written
;
22113 /* cmqaddhus: cmqaddhus$pack $FRintieven,$FRintjeven,$FRintkeven,$CCi,$cond */
22116 SEM_FN_NAME ( frvbf
, cmqaddhus
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
22118 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
22119 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
22120 int UNUSED written
= 0 ;
22121 IADDR UNUSED pc
= abuf
-> addr
;
22122 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
22124 if ( ORIF ( ANDSI ( FLD ( f_FRi
), SUBSI ( 2 , 1 )), ORIF ( ANDSI ( FLD ( f_FRj
), SUBSI ( 2 , 1 )), ANDSI ( FLD ( f_FRk
), SUBSI ( 2 , 1 ))))) {
22125 frvbf_media_register_not_aligned ( current_cpu
);
22127 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
22134 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRk
)));
22135 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
22136 written
|= ( 1 << 16 );
22137 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
22140 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
22141 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
22142 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
22143 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
22147 tmp_tmp
= ADDHI ( tmp_argihi
, tmp_argjhi
);
22148 if ( GTDI ( tmp_tmp
, 65535 )) {
22152 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
22153 written
|= ( 1 << 17 );
22154 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
22156 frvbf_media_overflow ( current_cpu
, 8 );
22159 if ( LTDI ( tmp_tmp
, 0 )) {
22163 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
22164 written
|= ( 1 << 17 );
22165 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
22167 frvbf_media_overflow ( current_cpu
, 8 );
22171 UHI opval
= tmp_tmp
;
22172 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
22173 written
|= ( 1 << 17 );
22174 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
22181 tmp_tmp
= ADDHI ( tmp_argilo
, tmp_argjlo
);
22182 if ( GTDI ( tmp_tmp
, 65535 )) {
22186 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
22187 written
|= ( 1 << 19 );
22188 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
22190 frvbf_media_overflow ( current_cpu
, 4 );
22193 if ( LTDI ( tmp_tmp
, 0 )) {
22197 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
22198 written
|= ( 1 << 19 );
22199 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
22201 frvbf_media_overflow ( current_cpu
, 4 );
22205 UHI opval
= tmp_tmp
;
22206 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
22207 written
|= ( 1 << 19 );
22208 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
22214 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
22215 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
22216 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
22217 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
22221 tmp_tmp
= ADDHI ( tmp_argihi
, tmp_argjhi
);
22222 if ( GTDI ( tmp_tmp
, 65535 )) {
22226 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
22227 written
|= ( 1 << 18 );
22228 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
22230 frvbf_media_overflow ( current_cpu
, 2 );
22233 if ( LTDI ( tmp_tmp
, 0 )) {
22237 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
22238 written
|= ( 1 << 18 );
22239 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
22241 frvbf_media_overflow ( current_cpu
, 2 );
22245 UHI opval
= tmp_tmp
;
22246 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
22247 written
|= ( 1 << 18 );
22248 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
22255 tmp_tmp
= ADDHI ( tmp_argilo
, tmp_argjlo
);
22256 if ( GTDI ( tmp_tmp
, 65535 )) {
22260 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
22261 written
|= ( 1 << 20 );
22262 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
22264 frvbf_media_overflow ( current_cpu
, 1 );
22267 if ( LTDI ( tmp_tmp
, 0 )) {
22271 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
22272 written
|= ( 1 << 20 );
22273 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
22275 frvbf_media_overflow ( current_cpu
, 1 );
22279 UHI opval
= tmp_tmp
;
22280 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
22281 written
|= ( 1 << 20 );
22282 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
22291 abuf
-> written
= written
;
22296 /* cmqsubhss: cmqsubhss$pack $FRintieven,$FRintjeven,$FRintkeven,$CCi,$cond */
22299 SEM_FN_NAME ( frvbf
, cmqsubhss
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
22301 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
22302 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
22303 int UNUSED written
= 0 ;
22304 IADDR UNUSED pc
= abuf
-> addr
;
22305 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
22307 if ( ORIF ( ANDSI ( FLD ( f_FRi
), SUBSI ( 2 , 1 )), ORIF ( ANDSI ( FLD ( f_FRj
), SUBSI ( 2 , 1 )), ANDSI ( FLD ( f_FRk
), SUBSI ( 2 , 1 ))))) {
22308 frvbf_media_register_not_aligned ( current_cpu
);
22310 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
22317 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRk
)));
22318 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
22319 written
|= ( 1 << 16 );
22320 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
22323 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
22324 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
22325 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
22326 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
22330 tmp_tmp
= SUBHI ( tmp_argihi
, tmp_argjhi
);
22331 if ( GTDI ( tmp_tmp
, 32767 )) {
22335 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
22336 written
|= ( 1 << 17 );
22337 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
22339 frvbf_media_overflow ( current_cpu
, 8 );
22342 if ( LTDI ( tmp_tmp
, - 32768 )) {
22345 UHI opval
= - 32768 ;
22346 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
22347 written
|= ( 1 << 17 );
22348 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
22350 frvbf_media_overflow ( current_cpu
, 8 );
22354 UHI opval
= tmp_tmp
;
22355 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
22356 written
|= ( 1 << 17 );
22357 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
22364 tmp_tmp
= SUBHI ( tmp_argilo
, tmp_argjlo
);
22365 if ( GTDI ( tmp_tmp
, 32767 )) {
22369 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
22370 written
|= ( 1 << 19 );
22371 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
22373 frvbf_media_overflow ( current_cpu
, 4 );
22376 if ( LTDI ( tmp_tmp
, - 32768 )) {
22379 UHI opval
= - 32768 ;
22380 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
22381 written
|= ( 1 << 19 );
22382 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
22384 frvbf_media_overflow ( current_cpu
, 4 );
22388 UHI opval
= tmp_tmp
;
22389 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
22390 written
|= ( 1 << 19 );
22391 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
22397 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
22398 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
22399 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
22400 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
22404 tmp_tmp
= SUBHI ( tmp_argihi
, tmp_argjhi
);
22405 if ( GTDI ( tmp_tmp
, 32767 )) {
22409 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
22410 written
|= ( 1 << 18 );
22411 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
22413 frvbf_media_overflow ( current_cpu
, 2 );
22416 if ( LTDI ( tmp_tmp
, - 32768 )) {
22419 UHI opval
= - 32768 ;
22420 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
22421 written
|= ( 1 << 18 );
22422 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
22424 frvbf_media_overflow ( current_cpu
, 2 );
22428 UHI opval
= tmp_tmp
;
22429 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
22430 written
|= ( 1 << 18 );
22431 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
22438 tmp_tmp
= SUBHI ( tmp_argilo
, tmp_argjlo
);
22439 if ( GTDI ( tmp_tmp
, 32767 )) {
22443 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
22444 written
|= ( 1 << 20 );
22445 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
22447 frvbf_media_overflow ( current_cpu
, 1 );
22450 if ( LTDI ( tmp_tmp
, - 32768 )) {
22453 UHI opval
= - 32768 ;
22454 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
22455 written
|= ( 1 << 20 );
22456 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
22458 frvbf_media_overflow ( current_cpu
, 1 );
22462 UHI opval
= tmp_tmp
;
22463 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
22464 written
|= ( 1 << 20 );
22465 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
22474 abuf
-> written
= written
;
22479 /* cmqsubhus: cmqsubhus$pack $FRintieven,$FRintjeven,$FRintkeven,$CCi,$cond */
22482 SEM_FN_NAME ( frvbf
, cmqsubhus
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
22484 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
22485 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
22486 int UNUSED written
= 0 ;
22487 IADDR UNUSED pc
= abuf
-> addr
;
22488 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
22490 if ( ORIF ( ANDSI ( FLD ( f_FRi
), SUBSI ( 2 , 1 )), ORIF ( ANDSI ( FLD ( f_FRj
), SUBSI ( 2 , 1 )), ANDSI ( FLD ( f_FRk
), SUBSI ( 2 , 1 ))))) {
22491 frvbf_media_register_not_aligned ( current_cpu
);
22493 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
22500 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRk
)));
22501 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
22502 written
|= ( 1 << 16 );
22503 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
22506 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
22507 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
22508 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
22509 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
22513 tmp_tmp
= SUBHI ( tmp_argihi
, tmp_argjhi
);
22514 if ( GTDI ( tmp_tmp
, 65535 )) {
22518 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
22519 written
|= ( 1 << 17 );
22520 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
22522 frvbf_media_overflow ( current_cpu
, 8 );
22525 if ( LTDI ( tmp_tmp
, 0 )) {
22529 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
22530 written
|= ( 1 << 17 );
22531 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
22533 frvbf_media_overflow ( current_cpu
, 8 );
22537 UHI opval
= tmp_tmp
;
22538 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
22539 written
|= ( 1 << 17 );
22540 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
22547 tmp_tmp
= SUBHI ( tmp_argilo
, tmp_argjlo
);
22548 if ( GTDI ( tmp_tmp
, 65535 )) {
22552 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
22553 written
|= ( 1 << 19 );
22554 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
22556 frvbf_media_overflow ( current_cpu
, 4 );
22559 if ( LTDI ( tmp_tmp
, 0 )) {
22563 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
22564 written
|= ( 1 << 19 );
22565 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
22567 frvbf_media_overflow ( current_cpu
, 4 );
22571 UHI opval
= tmp_tmp
;
22572 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
22573 written
|= ( 1 << 19 );
22574 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
22580 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
22581 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
22582 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
22583 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
22587 tmp_tmp
= SUBHI ( tmp_argihi
, tmp_argjhi
);
22588 if ( GTDI ( tmp_tmp
, 65535 )) {
22592 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
22593 written
|= ( 1 << 18 );
22594 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
22596 frvbf_media_overflow ( current_cpu
, 2 );
22599 if ( LTDI ( tmp_tmp
, 0 )) {
22603 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
22604 written
|= ( 1 << 18 );
22605 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
22607 frvbf_media_overflow ( current_cpu
, 2 );
22611 UHI opval
= tmp_tmp
;
22612 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
22613 written
|= ( 1 << 18 );
22614 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
22621 tmp_tmp
= SUBHI ( tmp_argilo
, tmp_argjlo
);
22622 if ( GTDI ( tmp_tmp
, 65535 )) {
22626 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
22627 written
|= ( 1 << 20 );
22628 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
22630 frvbf_media_overflow ( current_cpu
, 1 );
22633 if ( LTDI ( tmp_tmp
, 0 )) {
22637 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
22638 written
|= ( 1 << 20 );
22639 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
22641 frvbf_media_overflow ( current_cpu
, 1 );
22645 UHI opval
= tmp_tmp
;
22646 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
22647 written
|= ( 1 << 20 );
22648 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
22657 abuf
-> written
= written
;
22662 /* mqlclrhs: mqlclrhs$pack $FRintieven,$FRintjeven,$FRintkeven */
22665 SEM_FN_NAME ( frvbf
, mqlclrhs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
22667 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
22668 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
22669 int UNUSED written
= 0 ;
22670 IADDR UNUSED pc
= abuf
-> addr
;
22671 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
22673 if ( ORIF ( ANDSI ( FLD ( f_FRi
), SUBSI ( 2 , 1 )), ORIF ( ANDSI ( FLD ( f_FRj
), SUBSI ( 2 , 1 )), ANDSI ( FLD ( f_FRk
), SUBSI ( 2 , 1 ))))) {
22674 frvbf_media_register_not_aligned ( current_cpu
);
22686 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRk
)));
22687 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
22688 written
|= ( 1 << 14 );
22689 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
22692 tmp_a1
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
22693 tmp_a2
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
22694 tmp_b1
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
22695 tmp_b2
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
22698 tmp_a3
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
22699 tmp_a4
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
22700 tmp_b3
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
22701 tmp_b4
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
22704 UHI opval
= ( LEUHI ( ABSHI ( tmp_a1
), ABSHI ( tmp_b1
))) ? ( 0 ) : ( LEHI ( 0 , tmp_b1
)) ? ( tmp_a1
) : ( EQHI ( tmp_a1
, - 32768 )) ? ( 32767 ) : ( NEGHI ( tmp_a1
));
22705 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
22706 written
|= ( 1 << 15 );
22707 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
22710 UHI opval
= ( LEUHI ( ABSHI ( tmp_a2
), ABSHI ( tmp_b2
))) ? ( 0 ) : ( LEHI ( 0 , tmp_b2
)) ? ( tmp_a2
) : ( EQHI ( tmp_a2
, - 32768 )) ? ( 32767 ) : ( NEGHI ( tmp_a2
));
22711 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
22712 written
|= ( 1 << 17 );
22713 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
22716 UHI opval
= ( LEUHI ( ABSHI ( tmp_a3
), ABSHI ( tmp_b3
))) ? ( 0 ) : ( LEHI ( 0 , tmp_b3
)) ? ( tmp_a3
) : ( EQHI ( tmp_a3
, - 32768 )) ? ( 32767 ) : ( NEGHI ( tmp_a3
));
22717 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
22718 written
|= ( 1 << 16 );
22719 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
22722 UHI opval
= ( LEUHI ( ABSHI ( tmp_a4
), ABSHI ( tmp_b4
))) ? ( 0 ) : ( LEHI ( 0 , tmp_b4
)) ? ( tmp_a4
) : ( EQHI ( tmp_a4
, - 32768 )) ? ( 32767 ) : ( NEGHI ( tmp_a4
));
22723 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
22724 written
|= ( 1 << 18 );
22725 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
22730 abuf
-> written
= written
;
22735 /* mqlmths: mqlmths$pack $FRintieven,$FRintjeven,$FRintkeven */
22738 SEM_FN_NAME ( frvbf
, mqlmths
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
22740 #define FLD(f) abuf->fields.sfmt_cmqaddhss.f
22741 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
22742 int UNUSED written
= 0 ;
22743 IADDR UNUSED pc
= abuf
-> addr
;
22744 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
22746 if ( ORIF ( ANDSI ( FLD ( f_FRi
), SUBSI ( 2 , 1 )), ORIF ( ANDSI ( FLD ( f_FRj
), SUBSI ( 2 , 1 )), ANDSI ( FLD ( f_FRk
), SUBSI ( 2 , 1 ))))) {
22747 frvbf_media_register_not_aligned ( current_cpu
);
22759 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRk
)));
22760 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
22761 written
|= ( 1 << 14 );
22762 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
22765 tmp_a1
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
22766 tmp_a2
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
22767 tmp_b1
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
22768 tmp_b2
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
22771 tmp_a3
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
22772 tmp_a4
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
22773 tmp_b3
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
22774 tmp_b4
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
22777 UHI opval
= ( ANDIF ( GTHI ( tmp_b1
, - 32768 ), GEHI ( tmp_a1
, ABSHI ( tmp_b1
)))) ? ( tmp_b1
) : ( GTHI ( tmp_a1
, NEGHI ( ABSHI ( tmp_b1
)))) ? ( tmp_a1
) : ( EQHI ( tmp_b1
, - 32768 )) ? ( 32767 ) : ( NEGHI ( tmp_b1
));
22778 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
22779 written
|= ( 1 << 15 );
22780 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
22783 UHI opval
= ( ANDIF ( GTHI ( tmp_b2
, - 32768 ), GEHI ( tmp_a2
, ABSHI ( tmp_b2
)))) ? ( tmp_b2
) : ( GTHI ( tmp_a2
, NEGHI ( ABSHI ( tmp_b2
)))) ? ( tmp_a2
) : ( EQHI ( tmp_b2
, - 32768 )) ? ( 32767 ) : ( NEGHI ( tmp_b2
));
22784 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
22785 written
|= ( 1 << 17 );
22786 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
22789 UHI opval
= ( ANDIF ( GTHI ( tmp_b3
, - 32768 ), GEHI ( tmp_a3
, ABSHI ( tmp_b3
)))) ? ( tmp_b3
) : ( GTHI ( tmp_a3
, NEGHI ( ABSHI ( tmp_b3
)))) ? ( tmp_a3
) : ( EQHI ( tmp_b3
, - 32768 )) ? ( 32767 ) : ( NEGHI ( tmp_b3
));
22790 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
22791 written
|= ( 1 << 16 );
22792 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
22795 UHI opval
= ( ANDIF ( GTHI ( tmp_b4
, - 32768 ), GEHI ( tmp_a4
, ABSHI ( tmp_b4
)))) ? ( tmp_b4
) : ( GTHI ( tmp_a4
, NEGHI ( ABSHI ( tmp_b4
)))) ? ( tmp_a4
) : ( EQHI ( tmp_b4
, - 32768 )) ? ( 32767 ) : ( NEGHI ( tmp_b4
));
22796 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
22797 written
|= ( 1 << 18 );
22798 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
22803 abuf
-> written
= written
;
22808 /* mqsllhi: mqsllhi$pack $FRintieven,$u6,$FRintkeven */
22811 SEM_FN_NAME ( frvbf
, mqsllhi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
22813 #define FLD(f) abuf->fields.sfmt_mqsllhi.f
22814 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
22815 int UNUSED written
= 0 ;
22816 IADDR UNUSED pc
= abuf
-> addr
;
22817 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
22819 if ( ORIF ( ANDSI ( FLD ( f_FRi
), SUBSI ( 2 , 1 )), ANDSI ( FLD ( f_FRk
), SUBSI ( 2 , 1 )))) {
22820 frvbf_media_register_not_aligned ( current_cpu
);
22824 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRi
)));
22825 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRi
), opval
);
22826 written
|= ( 1 << 9 );
22827 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
22830 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRk
)));
22831 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
22832 written
|= ( 1 << 10 );
22833 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
22836 UHI opval
= SLLHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), ANDSI ( FLD ( f_u6
), 15 ));
22837 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
22838 written
|= ( 1 << 11 );
22839 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
22842 UHI opval
= SLLHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), ANDSI ( FLD ( f_u6
), 15 ));
22843 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
22844 written
|= ( 1 << 13 );
22845 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
22848 UHI opval
= SLLHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 1 ))), ANDSI ( FLD ( f_u6
), 15 ));
22849 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
22850 written
|= ( 1 << 12 );
22851 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
22854 UHI opval
= SLLHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 1 ))), ANDSI ( FLD ( f_u6
), 15 ));
22855 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
22856 written
|= ( 1 << 14 );
22857 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
22862 abuf
-> written
= written
;
22867 /* mqsrahi: mqsrahi$pack $FRintieven,$u6,$FRintkeven */
22870 SEM_FN_NAME ( frvbf
, mqsrahi
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
22872 #define FLD(f) abuf->fields.sfmt_mqsllhi.f
22873 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
22874 int UNUSED written
= 0 ;
22875 IADDR UNUSED pc
= abuf
-> addr
;
22876 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
22878 if ( ORIF ( ANDSI ( FLD ( f_FRi
), SUBSI ( 2 , 1 )), ANDSI ( FLD ( f_FRk
), SUBSI ( 2 , 1 )))) {
22879 frvbf_media_register_not_aligned ( current_cpu
);
22883 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRi
)));
22884 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRi
), opval
);
22885 written
|= ( 1 << 9 );
22886 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
22889 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRk
)));
22890 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
22891 written
|= ( 1 << 10 );
22892 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
22895 UHI opval
= SRAHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), ANDSI ( FLD ( f_u6
), 15 ));
22896 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
22897 written
|= ( 1 << 11 );
22898 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
22901 UHI opval
= SRAHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), ANDSI ( FLD ( f_u6
), 15 ));
22902 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
22903 written
|= ( 1 << 13 );
22904 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
22907 UHI opval
= SRAHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 1 ))), ANDSI ( FLD ( f_u6
), 15 ));
22908 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
22909 written
|= ( 1 << 12 );
22910 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
22913 UHI opval
= SRAHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 1 ))), ANDSI ( FLD ( f_u6
), 15 ));
22914 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
22915 written
|= ( 1 << 14 );
22916 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
22921 abuf
-> written
= written
;
22926 /* maddaccs: maddaccs$pack $ACC40Si,$ACC40Sk */
22929 SEM_FN_NAME ( frvbf
, maddaccs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
22931 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
22932 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
22933 int UNUSED written
= 0 ;
22934 IADDR UNUSED pc
= abuf
-> addr
;
22935 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
22937 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Si
))) {
22938 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Sk
))) {
22939 if ( ANDSI ( FLD ( f_ACC40Si
), SUBSI ( 2 , 1 ))) {
22940 frvbf_media_acc_not_aligned ( current_cpu
);
22944 tmp_tmp
= ADDDI ( GET_H_ACC40S ( FLD ( f_ACC40Si
)), GET_H_ACC40S ((( FLD ( f_ACC40Si
)) + ( 1 ))));
22945 if ( GTDI ( tmp_tmp
, 549755813887 )) {
22948 DI opval
= 549755813887 ;
22949 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
22950 written
|= ( 1 << 4 );
22951 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
22953 frvbf_media_overflow ( current_cpu
, 8 );
22956 if ( LTDI ( tmp_tmp
, INVDI ( 549755813887 ))) {
22959 DI opval
= INVDI ( 549755813887 );
22960 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
22961 written
|= ( 1 << 4 );
22962 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
22964 frvbf_media_overflow ( current_cpu
, 8 );
22968 DI opval
= tmp_tmp
;
22969 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
22970 written
|= ( 1 << 4 );
22971 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
22980 abuf
-> written
= written
;
22985 /* msubaccs: msubaccs$pack $ACC40Si,$ACC40Sk */
22988 SEM_FN_NAME ( frvbf
, msubaccs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
22990 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
22991 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
22992 int UNUSED written
= 0 ;
22993 IADDR UNUSED pc
= abuf
-> addr
;
22994 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
22996 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Si
))) {
22997 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Sk
))) {
22998 if ( ANDSI ( FLD ( f_ACC40Si
), SUBSI ( 2 , 1 ))) {
22999 frvbf_media_acc_not_aligned ( current_cpu
);
23003 tmp_tmp
= SUBDI ( GET_H_ACC40S ( FLD ( f_ACC40Si
)), GET_H_ACC40S ((( FLD ( f_ACC40Si
)) + ( 1 ))));
23004 if ( GTDI ( tmp_tmp
, 549755813887 )) {
23007 DI opval
= 549755813887 ;
23008 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
23009 written
|= ( 1 << 4 );
23010 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23012 frvbf_media_overflow ( current_cpu
, 8 );
23015 if ( LTDI ( tmp_tmp
, INVDI ( 549755813887 ))) {
23018 DI opval
= INVDI ( 549755813887 );
23019 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
23020 written
|= ( 1 << 4 );
23021 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23023 frvbf_media_overflow ( current_cpu
, 8 );
23027 DI opval
= tmp_tmp
;
23028 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
23029 written
|= ( 1 << 4 );
23030 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23039 abuf
-> written
= written
;
23044 /* mdaddaccs: mdaddaccs$pack $ACC40Si,$ACC40Sk */
23047 SEM_FN_NAME ( frvbf
, mdaddaccs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
23049 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
23050 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
23051 int UNUSED written
= 0 ;
23052 IADDR UNUSED pc
= abuf
-> addr
;
23053 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
23055 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Si
))) {
23056 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Sk
))) {
23057 if ( ANDSI ( FLD ( f_ACC40Si
), SUBSI ( 4 , 1 ))) {
23058 frvbf_media_acc_not_aligned ( current_cpu
);
23060 if ( ANDSI ( FLD ( f_ACC40Sk
), SUBSI ( 2 , 1 ))) {
23061 frvbf_media_acc_not_aligned ( current_cpu
);
23066 tmp_tmp
= ADDDI ( GET_H_ACC40S ( FLD ( f_ACC40Si
)), GET_H_ACC40S ((( FLD ( f_ACC40Si
)) + ( 1 ))));
23067 if ( GTDI ( tmp_tmp
, 549755813887 )) {
23070 DI opval
= 549755813887 ;
23071 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
23072 written
|= ( 1 << 6 );
23073 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23075 frvbf_media_overflow ( current_cpu
, 8 );
23078 if ( LTDI ( tmp_tmp
, INVDI ( 549755813887 ))) {
23081 DI opval
= INVDI ( 549755813887 );
23082 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
23083 written
|= ( 1 << 6 );
23084 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23086 frvbf_media_overflow ( current_cpu
, 8 );
23090 DI opval
= tmp_tmp
;
23091 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
23092 written
|= ( 1 << 6 );
23093 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23100 tmp_tmp
= ADDDI ( GET_H_ACC40S ((( FLD ( f_ACC40Si
)) + ( 2 ))), GET_H_ACC40S ((( FLD ( f_ACC40Si
)) + ( 3 ))));
23101 if ( GTDI ( tmp_tmp
, 549755813887 )) {
23104 DI opval
= 549755813887 ;
23105 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 1 )), opval
);
23106 written
|= ( 1 << 7 );
23107 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23109 frvbf_media_overflow ( current_cpu
, 4 );
23112 if ( LTDI ( tmp_tmp
, INVDI ( 549755813887 ))) {
23115 DI opval
= INVDI ( 549755813887 );
23116 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 1 )), opval
);
23117 written
|= ( 1 << 7 );
23118 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23120 frvbf_media_overflow ( current_cpu
, 4 );
23124 DI opval
= tmp_tmp
;
23125 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 1 )), opval
);
23126 written
|= ( 1 << 7 );
23127 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23138 abuf
-> written
= written
;
23143 /* mdsubaccs: mdsubaccs$pack $ACC40Si,$ACC40Sk */
23146 SEM_FN_NAME ( frvbf
, mdsubaccs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
23148 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
23149 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
23150 int UNUSED written
= 0 ;
23151 IADDR UNUSED pc
= abuf
-> addr
;
23152 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
23154 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Si
))) {
23155 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Sk
))) {
23156 if ( ANDSI ( FLD ( f_ACC40Si
), SUBSI ( 4 , 1 ))) {
23157 frvbf_media_acc_not_aligned ( current_cpu
);
23159 if ( ANDSI ( FLD ( f_ACC40Sk
), SUBSI ( 2 , 1 ))) {
23160 frvbf_media_acc_not_aligned ( current_cpu
);
23165 tmp_tmp
= SUBDI ( GET_H_ACC40S ( FLD ( f_ACC40Si
)), GET_H_ACC40S ((( FLD ( f_ACC40Si
)) + ( 1 ))));
23166 if ( GTDI ( tmp_tmp
, 549755813887 )) {
23169 DI opval
= 549755813887 ;
23170 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
23171 written
|= ( 1 << 6 );
23172 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23174 frvbf_media_overflow ( current_cpu
, 8 );
23177 if ( LTDI ( tmp_tmp
, INVDI ( 549755813887 ))) {
23180 DI opval
= INVDI ( 549755813887 );
23181 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
23182 written
|= ( 1 << 6 );
23183 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23185 frvbf_media_overflow ( current_cpu
, 8 );
23189 DI opval
= tmp_tmp
;
23190 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
23191 written
|= ( 1 << 6 );
23192 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23199 tmp_tmp
= SUBDI ( GET_H_ACC40S ((( FLD ( f_ACC40Si
)) + ( 2 ))), GET_H_ACC40S ((( FLD ( f_ACC40Si
)) + ( 3 ))));
23200 if ( GTDI ( tmp_tmp
, 549755813887 )) {
23203 DI opval
= 549755813887 ;
23204 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 1 )), opval
);
23205 written
|= ( 1 << 7 );
23206 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23208 frvbf_media_overflow ( current_cpu
, 4 );
23211 if ( LTDI ( tmp_tmp
, INVDI ( 549755813887 ))) {
23214 DI opval
= INVDI ( 549755813887 );
23215 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 1 )), opval
);
23216 written
|= ( 1 << 7 );
23217 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23219 frvbf_media_overflow ( current_cpu
, 4 );
23223 DI opval
= tmp_tmp
;
23224 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 1 )), opval
);
23225 written
|= ( 1 << 7 );
23226 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23237 abuf
-> written
= written
;
23242 /* masaccs: masaccs$pack $ACC40Si,$ACC40Sk */
23245 SEM_FN_NAME ( frvbf
, masaccs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
23247 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
23248 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
23249 int UNUSED written
= 0 ;
23250 IADDR UNUSED pc
= abuf
-> addr
;
23251 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
23253 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Si
))) {
23254 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Sk
))) {
23255 if ( ANDSI ( FLD ( f_ACC40Si
), SUBSI ( 2 , 1 ))) {
23256 frvbf_media_acc_not_aligned ( current_cpu
);
23258 if ( ANDSI ( FLD ( f_ACC40Sk
), SUBSI ( 2 , 1 ))) {
23259 frvbf_media_acc_not_aligned ( current_cpu
);
23264 tmp_tmp
= ADDDI ( GET_H_ACC40S ( FLD ( f_ACC40Si
)), GET_H_ACC40S ((( FLD ( f_ACC40Si
)) + ( 1 ))));
23265 if ( GTDI ( tmp_tmp
, 549755813887 )) {
23268 DI opval
= 549755813887 ;
23269 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
23270 written
|= ( 1 << 4 );
23271 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23273 frvbf_media_overflow ( current_cpu
, 8 );
23276 if ( LTDI ( tmp_tmp
, INVDI ( 549755813887 ))) {
23279 DI opval
= INVDI ( 549755813887 );
23280 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
23281 written
|= ( 1 << 4 );
23282 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23284 frvbf_media_overflow ( current_cpu
, 8 );
23288 DI opval
= tmp_tmp
;
23289 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
23290 written
|= ( 1 << 4 );
23291 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23298 tmp_tmp
= SUBDI ( GET_H_ACC40S ( FLD ( f_ACC40Si
)), GET_H_ACC40S ((( FLD ( f_ACC40Si
)) + ( 1 ))));
23299 if ( GTDI ( tmp_tmp
, 549755813887 )) {
23302 DI opval
= 549755813887 ;
23303 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 1 )), opval
);
23304 written
|= ( 1 << 5 );
23305 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23307 frvbf_media_overflow ( current_cpu
, 4 );
23310 if ( LTDI ( tmp_tmp
, INVDI ( 549755813887 ))) {
23313 DI opval
= INVDI ( 549755813887 );
23314 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 1 )), opval
);
23315 written
|= ( 1 << 5 );
23316 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23318 frvbf_media_overflow ( current_cpu
, 4 );
23322 DI opval
= tmp_tmp
;
23323 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 1 )), opval
);
23324 written
|= ( 1 << 5 );
23325 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23336 abuf
-> written
= written
;
23341 /* mdasaccs: mdasaccs$pack $ACC40Si,$ACC40Sk */
23344 SEM_FN_NAME ( frvbf
, mdasaccs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
23346 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
23347 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
23348 int UNUSED written
= 0 ;
23349 IADDR UNUSED pc
= abuf
-> addr
;
23350 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
23352 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Si
))) {
23353 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Sk
))) {
23354 if ( ANDSI ( FLD ( f_ACC40Si
), SUBSI ( 4 , 1 ))) {
23355 frvbf_media_acc_not_aligned ( current_cpu
);
23357 if ( ANDSI ( FLD ( f_ACC40Sk
), SUBSI ( 4 , 1 ))) {
23358 frvbf_media_acc_not_aligned ( current_cpu
);
23363 tmp_tmp
= ADDDI ( GET_H_ACC40S ( FLD ( f_ACC40Si
)), GET_H_ACC40S ((( FLD ( f_ACC40Si
)) + ( 1 ))));
23364 if ( GTDI ( tmp_tmp
, 549755813887 )) {
23367 DI opval
= 549755813887 ;
23368 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
23369 written
|= ( 1 << 6 );
23370 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23372 frvbf_media_overflow ( current_cpu
, 8 );
23375 if ( LTDI ( tmp_tmp
, INVDI ( 549755813887 ))) {
23378 DI opval
= INVDI ( 549755813887 );
23379 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
23380 written
|= ( 1 << 6 );
23381 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23383 frvbf_media_overflow ( current_cpu
, 8 );
23387 DI opval
= tmp_tmp
;
23388 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
23389 written
|= ( 1 << 6 );
23390 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23397 tmp_tmp
= SUBDI ( GET_H_ACC40S ( FLD ( f_ACC40Si
)), GET_H_ACC40S ((( FLD ( f_ACC40Si
)) + ( 1 ))));
23398 if ( GTDI ( tmp_tmp
, 549755813887 )) {
23401 DI opval
= 549755813887 ;
23402 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 1 )), opval
);
23403 written
|= ( 1 << 7 );
23404 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23406 frvbf_media_overflow ( current_cpu
, 4 );
23409 if ( LTDI ( tmp_tmp
, INVDI ( 549755813887 ))) {
23412 DI opval
= INVDI ( 549755813887 );
23413 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 1 )), opval
);
23414 written
|= ( 1 << 7 );
23415 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23417 frvbf_media_overflow ( current_cpu
, 4 );
23421 DI opval
= tmp_tmp
;
23422 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 1 )), opval
);
23423 written
|= ( 1 << 7 );
23424 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23431 tmp_tmp
= ADDDI ( GET_H_ACC40S ((( FLD ( f_ACC40Si
)) + ( 2 ))), GET_H_ACC40S ((( FLD ( f_ACC40Si
)) + ( 3 ))));
23432 if ( GTDI ( tmp_tmp
, 549755813887 )) {
23435 DI opval
= 549755813887 ;
23436 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 2 )), opval
);
23437 written
|= ( 1 << 8 );
23438 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23440 frvbf_media_overflow ( current_cpu
, 2 );
23443 if ( LTDI ( tmp_tmp
, INVDI ( 549755813887 ))) {
23446 DI opval
= INVDI ( 549755813887 );
23447 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 2 )), opval
);
23448 written
|= ( 1 << 8 );
23449 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23451 frvbf_media_overflow ( current_cpu
, 2 );
23455 DI opval
= tmp_tmp
;
23456 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 2 )), opval
);
23457 written
|= ( 1 << 8 );
23458 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23465 tmp_tmp
= SUBDI ( GET_H_ACC40S ((( FLD ( f_ACC40Si
)) + ( 2 ))), GET_H_ACC40S ((( FLD ( f_ACC40Si
)) + ( 3 ))));
23466 if ( GTDI ( tmp_tmp
, 549755813887 )) {
23469 DI opval
= 549755813887 ;
23470 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 3 )), opval
);
23471 written
|= ( 1 << 9 );
23472 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23474 frvbf_media_overflow ( current_cpu
, 1 );
23477 if ( LTDI ( tmp_tmp
, INVDI ( 549755813887 ))) {
23480 DI opval
= INVDI ( 549755813887 );
23481 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 3 )), opval
);
23482 written
|= ( 1 << 9 );
23483 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23485 frvbf_media_overflow ( current_cpu
, 1 );
23489 DI opval
= tmp_tmp
;
23490 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 3 )), opval
);
23491 written
|= ( 1 << 9 );
23492 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23503 abuf
-> written
= written
;
23508 /* mmulhs: mmulhs$pack $FRinti,$FRintj,$ACC40Sk */
23511 SEM_FN_NAME ( frvbf
, mmulhs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
23513 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23514 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
23515 int UNUSED written
= 0 ;
23516 IADDR UNUSED pc
= abuf
-> addr
;
23517 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
23519 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Sk
))) {
23520 if ( ANDSI ( FLD ( f_ACC40Sk
), SUBSI ( 2 , 1 ))) {
23521 frvbf_media_acc_not_aligned ( current_cpu
);
23529 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
23530 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
23531 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
23532 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
23535 DI opval
= MULDI ( EXTHIDI ( tmp_argihi
), EXTHIDI ( tmp_argjhi
));
23536 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
23537 written
|= ( 1 << 9 );
23538 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23541 DI opval
= MULDI ( EXTHIDI ( tmp_argilo
), EXTHIDI ( tmp_argjlo
));
23542 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 1 )), opval
);
23543 written
|= ( 1 << 10 );
23544 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23550 abuf
-> written
= written
;
23555 /* mmulhu: mmulhu$pack $FRinti,$FRintj,$ACC40Sk */
23558 SEM_FN_NAME ( frvbf
, mmulhu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
23560 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23561 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
23562 int UNUSED written
= 0 ;
23563 IADDR UNUSED pc
= abuf
-> addr
;
23564 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
23566 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Sk
))) {
23567 if ( ANDSI ( FLD ( f_ACC40Sk
), SUBSI ( 2 , 1 ))) {
23568 frvbf_media_acc_not_aligned ( current_cpu
);
23576 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
23577 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
23578 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
23579 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
23582 DI opval
= MULDI ( ZEXTHIDI ( tmp_argihi
), ZEXTHIDI ( tmp_argjhi
));
23583 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
23584 written
|= ( 1 << 9 );
23585 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23588 DI opval
= MULDI ( ZEXTHIDI ( tmp_argilo
), ZEXTHIDI ( tmp_argjlo
));
23589 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 1 )), opval
);
23590 written
|= ( 1 << 10 );
23591 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23597 abuf
-> written
= written
;
23602 /* mmulxhs: mmulxhs$pack $FRinti,$FRintj,$ACC40Sk */
23605 SEM_FN_NAME ( frvbf
, mmulxhs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
23607 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23608 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
23609 int UNUSED written
= 0 ;
23610 IADDR UNUSED pc
= abuf
-> addr
;
23611 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
23613 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Sk
))) {
23614 if ( ANDSI ( FLD ( f_ACC40Sk
), SUBSI ( 2 , 1 ))) {
23615 frvbf_media_acc_not_aligned ( current_cpu
);
23623 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
23624 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
23625 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
23626 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
23629 DI opval
= MULDI ( EXTHIDI ( tmp_argihi
), EXTHIDI ( tmp_argjlo
));
23630 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
23631 written
|= ( 1 << 9 );
23632 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23635 DI opval
= MULDI ( EXTHIDI ( tmp_argilo
), EXTHIDI ( tmp_argjhi
));
23636 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 1 )), opval
);
23637 written
|= ( 1 << 10 );
23638 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23644 abuf
-> written
= written
;
23649 /* mmulxhu: mmulxhu$pack $FRinti,$FRintj,$ACC40Sk */
23652 SEM_FN_NAME ( frvbf
, mmulxhu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
23654 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23655 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
23656 int UNUSED written
= 0 ;
23657 IADDR UNUSED pc
= abuf
-> addr
;
23658 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
23660 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Sk
))) {
23661 if ( ANDSI ( FLD ( f_ACC40Sk
), SUBSI ( 2 , 1 ))) {
23662 frvbf_media_acc_not_aligned ( current_cpu
);
23670 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
23671 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
23672 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
23673 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
23676 DI opval
= MULDI ( ZEXTHIDI ( tmp_argihi
), ZEXTHIDI ( tmp_argjlo
));
23677 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
23678 written
|= ( 1 << 9 );
23679 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23682 DI opval
= MULDI ( ZEXTHIDI ( tmp_argilo
), ZEXTHIDI ( tmp_argjhi
));
23683 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 1 )), opval
);
23684 written
|= ( 1 << 10 );
23685 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23691 abuf
-> written
= written
;
23696 /* cmmulhs: cmmulhs$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
23699 SEM_FN_NAME ( frvbf
, cmmulhs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
23701 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23702 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
23703 int UNUSED written
= 0 ;
23704 IADDR UNUSED pc
= abuf
-> addr
;
23705 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
23707 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Sk
))) {
23708 if ( ANDSI ( FLD ( f_ACC40Sk
), SUBSI ( 2 , 1 ))) {
23709 frvbf_media_acc_not_aligned ( current_cpu
);
23711 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
23718 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
23719 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
23720 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
23721 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
23724 DI opval
= MULDI ( EXTHIDI ( tmp_argihi
), EXTHIDI ( tmp_argjhi
));
23725 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
23726 written
|= ( 1 << 11 );
23727 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23730 DI opval
= MULDI ( EXTHIDI ( tmp_argilo
), EXTHIDI ( tmp_argjlo
));
23731 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 1 )), opval
);
23732 written
|= ( 1 << 12 );
23733 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23740 abuf
-> written
= written
;
23745 /* cmmulhu: cmmulhu$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
23748 SEM_FN_NAME ( frvbf
, cmmulhu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
23750 #define FLD(f) abuf->fields.sfmt_cmmachs.f
23751 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
23752 int UNUSED written
= 0 ;
23753 IADDR UNUSED pc
= abuf
-> addr
;
23754 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
23756 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Sk
))) {
23757 if ( ANDSI ( FLD ( f_ACC40Sk
), SUBSI ( 2 , 1 ))) {
23758 frvbf_media_acc_not_aligned ( current_cpu
);
23760 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
23767 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
23768 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
23769 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
23770 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
23773 DI opval
= MULDI ( ZEXTHIDI ( tmp_argihi
), ZEXTHIDI ( tmp_argjhi
));
23774 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
23775 written
|= ( 1 << 11 );
23776 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23779 DI opval
= MULDI ( ZEXTHIDI ( tmp_argilo
), ZEXTHIDI ( tmp_argjlo
));
23780 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 1 )), opval
);
23781 written
|= ( 1 << 12 );
23782 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23789 abuf
-> written
= written
;
23794 /* mqmulhs: mqmulhs$pack $FRintieven,$FRintjeven,$ACC40Sk */
23797 SEM_FN_NAME ( frvbf
, mqmulhs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
23799 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
23800 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
23801 int UNUSED written
= 0 ;
23802 IADDR UNUSED pc
= abuf
-> addr
;
23803 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
23805 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Sk
))) {
23806 if ( ANDSI ( FLD ( f_ACC40Sk
), SUBSI ( 4 , 1 ))) {
23807 frvbf_media_acc_not_aligned ( current_cpu
);
23809 if ( ORIF ( ANDSI ( FLD ( f_FRi
), SUBSI ( 2 , 1 )), ANDSI ( FLD ( f_FRj
), SUBSI ( 2 , 1 )))) {
23810 frvbf_media_register_not_aligned ( current_cpu
);
23818 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
23819 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
23820 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
23821 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
23824 DI opval
= MULDI ( EXTHIDI ( tmp_argihi
), EXTHIDI ( tmp_argjhi
));
23825 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
23826 written
|= ( 1 << 13 );
23827 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23830 DI opval
= MULDI ( EXTHIDI ( tmp_argilo
), EXTHIDI ( tmp_argjlo
));
23831 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 1 )), opval
);
23832 written
|= ( 1 << 14 );
23833 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23836 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
23837 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
23838 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
23839 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
23842 DI opval
= MULDI ( EXTHIDI ( tmp_argihi
), EXTHIDI ( tmp_argjhi
));
23843 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 2 )), opval
);
23844 written
|= ( 1 << 15 );
23845 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23848 DI opval
= MULDI ( EXTHIDI ( tmp_argilo
), EXTHIDI ( tmp_argjlo
));
23849 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 3 )), opval
);
23850 written
|= ( 1 << 16 );
23851 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23858 abuf
-> written
= written
;
23863 /* mqmulhu: mqmulhu$pack $FRintieven,$FRintjeven,$ACC40Sk */
23866 SEM_FN_NAME ( frvbf
, mqmulhu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
23868 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
23869 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
23870 int UNUSED written
= 0 ;
23871 IADDR UNUSED pc
= abuf
-> addr
;
23872 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
23874 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Sk
))) {
23875 if ( ANDSI ( FLD ( f_ACC40Sk
), SUBSI ( 4 , 1 ))) {
23876 frvbf_media_acc_not_aligned ( current_cpu
);
23878 if ( ORIF ( ANDSI ( FLD ( f_FRi
), SUBSI ( 2 , 1 )), ANDSI ( FLD ( f_FRj
), SUBSI ( 2 , 1 )))) {
23879 frvbf_media_register_not_aligned ( current_cpu
);
23887 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
23888 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
23889 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
23890 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
23893 DI opval
= MULDI ( ZEXTHIDI ( tmp_argihi
), ZEXTHIDI ( tmp_argjhi
));
23894 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
23895 written
|= ( 1 << 13 );
23896 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23899 DI opval
= MULDI ( ZEXTHIDI ( tmp_argilo
), ZEXTHIDI ( tmp_argjlo
));
23900 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 1 )), opval
);
23901 written
|= ( 1 << 14 );
23902 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23905 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
23906 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
23907 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
23908 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
23911 DI opval
= MULDI ( ZEXTHIDI ( tmp_argihi
), ZEXTHIDI ( tmp_argjhi
));
23912 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 2 )), opval
);
23913 written
|= ( 1 << 15 );
23914 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23917 DI opval
= MULDI ( ZEXTHIDI ( tmp_argilo
), ZEXTHIDI ( tmp_argjlo
));
23918 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 3 )), opval
);
23919 written
|= ( 1 << 16 );
23920 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23927 abuf
-> written
= written
;
23932 /* mqmulxhs: mqmulxhs$pack $FRintieven,$FRintjeven,$ACC40Sk */
23935 SEM_FN_NAME ( frvbf
, mqmulxhs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
23937 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
23938 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
23939 int UNUSED written
= 0 ;
23940 IADDR UNUSED pc
= abuf
-> addr
;
23941 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
23943 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Sk
))) {
23944 if ( ANDSI ( FLD ( f_ACC40Sk
), SUBSI ( 4 , 1 ))) {
23945 frvbf_media_acc_not_aligned ( current_cpu
);
23947 if ( ORIF ( ANDSI ( FLD ( f_FRi
), SUBSI ( 2 , 1 )), ANDSI ( FLD ( f_FRj
), SUBSI ( 2 , 1 )))) {
23948 frvbf_media_register_not_aligned ( current_cpu
);
23956 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
23957 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
23958 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
23959 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
23962 DI opval
= MULDI ( EXTHIDI ( tmp_argihi
), EXTHIDI ( tmp_argjlo
));
23963 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
23964 written
|= ( 1 << 13 );
23965 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23968 DI opval
= MULDI ( EXTHIDI ( tmp_argilo
), EXTHIDI ( tmp_argjhi
));
23969 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 1 )), opval
);
23970 written
|= ( 1 << 14 );
23971 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23974 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
23975 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
23976 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
23977 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
23980 DI opval
= MULDI ( EXTHIDI ( tmp_argihi
), EXTHIDI ( tmp_argjlo
));
23981 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 2 )), opval
);
23982 written
|= ( 1 << 15 );
23983 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23986 DI opval
= MULDI ( EXTHIDI ( tmp_argilo
), EXTHIDI ( tmp_argjhi
));
23987 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 3 )), opval
);
23988 written
|= ( 1 << 16 );
23989 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
23996 abuf
-> written
= written
;
24001 /* mqmulxhu: mqmulxhu$pack $FRintieven,$FRintjeven,$ACC40Sk */
24004 SEM_FN_NAME ( frvbf
, mqmulxhu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
24006 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
24007 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
24008 int UNUSED written
= 0 ;
24009 IADDR UNUSED pc
= abuf
-> addr
;
24010 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
24012 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Sk
))) {
24013 if ( ANDSI ( FLD ( f_ACC40Sk
), SUBSI ( 4 , 1 ))) {
24014 frvbf_media_acc_not_aligned ( current_cpu
);
24016 if ( ORIF ( ANDSI ( FLD ( f_FRi
), SUBSI ( 2 , 1 )), ANDSI ( FLD ( f_FRj
), SUBSI ( 2 , 1 )))) {
24017 frvbf_media_register_not_aligned ( current_cpu
);
24025 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
24026 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
24027 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
24028 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
24031 DI opval
= MULDI ( ZEXTHIDI ( tmp_argihi
), ZEXTHIDI ( tmp_argjlo
));
24032 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
24033 written
|= ( 1 << 13 );
24034 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
24037 DI opval
= MULDI ( ZEXTHIDI ( tmp_argilo
), ZEXTHIDI ( tmp_argjhi
));
24038 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 1 )), opval
);
24039 written
|= ( 1 << 14 );
24040 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
24043 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
24044 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
24045 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
24046 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
24049 DI opval
= MULDI ( ZEXTHIDI ( tmp_argihi
), ZEXTHIDI ( tmp_argjlo
));
24050 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 2 )), opval
);
24051 written
|= ( 1 << 15 );
24052 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
24055 DI opval
= MULDI ( ZEXTHIDI ( tmp_argilo
), ZEXTHIDI ( tmp_argjhi
));
24056 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 3 )), opval
);
24057 written
|= ( 1 << 16 );
24058 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
24065 abuf
-> written
= written
;
24070 /* cmqmulhs: cmqmulhs$pack $FRintieven,$FRintjeven,$ACC40Sk,$CCi,$cond */
24073 SEM_FN_NAME ( frvbf
, cmqmulhs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
24075 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
24076 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
24077 int UNUSED written
= 0 ;
24078 IADDR UNUSED pc
= abuf
-> addr
;
24079 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
24081 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Sk
))) {
24082 if ( ANDSI ( FLD ( f_ACC40Sk
), SUBSI ( 4 , 1 ))) {
24083 frvbf_media_acc_not_aligned ( current_cpu
);
24085 if ( ORIF ( ANDSI ( FLD ( f_FRi
), SUBSI ( 2 , 1 )), ANDSI ( FLD ( f_FRj
), SUBSI ( 2 , 1 )))) {
24086 frvbf_media_register_not_aligned ( current_cpu
);
24088 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
24095 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
24096 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
24097 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
24098 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
24101 DI opval
= MULDI ( EXTHIDI ( tmp_argihi
), EXTHIDI ( tmp_argjhi
));
24102 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
24103 written
|= ( 1 << 15 );
24104 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
24107 DI opval
= MULDI ( EXTHIDI ( tmp_argilo
), EXTHIDI ( tmp_argjlo
));
24108 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 1 )), opval
);
24109 written
|= ( 1 << 16 );
24110 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
24113 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
24114 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
24115 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
24116 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
24119 DI opval
= MULDI ( EXTHIDI ( tmp_argihi
), EXTHIDI ( tmp_argjhi
));
24120 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 2 )), opval
);
24121 written
|= ( 1 << 17 );
24122 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
24125 DI opval
= MULDI ( EXTHIDI ( tmp_argilo
), EXTHIDI ( tmp_argjlo
));
24126 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 3 )), opval
);
24127 written
|= ( 1 << 18 );
24128 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
24136 abuf
-> written
= written
;
24141 /* cmqmulhu: cmqmulhu$pack $FRintieven,$FRintjeven,$ACC40Sk,$CCi,$cond */
24144 SEM_FN_NAME ( frvbf
, cmqmulhu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
24146 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
24147 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
24148 int UNUSED written
= 0 ;
24149 IADDR UNUSED pc
= abuf
-> addr
;
24150 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
24152 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Sk
))) {
24153 if ( ANDSI ( FLD ( f_ACC40Sk
), SUBSI ( 4 , 1 ))) {
24154 frvbf_media_acc_not_aligned ( current_cpu
);
24156 if ( ORIF ( ANDSI ( FLD ( f_FRi
), SUBSI ( 2 , 1 )), ANDSI ( FLD ( f_FRj
), SUBSI ( 2 , 1 )))) {
24157 frvbf_media_register_not_aligned ( current_cpu
);
24159 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
24166 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
24167 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
24168 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
24169 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
24172 DI opval
= MULDI ( ZEXTHIDI ( tmp_argihi
), ZEXTHIDI ( tmp_argjhi
));
24173 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
24174 written
|= ( 1 << 15 );
24175 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
24178 DI opval
= MULDI ( ZEXTHIDI ( tmp_argilo
), ZEXTHIDI ( tmp_argjlo
));
24179 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 1 )), opval
);
24180 written
|= ( 1 << 16 );
24181 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
24184 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
24185 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
24186 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
24187 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
24190 DI opval
= MULDI ( ZEXTHIDI ( tmp_argihi
), ZEXTHIDI ( tmp_argjhi
));
24191 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 2 )), opval
);
24192 written
|= ( 1 << 17 );
24193 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
24196 DI opval
= MULDI ( ZEXTHIDI ( tmp_argilo
), ZEXTHIDI ( tmp_argjlo
));
24197 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 3 )), opval
);
24198 written
|= ( 1 << 18 );
24199 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
24207 abuf
-> written
= written
;
24212 /* mmachs: mmachs$pack $FRinti,$FRintj,$ACC40Sk */
24215 SEM_FN_NAME ( frvbf
, mmachs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
24217 #define FLD(f) abuf->fields.sfmt_cmmachs.f
24218 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
24219 int UNUSED written
= 0 ;
24220 IADDR UNUSED pc
= abuf
-> addr
;
24221 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
24223 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Sk
))) {
24224 if ( ANDSI ( FLD ( f_ACC40Sk
), SUBSI ( 2 , 1 ))) {
24225 frvbf_media_acc_not_aligned ( current_cpu
);
24233 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
24234 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
24235 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
24236 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
24240 tmp_tmp
= ADDDI ( GET_H_ACC40S ( FLD ( f_ACC40Sk
)), MULDI ( EXTHIDI ( tmp_argihi
), EXTHIDI ( tmp_argjhi
)));
24241 if ( GTDI ( tmp_tmp
, MAKEDI ( 127 , 0xffffffff ))) {
24244 DI opval
= MAKEDI ( 127 , 0xffffffff );
24245 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
24246 written
|= ( 1 << 11 );
24247 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
24249 frvbf_media_overflow ( current_cpu
, 8 );
24252 if ( LTDI ( tmp_tmp
, MAKEDI ( 0xffffff80 , 0 ))) {
24255 DI opval
= MAKEDI ( 0xffffff80 , 0 );
24256 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
24257 written
|= ( 1 << 11 );
24258 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
24260 frvbf_media_overflow ( current_cpu
, 8 );
24264 DI opval
= tmp_tmp
;
24265 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
24266 written
|= ( 1 << 11 );
24267 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
24274 tmp_tmp
= ADDDI ( GET_H_ACC40S ((( FLD ( f_ACC40Sk
)) + ( 1 ))), MULDI ( EXTHIDI ( tmp_argilo
), EXTHIDI ( tmp_argjlo
)));
24275 if ( GTDI ( tmp_tmp
, MAKEDI ( 127 , 0xffffffff ))) {
24278 DI opval
= MAKEDI ( 127 , 0xffffffff );
24279 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 1 )), opval
);
24280 written
|= ( 1 << 12 );
24281 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
24283 frvbf_media_overflow ( current_cpu
, 4 );
24286 if ( LTDI ( tmp_tmp
, MAKEDI ( 0xffffff80 , 0 ))) {
24289 DI opval
= MAKEDI ( 0xffffff80 , 0 );
24290 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 1 )), opval
);
24291 written
|= ( 1 << 12 );
24292 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
24294 frvbf_media_overflow ( current_cpu
, 4 );
24298 DI opval
= tmp_tmp
;
24299 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 1 )), opval
);
24300 written
|= ( 1 << 12 );
24301 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
24310 abuf
-> written
= written
;
24315 /* mmachu: mmachu$pack $FRinti,$FRintj,$ACC40Uk */
24318 SEM_FN_NAME ( frvbf
, mmachu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
24320 #define FLD(f) abuf->fields.sfmt_cmmachu.f
24321 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
24322 int UNUSED written
= 0 ;
24323 IADDR UNUSED pc
= abuf
-> addr
;
24324 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
24326 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Uk
))) {
24327 if ( ANDSI ( FLD ( f_ACC40Uk
), SUBSI ( 2 , 1 ))) {
24328 frvbf_media_acc_not_aligned ( current_cpu
);
24336 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
24337 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
24338 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
24339 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
24343 tmp_tmp
= ADDDI ( GET_H_ACC40U ( FLD ( f_ACC40Uk
)), MULDI ( ZEXTHIDI ( tmp_argihi
), ZEXTHIDI ( tmp_argjhi
)));
24344 if ( GTDI ( tmp_tmp
, MAKEDI ( 255 , 0xffffffff ))) {
24347 UDI opval
= MAKEDI ( 255 , 0xffffffff );
24348 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, FLD ( f_ACC40Uk
), opval
);
24349 written
|= ( 1 << 11 );
24350 TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
24352 frvbf_media_overflow ( current_cpu
, 8 );
24355 if ( LTDI ( tmp_tmp
, MAKEDI ( 0 , 0 ))) {
24358 UDI opval
= MAKEDI ( 0 , 0 );
24359 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, FLD ( f_ACC40Uk
), opval
);
24360 written
|= ( 1 << 11 );
24361 TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
24363 frvbf_media_overflow ( current_cpu
, 8 );
24367 UDI opval
= tmp_tmp
;
24368 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, FLD ( f_ACC40Uk
), opval
);
24369 written
|= ( 1 << 11 );
24370 TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
24377 tmp_tmp
= ADDDI ( GET_H_ACC40U ((( FLD ( f_ACC40Uk
)) + ( 1 ))), MULDI ( ZEXTHIDI ( tmp_argilo
), ZEXTHIDI ( tmp_argjlo
)));
24378 if ( GTDI ( tmp_tmp
, MAKEDI ( 255 , 0xffffffff ))) {
24381 UDI opval
= MAKEDI ( 255 , 0xffffffff );
24382 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, (( FLD ( f_ACC40Uk
)) + ( 1 )), opval
);
24383 written
|= ( 1 << 12 );
24384 TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
24386 frvbf_media_overflow ( current_cpu
, 4 );
24389 if ( LTDI ( tmp_tmp
, MAKEDI ( 0 , 0 ))) {
24392 UDI opval
= MAKEDI ( 0 , 0 );
24393 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, (( FLD ( f_ACC40Uk
)) + ( 1 )), opval
);
24394 written
|= ( 1 << 12 );
24395 TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
24397 frvbf_media_overflow ( current_cpu
, 4 );
24401 UDI opval
= tmp_tmp
;
24402 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, (( FLD ( f_ACC40Uk
)) + ( 1 )), opval
);
24403 written
|= ( 1 << 12 );
24404 TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
24413 abuf
-> written
= written
;
24418 /* mmrdhs: mmrdhs$pack $FRinti,$FRintj,$ACC40Sk */
24421 SEM_FN_NAME ( frvbf
, mmrdhs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
24423 #define FLD(f) abuf->fields.sfmt_cmmachs.f
24424 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
24425 int UNUSED written
= 0 ;
24426 IADDR UNUSED pc
= abuf
-> addr
;
24427 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
24429 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Sk
))) {
24430 if ( ANDSI ( FLD ( f_ACC40Sk
), SUBSI ( 2 , 1 ))) {
24431 frvbf_media_acc_not_aligned ( current_cpu
);
24439 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
24440 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
24441 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
24442 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
24446 tmp_tmp
= SUBDI ( GET_H_ACC40S ( FLD ( f_ACC40Sk
)), MULDI ( EXTHIDI ( tmp_argihi
), EXTHIDI ( tmp_argjhi
)));
24447 if ( GTDI ( tmp_tmp
, MAKEDI ( 127 , 0xffffffff ))) {
24450 DI opval
= MAKEDI ( 127 , 0xffffffff );
24451 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
24452 written
|= ( 1 << 11 );
24453 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
24455 frvbf_media_overflow ( current_cpu
, 8 );
24458 if ( LTDI ( tmp_tmp
, MAKEDI ( 0xffffff80 , 0 ))) {
24461 DI opval
= MAKEDI ( 0xffffff80 , 0 );
24462 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
24463 written
|= ( 1 << 11 );
24464 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
24466 frvbf_media_overflow ( current_cpu
, 8 );
24470 DI opval
= tmp_tmp
;
24471 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
24472 written
|= ( 1 << 11 );
24473 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
24480 tmp_tmp
= SUBDI ( GET_H_ACC40S ((( FLD ( f_ACC40Sk
)) + ( 1 ))), MULDI ( EXTHIDI ( tmp_argilo
), EXTHIDI ( tmp_argjlo
)));
24481 if ( GTDI ( tmp_tmp
, MAKEDI ( 127 , 0xffffffff ))) {
24484 DI opval
= MAKEDI ( 127 , 0xffffffff );
24485 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 1 )), opval
);
24486 written
|= ( 1 << 12 );
24487 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
24489 frvbf_media_overflow ( current_cpu
, 4 );
24492 if ( LTDI ( tmp_tmp
, MAKEDI ( 0xffffff80 , 0 ))) {
24495 DI opval
= MAKEDI ( 0xffffff80 , 0 );
24496 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 1 )), opval
);
24497 written
|= ( 1 << 12 );
24498 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
24500 frvbf_media_overflow ( current_cpu
, 4 );
24504 DI opval
= tmp_tmp
;
24505 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 1 )), opval
);
24506 written
|= ( 1 << 12 );
24507 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
24516 abuf
-> written
= written
;
24521 /* mmrdhu: mmrdhu$pack $FRinti,$FRintj,$ACC40Uk */
24524 SEM_FN_NAME ( frvbf
, mmrdhu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
24526 #define FLD(f) abuf->fields.sfmt_cmmachu.f
24527 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
24528 int UNUSED written
= 0 ;
24529 IADDR UNUSED pc
= abuf
-> addr
;
24530 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
24532 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Uk
))) {
24533 if ( ANDSI ( FLD ( f_ACC40Uk
), SUBSI ( 2 , 1 ))) {
24534 frvbf_media_acc_not_aligned ( current_cpu
);
24542 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
24543 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
24544 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
24545 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
24549 tmp_tmp
= SUBDI ( GET_H_ACC40U ( FLD ( f_ACC40Uk
)), MULDI ( ZEXTHIDI ( tmp_argihi
), ZEXTHIDI ( tmp_argjhi
)));
24550 if ( GTDI ( tmp_tmp
, MAKEDI ( 255 , 0xffffffff ))) {
24553 UDI opval
= MAKEDI ( 255 , 0xffffffff );
24554 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, FLD ( f_ACC40Uk
), opval
);
24555 written
|= ( 1 << 11 );
24556 TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
24558 frvbf_media_overflow ( current_cpu
, 8 );
24561 if ( LTDI ( tmp_tmp
, MAKEDI ( 0 , 0 ))) {
24564 UDI opval
= MAKEDI ( 0 , 0 );
24565 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, FLD ( f_ACC40Uk
), opval
);
24566 written
|= ( 1 << 11 );
24567 TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
24569 frvbf_media_overflow ( current_cpu
, 8 );
24573 UDI opval
= tmp_tmp
;
24574 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, FLD ( f_ACC40Uk
), opval
);
24575 written
|= ( 1 << 11 );
24576 TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
24583 tmp_tmp
= SUBDI ( GET_H_ACC40U ((( FLD ( f_ACC40Uk
)) + ( 1 ))), MULDI ( ZEXTHIDI ( tmp_argilo
), ZEXTHIDI ( tmp_argjlo
)));
24584 if ( GTDI ( tmp_tmp
, MAKEDI ( 255 , 0xffffffff ))) {
24587 UDI opval
= MAKEDI ( 255 , 0xffffffff );
24588 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, (( FLD ( f_ACC40Uk
)) + ( 1 )), opval
);
24589 written
|= ( 1 << 12 );
24590 TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
24592 frvbf_media_overflow ( current_cpu
, 4 );
24595 if ( LTDI ( tmp_tmp
, MAKEDI ( 0 , 0 ))) {
24598 UDI opval
= MAKEDI ( 0 , 0 );
24599 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, (( FLD ( f_ACC40Uk
)) + ( 1 )), opval
);
24600 written
|= ( 1 << 12 );
24601 TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
24603 frvbf_media_overflow ( current_cpu
, 4 );
24607 UDI opval
= tmp_tmp
;
24608 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, (( FLD ( f_ACC40Uk
)) + ( 1 )), opval
);
24609 written
|= ( 1 << 12 );
24610 TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
24619 abuf
-> written
= written
;
24624 /* cmmachs: cmmachs$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
24627 SEM_FN_NAME ( frvbf
, cmmachs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
24629 #define FLD(f) abuf->fields.sfmt_cmmachs.f
24630 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
24631 int UNUSED written
= 0 ;
24632 IADDR UNUSED pc
= abuf
-> addr
;
24633 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
24635 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Sk
))) {
24636 if ( ANDSI ( FLD ( f_ACC40Sk
), SUBSI ( 2 , 1 ))) {
24637 frvbf_media_acc_not_aligned ( current_cpu
);
24639 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
24646 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
24647 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
24648 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
24649 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
24653 tmp_tmp
= ADDDI ( GET_H_ACC40S ( FLD ( f_ACC40Sk
)), MULDI ( EXTHIDI ( tmp_argihi
), EXTHIDI ( tmp_argjhi
)));
24654 if ( GTDI ( tmp_tmp
, MAKEDI ( 127 , 0xffffffff ))) {
24657 DI opval
= MAKEDI ( 127 , 0xffffffff );
24658 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
24659 written
|= ( 1 << 13 );
24660 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
24662 frvbf_media_overflow ( current_cpu
, 8 );
24665 if ( LTDI ( tmp_tmp
, MAKEDI ( 0xffffff80 , 0 ))) {
24668 DI opval
= MAKEDI ( 0xffffff80 , 0 );
24669 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
24670 written
|= ( 1 << 13 );
24671 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
24673 frvbf_media_overflow ( current_cpu
, 8 );
24677 DI opval
= tmp_tmp
;
24678 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
24679 written
|= ( 1 << 13 );
24680 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
24687 tmp_tmp
= ADDDI ( GET_H_ACC40S ((( FLD ( f_ACC40Sk
)) + ( 1 ))), MULDI ( EXTHIDI ( tmp_argilo
), EXTHIDI ( tmp_argjlo
)));
24688 if ( GTDI ( tmp_tmp
, MAKEDI ( 127 , 0xffffffff ))) {
24691 DI opval
= MAKEDI ( 127 , 0xffffffff );
24692 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 1 )), opval
);
24693 written
|= ( 1 << 14 );
24694 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
24696 frvbf_media_overflow ( current_cpu
, 4 );
24699 if ( LTDI ( tmp_tmp
, MAKEDI ( 0xffffff80 , 0 ))) {
24702 DI opval
= MAKEDI ( 0xffffff80 , 0 );
24703 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 1 )), opval
);
24704 written
|= ( 1 << 14 );
24705 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
24707 frvbf_media_overflow ( current_cpu
, 4 );
24711 DI opval
= tmp_tmp
;
24712 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 1 )), opval
);
24713 written
|= ( 1 << 14 );
24714 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
24724 abuf
-> written
= written
;
24729 /* cmmachu: cmmachu$pack $FRinti,$FRintj,$ACC40Uk,$CCi,$cond */
24732 SEM_FN_NAME ( frvbf
, cmmachu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
24734 #define FLD(f) abuf->fields.sfmt_cmmachu.f
24735 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
24736 int UNUSED written
= 0 ;
24737 IADDR UNUSED pc
= abuf
-> addr
;
24738 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
24740 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Uk
))) {
24741 if ( ANDSI ( FLD ( f_ACC40Uk
), SUBSI ( 2 , 1 ))) {
24742 frvbf_media_acc_not_aligned ( current_cpu
);
24744 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
24751 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
24752 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
24753 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
24754 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
24758 tmp_tmp
= ADDDI ( GET_H_ACC40U ( FLD ( f_ACC40Uk
)), MULDI ( ZEXTHIDI ( tmp_argihi
), ZEXTHIDI ( tmp_argjhi
)));
24759 if ( GTDI ( tmp_tmp
, MAKEDI ( 255 , 0xffffffff ))) {
24762 UDI opval
= MAKEDI ( 255 , 0xffffffff );
24763 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, FLD ( f_ACC40Uk
), opval
);
24764 written
|= ( 1 << 13 );
24765 TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
24767 frvbf_media_overflow ( current_cpu
, 8 );
24770 if ( LTDI ( tmp_tmp
, MAKEDI ( 0 , 0 ))) {
24773 UDI opval
= MAKEDI ( 0 , 0 );
24774 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, FLD ( f_ACC40Uk
), opval
);
24775 written
|= ( 1 << 13 );
24776 TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
24778 frvbf_media_overflow ( current_cpu
, 8 );
24782 UDI opval
= tmp_tmp
;
24783 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, FLD ( f_ACC40Uk
), opval
);
24784 written
|= ( 1 << 13 );
24785 TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
24792 tmp_tmp
= ADDDI ( GET_H_ACC40U ((( FLD ( f_ACC40Uk
)) + ( 1 ))), MULDI ( ZEXTHIDI ( tmp_argilo
), ZEXTHIDI ( tmp_argjlo
)));
24793 if ( GTDI ( tmp_tmp
, MAKEDI ( 255 , 0xffffffff ))) {
24796 UDI opval
= MAKEDI ( 255 , 0xffffffff );
24797 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, (( FLD ( f_ACC40Uk
)) + ( 1 )), opval
);
24798 written
|= ( 1 << 14 );
24799 TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
24801 frvbf_media_overflow ( current_cpu
, 4 );
24804 if ( LTDI ( tmp_tmp
, MAKEDI ( 0 , 0 ))) {
24807 UDI opval
= MAKEDI ( 0 , 0 );
24808 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, (( FLD ( f_ACC40Uk
)) + ( 1 )), opval
);
24809 written
|= ( 1 << 14 );
24810 TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
24812 frvbf_media_overflow ( current_cpu
, 4 );
24816 UDI opval
= tmp_tmp
;
24817 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, (( FLD ( f_ACC40Uk
)) + ( 1 )), opval
);
24818 written
|= ( 1 << 14 );
24819 TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
24829 abuf
-> written
= written
;
24834 /* mqmachs: mqmachs$pack $FRintieven,$FRintjeven,$ACC40Sk */
24837 SEM_FN_NAME ( frvbf
, mqmachs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
24839 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
24840 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
24841 int UNUSED written
= 0 ;
24842 IADDR UNUSED pc
= abuf
-> addr
;
24843 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
24845 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Sk
))) {
24846 if ( ANDSI ( FLD ( f_ACC40Sk
), SUBSI ( 4 , 1 ))) {
24847 frvbf_media_acc_not_aligned ( current_cpu
);
24849 if ( ORIF ( ANDSI ( FLD ( f_FRi
), SUBSI ( 2 , 1 )), ANDSI ( FLD ( f_FRj
), SUBSI ( 2 , 1 )))) {
24850 frvbf_media_register_not_aligned ( current_cpu
);
24858 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
24859 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
24860 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
24861 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
24865 tmp_tmp
= ADDDI ( GET_H_ACC40S ( FLD ( f_ACC40Sk
)), MULDI ( EXTHIDI ( tmp_argihi
), EXTHIDI ( tmp_argjhi
)));
24866 if ( GTDI ( tmp_tmp
, MAKEDI ( 127 , 0xffffffff ))) {
24869 DI opval
= MAKEDI ( 127 , 0xffffffff );
24870 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
24871 written
|= ( 1 << 17 );
24872 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
24874 frvbf_media_overflow ( current_cpu
, 8 );
24877 if ( LTDI ( tmp_tmp
, MAKEDI ( 0xffffff80 , 0 ))) {
24880 DI opval
= MAKEDI ( 0xffffff80 , 0 );
24881 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
24882 written
|= ( 1 << 17 );
24883 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
24885 frvbf_media_overflow ( current_cpu
, 8 );
24889 DI opval
= tmp_tmp
;
24890 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
24891 written
|= ( 1 << 17 );
24892 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
24899 tmp_tmp
= ADDDI ( GET_H_ACC40S ((( FLD ( f_ACC40Sk
)) + ( 1 ))), MULDI ( EXTHIDI ( tmp_argilo
), EXTHIDI ( tmp_argjlo
)));
24900 if ( GTDI ( tmp_tmp
, MAKEDI ( 127 , 0xffffffff ))) {
24903 DI opval
= MAKEDI ( 127 , 0xffffffff );
24904 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 1 )), opval
);
24905 written
|= ( 1 << 18 );
24906 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
24908 frvbf_media_overflow ( current_cpu
, 4 );
24911 if ( LTDI ( tmp_tmp
, MAKEDI ( 0xffffff80 , 0 ))) {
24914 DI opval
= MAKEDI ( 0xffffff80 , 0 );
24915 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 1 )), opval
);
24916 written
|= ( 1 << 18 );
24917 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
24919 frvbf_media_overflow ( current_cpu
, 4 );
24923 DI opval
= tmp_tmp
;
24924 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 1 )), opval
);
24925 written
|= ( 1 << 18 );
24926 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
24932 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
24933 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
24934 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
24935 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
24939 tmp_tmp
= ADDDI ( GET_H_ACC40S ((( FLD ( f_ACC40Sk
)) + ( 2 ))), MULDI ( EXTHIDI ( tmp_argihi
), EXTHIDI ( tmp_argjhi
)));
24940 if ( GTDI ( tmp_tmp
, MAKEDI ( 127 , 0xffffffff ))) {
24943 DI opval
= MAKEDI ( 127 , 0xffffffff );
24944 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 2 )), opval
);
24945 written
|= ( 1 << 19 );
24946 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
24948 frvbf_media_overflow ( current_cpu
, 2 );
24951 if ( LTDI ( tmp_tmp
, MAKEDI ( 0xffffff80 , 0 ))) {
24954 DI opval
= MAKEDI ( 0xffffff80 , 0 );
24955 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 2 )), opval
);
24956 written
|= ( 1 << 19 );
24957 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
24959 frvbf_media_overflow ( current_cpu
, 2 );
24963 DI opval
= tmp_tmp
;
24964 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 2 )), opval
);
24965 written
|= ( 1 << 19 );
24966 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
24973 tmp_tmp
= ADDDI ( GET_H_ACC40S ((( FLD ( f_ACC40Sk
)) + ( 3 ))), MULDI ( EXTHIDI ( tmp_argilo
), EXTHIDI ( tmp_argjlo
)));
24974 if ( GTDI ( tmp_tmp
, MAKEDI ( 127 , 0xffffffff ))) {
24977 DI opval
= MAKEDI ( 127 , 0xffffffff );
24978 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 3 )), opval
);
24979 written
|= ( 1 << 20 );
24980 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
24982 frvbf_media_overflow ( current_cpu
, 1 );
24985 if ( LTDI ( tmp_tmp
, MAKEDI ( 0xffffff80 , 0 ))) {
24988 DI opval
= MAKEDI ( 0xffffff80 , 0 );
24989 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 3 )), opval
);
24990 written
|= ( 1 << 20 );
24991 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
24993 frvbf_media_overflow ( current_cpu
, 1 );
24997 DI opval
= tmp_tmp
;
24998 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 3 )), opval
);
24999 written
|= ( 1 << 20 );
25000 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
25010 abuf
-> written
= written
;
25015 /* mqmachu: mqmachu$pack $FRintieven,$FRintjeven,$ACC40Uk */
25018 SEM_FN_NAME ( frvbf
, mqmachu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
25020 #define FLD(f) abuf->fields.sfmt_cmqmachu.f
25021 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
25022 int UNUSED written
= 0 ;
25023 IADDR UNUSED pc
= abuf
-> addr
;
25024 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
25026 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Uk
))) {
25027 if ( ANDSI ( FLD ( f_ACC40Uk
), SUBSI ( 4 , 1 ))) {
25028 frvbf_media_acc_not_aligned ( current_cpu
);
25030 if ( ORIF ( ANDSI ( FLD ( f_FRi
), SUBSI ( 2 , 1 )), ANDSI ( FLD ( f_FRj
), SUBSI ( 2 , 1 )))) {
25031 frvbf_media_register_not_aligned ( current_cpu
);
25039 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
25040 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
25041 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
25042 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
25046 tmp_tmp
= ADDDI ( GET_H_ACC40U ( FLD ( f_ACC40Uk
)), MULDI ( ZEXTHIDI ( tmp_argihi
), ZEXTHIDI ( tmp_argjhi
)));
25047 if ( GTDI ( tmp_tmp
, MAKEDI ( 255 , 0xffffffff ))) {
25050 UDI opval
= MAKEDI ( 255 , 0xffffffff );
25051 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, FLD ( f_ACC40Uk
), opval
);
25052 written
|= ( 1 << 17 );
25053 TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
25055 frvbf_media_overflow ( current_cpu
, 8 );
25058 if ( LTDI ( tmp_tmp
, MAKEDI ( 0 , 0 ))) {
25061 UDI opval
= MAKEDI ( 0 , 0 );
25062 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, FLD ( f_ACC40Uk
), opval
);
25063 written
|= ( 1 << 17 );
25064 TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
25066 frvbf_media_overflow ( current_cpu
, 8 );
25070 UDI opval
= tmp_tmp
;
25071 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, FLD ( f_ACC40Uk
), opval
);
25072 written
|= ( 1 << 17 );
25073 TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
25080 tmp_tmp
= ADDDI ( GET_H_ACC40U ((( FLD ( f_ACC40Uk
)) + ( 1 ))), MULDI ( ZEXTHIDI ( tmp_argilo
), ZEXTHIDI ( tmp_argjlo
)));
25081 if ( GTDI ( tmp_tmp
, MAKEDI ( 255 , 0xffffffff ))) {
25084 UDI opval
= MAKEDI ( 255 , 0xffffffff );
25085 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, (( FLD ( f_ACC40Uk
)) + ( 1 )), opval
);
25086 written
|= ( 1 << 18 );
25087 TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
25089 frvbf_media_overflow ( current_cpu
, 4 );
25092 if ( LTDI ( tmp_tmp
, MAKEDI ( 0 , 0 ))) {
25095 UDI opval
= MAKEDI ( 0 , 0 );
25096 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, (( FLD ( f_ACC40Uk
)) + ( 1 )), opval
);
25097 written
|= ( 1 << 18 );
25098 TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
25100 frvbf_media_overflow ( current_cpu
, 4 );
25104 UDI opval
= tmp_tmp
;
25105 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, (( FLD ( f_ACC40Uk
)) + ( 1 )), opval
);
25106 written
|= ( 1 << 18 );
25107 TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
25113 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
25114 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
25115 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
25116 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
25120 tmp_tmp
= ADDDI ( GET_H_ACC40U ((( FLD ( f_ACC40Uk
)) + ( 2 ))), MULDI ( ZEXTHIDI ( tmp_argihi
), ZEXTHIDI ( tmp_argjhi
)));
25121 if ( GTDI ( tmp_tmp
, MAKEDI ( 255 , 0xffffffff ))) {
25124 UDI opval
= MAKEDI ( 255 , 0xffffffff );
25125 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, (( FLD ( f_ACC40Uk
)) + ( 2 )), opval
);
25126 written
|= ( 1 << 19 );
25127 TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
25129 frvbf_media_overflow ( current_cpu
, 2 );
25132 if ( LTDI ( tmp_tmp
, MAKEDI ( 0 , 0 ))) {
25135 UDI opval
= MAKEDI ( 0 , 0 );
25136 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, (( FLD ( f_ACC40Uk
)) + ( 2 )), opval
);
25137 written
|= ( 1 << 19 );
25138 TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
25140 frvbf_media_overflow ( current_cpu
, 2 );
25144 UDI opval
= tmp_tmp
;
25145 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, (( FLD ( f_ACC40Uk
)) + ( 2 )), opval
);
25146 written
|= ( 1 << 19 );
25147 TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
25154 tmp_tmp
= ADDDI ( GET_H_ACC40U ((( FLD ( f_ACC40Uk
)) + ( 3 ))), MULDI ( ZEXTHIDI ( tmp_argilo
), ZEXTHIDI ( tmp_argjlo
)));
25155 if ( GTDI ( tmp_tmp
, MAKEDI ( 255 , 0xffffffff ))) {
25158 UDI opval
= MAKEDI ( 255 , 0xffffffff );
25159 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, (( FLD ( f_ACC40Uk
)) + ( 3 )), opval
);
25160 written
|= ( 1 << 20 );
25161 TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
25163 frvbf_media_overflow ( current_cpu
, 1 );
25166 if ( LTDI ( tmp_tmp
, MAKEDI ( 0 , 0 ))) {
25169 UDI opval
= MAKEDI ( 0 , 0 );
25170 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, (( FLD ( f_ACC40Uk
)) + ( 3 )), opval
);
25171 written
|= ( 1 << 20 );
25172 TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
25174 frvbf_media_overflow ( current_cpu
, 1 );
25178 UDI opval
= tmp_tmp
;
25179 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, (( FLD ( f_ACC40Uk
)) + ( 3 )), opval
);
25180 written
|= ( 1 << 20 );
25181 TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
25191 abuf
-> written
= written
;
25196 /* cmqmachs: cmqmachs$pack $FRintieven,$FRintjeven,$ACC40Sk,$CCi,$cond */
25199 SEM_FN_NAME ( frvbf
, cmqmachs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
25201 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
25202 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
25203 int UNUSED written
= 0 ;
25204 IADDR UNUSED pc
= abuf
-> addr
;
25205 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
25207 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Sk
))) {
25208 if ( ANDSI ( FLD ( f_ACC40Sk
), SUBSI ( 4 , 1 ))) {
25209 frvbf_media_acc_not_aligned ( current_cpu
);
25211 if ( ORIF ( ANDSI ( FLD ( f_FRi
), SUBSI ( 2 , 1 )), ANDSI ( FLD ( f_FRj
), SUBSI ( 2 , 1 )))) {
25212 frvbf_media_register_not_aligned ( current_cpu
);
25214 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
25221 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
25222 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
25223 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
25224 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
25228 tmp_tmp
= ADDDI ( GET_H_ACC40S ( FLD ( f_ACC40Sk
)), MULDI ( EXTHIDI ( tmp_argihi
), EXTHIDI ( tmp_argjhi
)));
25229 if ( GTDI ( tmp_tmp
, MAKEDI ( 127 , 0xffffffff ))) {
25232 DI opval
= MAKEDI ( 127 , 0xffffffff );
25233 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
25234 written
|= ( 1 << 19 );
25235 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
25237 frvbf_media_overflow ( current_cpu
, 8 );
25240 if ( LTDI ( tmp_tmp
, MAKEDI ( 0xffffff80 , 0 ))) {
25243 DI opval
= MAKEDI ( 0xffffff80 , 0 );
25244 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
25245 written
|= ( 1 << 19 );
25246 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
25248 frvbf_media_overflow ( current_cpu
, 8 );
25252 DI opval
= tmp_tmp
;
25253 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
25254 written
|= ( 1 << 19 );
25255 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
25262 tmp_tmp
= ADDDI ( GET_H_ACC40S ((( FLD ( f_ACC40Sk
)) + ( 1 ))), MULDI ( EXTHIDI ( tmp_argilo
), EXTHIDI ( tmp_argjlo
)));
25263 if ( GTDI ( tmp_tmp
, MAKEDI ( 127 , 0xffffffff ))) {
25266 DI opval
= MAKEDI ( 127 , 0xffffffff );
25267 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 1 )), opval
);
25268 written
|= ( 1 << 20 );
25269 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
25271 frvbf_media_overflow ( current_cpu
, 4 );
25274 if ( LTDI ( tmp_tmp
, MAKEDI ( 0xffffff80 , 0 ))) {
25277 DI opval
= MAKEDI ( 0xffffff80 , 0 );
25278 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 1 )), opval
);
25279 written
|= ( 1 << 20 );
25280 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
25282 frvbf_media_overflow ( current_cpu
, 4 );
25286 DI opval
= tmp_tmp
;
25287 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 1 )), opval
);
25288 written
|= ( 1 << 20 );
25289 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
25295 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
25296 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
25297 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
25298 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
25302 tmp_tmp
= ADDDI ( GET_H_ACC40S ((( FLD ( f_ACC40Sk
)) + ( 2 ))), MULDI ( EXTHIDI ( tmp_argihi
), EXTHIDI ( tmp_argjhi
)));
25303 if ( GTDI ( tmp_tmp
, MAKEDI ( 127 , 0xffffffff ))) {
25306 DI opval
= MAKEDI ( 127 , 0xffffffff );
25307 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 2 )), opval
);
25308 written
|= ( 1 << 21 );
25309 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
25311 frvbf_media_overflow ( current_cpu
, 2 );
25314 if ( LTDI ( tmp_tmp
, MAKEDI ( 0xffffff80 , 0 ))) {
25317 DI opval
= MAKEDI ( 0xffffff80 , 0 );
25318 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 2 )), opval
);
25319 written
|= ( 1 << 21 );
25320 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
25322 frvbf_media_overflow ( current_cpu
, 2 );
25326 DI opval
= tmp_tmp
;
25327 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 2 )), opval
);
25328 written
|= ( 1 << 21 );
25329 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
25336 tmp_tmp
= ADDDI ( GET_H_ACC40S ((( FLD ( f_ACC40Sk
)) + ( 3 ))), MULDI ( EXTHIDI ( tmp_argilo
), EXTHIDI ( tmp_argjlo
)));
25337 if ( GTDI ( tmp_tmp
, MAKEDI ( 127 , 0xffffffff ))) {
25340 DI opval
= MAKEDI ( 127 , 0xffffffff );
25341 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 3 )), opval
);
25342 written
|= ( 1 << 22 );
25343 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
25345 frvbf_media_overflow ( current_cpu
, 1 );
25348 if ( LTDI ( tmp_tmp
, MAKEDI ( 0xffffff80 , 0 ))) {
25351 DI opval
= MAKEDI ( 0xffffff80 , 0 );
25352 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 3 )), opval
);
25353 written
|= ( 1 << 22 );
25354 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
25356 frvbf_media_overflow ( current_cpu
, 1 );
25360 DI opval
= tmp_tmp
;
25361 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 3 )), opval
);
25362 written
|= ( 1 << 22 );
25363 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
25374 abuf
-> written
= written
;
25379 /* cmqmachu: cmqmachu$pack $FRintieven,$FRintjeven,$ACC40Uk,$CCi,$cond */
25382 SEM_FN_NAME ( frvbf
, cmqmachu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
25384 #define FLD(f) abuf->fields.sfmt_cmqmachu.f
25385 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
25386 int UNUSED written
= 0 ;
25387 IADDR UNUSED pc
= abuf
-> addr
;
25388 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
25390 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Uk
))) {
25391 if ( ANDSI ( FLD ( f_ACC40Uk
), SUBSI ( 4 , 1 ))) {
25392 frvbf_media_acc_not_aligned ( current_cpu
);
25394 if ( ORIF ( ANDSI ( FLD ( f_FRi
), SUBSI ( 2 , 1 )), ANDSI ( FLD ( f_FRj
), SUBSI ( 2 , 1 )))) {
25395 frvbf_media_register_not_aligned ( current_cpu
);
25397 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
25404 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
25405 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
25406 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
25407 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
25411 tmp_tmp
= ADDDI ( GET_H_ACC40U ( FLD ( f_ACC40Uk
)), MULDI ( ZEXTHIDI ( tmp_argihi
), ZEXTHIDI ( tmp_argjhi
)));
25412 if ( GTDI ( tmp_tmp
, MAKEDI ( 255 , 0xffffffff ))) {
25415 UDI opval
= MAKEDI ( 255 , 0xffffffff );
25416 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, FLD ( f_ACC40Uk
), opval
);
25417 written
|= ( 1 << 19 );
25418 TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
25420 frvbf_media_overflow ( current_cpu
, 8 );
25423 if ( LTDI ( tmp_tmp
, MAKEDI ( 0 , 0 ))) {
25426 UDI opval
= MAKEDI ( 0 , 0 );
25427 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, FLD ( f_ACC40Uk
), opval
);
25428 written
|= ( 1 << 19 );
25429 TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
25431 frvbf_media_overflow ( current_cpu
, 8 );
25435 UDI opval
= tmp_tmp
;
25436 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, FLD ( f_ACC40Uk
), opval
);
25437 written
|= ( 1 << 19 );
25438 TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
25445 tmp_tmp
= ADDDI ( GET_H_ACC40U ((( FLD ( f_ACC40Uk
)) + ( 1 ))), MULDI ( ZEXTHIDI ( tmp_argilo
), ZEXTHIDI ( tmp_argjlo
)));
25446 if ( GTDI ( tmp_tmp
, MAKEDI ( 255 , 0xffffffff ))) {
25449 UDI opval
= MAKEDI ( 255 , 0xffffffff );
25450 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, (( FLD ( f_ACC40Uk
)) + ( 1 )), opval
);
25451 written
|= ( 1 << 20 );
25452 TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
25454 frvbf_media_overflow ( current_cpu
, 4 );
25457 if ( LTDI ( tmp_tmp
, MAKEDI ( 0 , 0 ))) {
25460 UDI opval
= MAKEDI ( 0 , 0 );
25461 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, (( FLD ( f_ACC40Uk
)) + ( 1 )), opval
);
25462 written
|= ( 1 << 20 );
25463 TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
25465 frvbf_media_overflow ( current_cpu
, 4 );
25469 UDI opval
= tmp_tmp
;
25470 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, (( FLD ( f_ACC40Uk
)) + ( 1 )), opval
);
25471 written
|= ( 1 << 20 );
25472 TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
25478 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
25479 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
25480 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
25481 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
25485 tmp_tmp
= ADDDI ( GET_H_ACC40U ((( FLD ( f_ACC40Uk
)) + ( 2 ))), MULDI ( ZEXTHIDI ( tmp_argihi
), ZEXTHIDI ( tmp_argjhi
)));
25486 if ( GTDI ( tmp_tmp
, MAKEDI ( 255 , 0xffffffff ))) {
25489 UDI opval
= MAKEDI ( 255 , 0xffffffff );
25490 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, (( FLD ( f_ACC40Uk
)) + ( 2 )), opval
);
25491 written
|= ( 1 << 21 );
25492 TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
25494 frvbf_media_overflow ( current_cpu
, 2 );
25497 if ( LTDI ( tmp_tmp
, MAKEDI ( 0 , 0 ))) {
25500 UDI opval
= MAKEDI ( 0 , 0 );
25501 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, (( FLD ( f_ACC40Uk
)) + ( 2 )), opval
);
25502 written
|= ( 1 << 21 );
25503 TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
25505 frvbf_media_overflow ( current_cpu
, 2 );
25509 UDI opval
= tmp_tmp
;
25510 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, (( FLD ( f_ACC40Uk
)) + ( 2 )), opval
);
25511 written
|= ( 1 << 21 );
25512 TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
25519 tmp_tmp
= ADDDI ( GET_H_ACC40U ((( FLD ( f_ACC40Uk
)) + ( 3 ))), MULDI ( ZEXTHIDI ( tmp_argilo
), ZEXTHIDI ( tmp_argjlo
)));
25520 if ( GTDI ( tmp_tmp
, MAKEDI ( 255 , 0xffffffff ))) {
25523 UDI opval
= MAKEDI ( 255 , 0xffffffff );
25524 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, (( FLD ( f_ACC40Uk
)) + ( 3 )), opval
);
25525 written
|= ( 1 << 22 );
25526 TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
25528 frvbf_media_overflow ( current_cpu
, 1 );
25531 if ( LTDI ( tmp_tmp
, MAKEDI ( 0 , 0 ))) {
25534 UDI opval
= MAKEDI ( 0 , 0 );
25535 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, (( FLD ( f_ACC40Uk
)) + ( 3 )), opval
);
25536 written
|= ( 1 << 22 );
25537 TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
25539 frvbf_media_overflow ( current_cpu
, 1 );
25543 UDI opval
= tmp_tmp
;
25544 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40U_set
, (( FLD ( f_ACC40Uk
)) + ( 3 )), opval
);
25545 written
|= ( 1 << 22 );
25546 TRACE_RESULT ( current_cpu
, abuf
, "acc40U" , 'D' , opval
);
25557 abuf
-> written
= written
;
25562 /* mqxmachs: mqxmachs$pack $FRintieven,$FRintjeven,$ACC40Sk */
25565 SEM_FN_NAME ( frvbf
, mqxmachs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
25567 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
25568 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
25569 int UNUSED written
= 0 ;
25570 IADDR UNUSED pc
= abuf
-> addr
;
25571 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
25573 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Sk
))) {
25574 if ( ANDSI ( FLD ( f_ACC40Sk
), SUBSI ( 4 , 1 ))) {
25575 frvbf_media_acc_not_aligned ( current_cpu
);
25577 if ( ORIF ( ANDSI ( FLD ( f_FRi
), SUBSI ( 2 , 1 )), ANDSI ( FLD ( f_FRj
), SUBSI ( 2 , 1 )))) {
25578 frvbf_media_register_not_aligned ( current_cpu
);
25586 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
25587 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
25588 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
25589 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
25593 tmp_tmp
= ADDDI ( GET_H_ACC40S ((( FLD ( f_ACC40Sk
)) + ( 2 ))), MULDI ( EXTHIDI ( tmp_argihi
), EXTHIDI ( tmp_argjhi
)));
25594 if ( GTDI ( tmp_tmp
, MAKEDI ( 127 , 0xffffffff ))) {
25597 DI opval
= MAKEDI ( 127 , 0xffffffff );
25598 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 2 )), opval
);
25599 written
|= ( 1 << 19 );
25600 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
25602 frvbf_media_overflow ( current_cpu
, 2 );
25605 if ( LTDI ( tmp_tmp
, MAKEDI ( 0xffffff80 , 0 ))) {
25608 DI opval
= MAKEDI ( 0xffffff80 , 0 );
25609 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 2 )), opval
);
25610 written
|= ( 1 << 19 );
25611 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
25613 frvbf_media_overflow ( current_cpu
, 2 );
25617 DI opval
= tmp_tmp
;
25618 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 2 )), opval
);
25619 written
|= ( 1 << 19 );
25620 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
25627 tmp_tmp
= ADDDI ( GET_H_ACC40S ((( FLD ( f_ACC40Sk
)) + ( 3 ))), MULDI ( EXTHIDI ( tmp_argilo
), EXTHIDI ( tmp_argjlo
)));
25628 if ( GTDI ( tmp_tmp
, MAKEDI ( 127 , 0xffffffff ))) {
25631 DI opval
= MAKEDI ( 127 , 0xffffffff );
25632 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 3 )), opval
);
25633 written
|= ( 1 << 20 );
25634 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
25636 frvbf_media_overflow ( current_cpu
, 1 );
25639 if ( LTDI ( tmp_tmp
, MAKEDI ( 0xffffff80 , 0 ))) {
25642 DI opval
= MAKEDI ( 0xffffff80 , 0 );
25643 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 3 )), opval
);
25644 written
|= ( 1 << 20 );
25645 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
25647 frvbf_media_overflow ( current_cpu
, 1 );
25651 DI opval
= tmp_tmp
;
25652 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 3 )), opval
);
25653 written
|= ( 1 << 20 );
25654 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
25660 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
25661 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
25662 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
25663 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
25667 tmp_tmp
= ADDDI ( GET_H_ACC40S ( FLD ( f_ACC40Sk
)), MULDI ( EXTHIDI ( tmp_argihi
), EXTHIDI ( tmp_argjhi
)));
25668 if ( GTDI ( tmp_tmp
, MAKEDI ( 127 , 0xffffffff ))) {
25671 DI opval
= MAKEDI ( 127 , 0xffffffff );
25672 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
25673 written
|= ( 1 << 17 );
25674 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
25676 frvbf_media_overflow ( current_cpu
, 8 );
25679 if ( LTDI ( tmp_tmp
, MAKEDI ( 0xffffff80 , 0 ))) {
25682 DI opval
= MAKEDI ( 0xffffff80 , 0 );
25683 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
25684 written
|= ( 1 << 17 );
25685 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
25687 frvbf_media_overflow ( current_cpu
, 8 );
25691 DI opval
= tmp_tmp
;
25692 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
25693 written
|= ( 1 << 17 );
25694 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
25701 tmp_tmp
= ADDDI ( GET_H_ACC40S ((( FLD ( f_ACC40Sk
)) + ( 1 ))), MULDI ( EXTHIDI ( tmp_argilo
), EXTHIDI ( tmp_argjlo
)));
25702 if ( GTDI ( tmp_tmp
, MAKEDI ( 127 , 0xffffffff ))) {
25705 DI opval
= MAKEDI ( 127 , 0xffffffff );
25706 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 1 )), opval
);
25707 written
|= ( 1 << 18 );
25708 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
25710 frvbf_media_overflow ( current_cpu
, 4 );
25713 if ( LTDI ( tmp_tmp
, MAKEDI ( 0xffffff80 , 0 ))) {
25716 DI opval
= MAKEDI ( 0xffffff80 , 0 );
25717 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 1 )), opval
);
25718 written
|= ( 1 << 18 );
25719 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
25721 frvbf_media_overflow ( current_cpu
, 4 );
25725 DI opval
= tmp_tmp
;
25726 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 1 )), opval
);
25727 written
|= ( 1 << 18 );
25728 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
25738 abuf
-> written
= written
;
25743 /* mqxmacxhs: mqxmacxhs$pack $FRintieven,$FRintjeven,$ACC40Sk */
25746 SEM_FN_NAME ( frvbf
, mqxmacxhs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
25748 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
25749 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
25750 int UNUSED written
= 0 ;
25751 IADDR UNUSED pc
= abuf
-> addr
;
25752 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
25754 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Sk
))) {
25755 if ( ANDSI ( FLD ( f_ACC40Sk
), SUBSI ( 4 , 1 ))) {
25756 frvbf_media_acc_not_aligned ( current_cpu
);
25758 if ( ORIF ( ANDSI ( FLD ( f_FRi
), SUBSI ( 2 , 1 )), ANDSI ( FLD ( f_FRj
), SUBSI ( 2 , 1 )))) {
25759 frvbf_media_register_not_aligned ( current_cpu
);
25767 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
25768 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
25769 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
25770 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
25774 tmp_tmp
= ADDDI ( GET_H_ACC40S ((( FLD ( f_ACC40Sk
)) + ( 2 ))), MULDI ( EXTHIDI ( tmp_argihi
), EXTHIDI ( tmp_argjlo
)));
25775 if ( GTDI ( tmp_tmp
, MAKEDI ( 127 , 0xffffffff ))) {
25778 DI opval
= MAKEDI ( 127 , 0xffffffff );
25779 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 2 )), opval
);
25780 written
|= ( 1 << 19 );
25781 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
25783 frvbf_media_overflow ( current_cpu
, 2 );
25786 if ( LTDI ( tmp_tmp
, MAKEDI ( 0xffffff80 , 0 ))) {
25789 DI opval
= MAKEDI ( 0xffffff80 , 0 );
25790 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 2 )), opval
);
25791 written
|= ( 1 << 19 );
25792 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
25794 frvbf_media_overflow ( current_cpu
, 2 );
25798 DI opval
= tmp_tmp
;
25799 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 2 )), opval
);
25800 written
|= ( 1 << 19 );
25801 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
25808 tmp_tmp
= ADDDI ( GET_H_ACC40S ((( FLD ( f_ACC40Sk
)) + ( 3 ))), MULDI ( EXTHIDI ( tmp_argilo
), EXTHIDI ( tmp_argjhi
)));
25809 if ( GTDI ( tmp_tmp
, MAKEDI ( 127 , 0xffffffff ))) {
25812 DI opval
= MAKEDI ( 127 , 0xffffffff );
25813 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 3 )), opval
);
25814 written
|= ( 1 << 20 );
25815 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
25817 frvbf_media_overflow ( current_cpu
, 1 );
25820 if ( LTDI ( tmp_tmp
, MAKEDI ( 0xffffff80 , 0 ))) {
25823 DI opval
= MAKEDI ( 0xffffff80 , 0 );
25824 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 3 )), opval
);
25825 written
|= ( 1 << 20 );
25826 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
25828 frvbf_media_overflow ( current_cpu
, 1 );
25832 DI opval
= tmp_tmp
;
25833 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 3 )), opval
);
25834 written
|= ( 1 << 20 );
25835 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
25841 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
25842 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
25843 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
25844 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
25848 tmp_tmp
= ADDDI ( GET_H_ACC40S ( FLD ( f_ACC40Sk
)), MULDI ( EXTHIDI ( tmp_argihi
), EXTHIDI ( tmp_argjlo
)));
25849 if ( GTDI ( tmp_tmp
, MAKEDI ( 127 , 0xffffffff ))) {
25852 DI opval
= MAKEDI ( 127 , 0xffffffff );
25853 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
25854 written
|= ( 1 << 17 );
25855 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
25857 frvbf_media_overflow ( current_cpu
, 8 );
25860 if ( LTDI ( tmp_tmp
, MAKEDI ( 0xffffff80 , 0 ))) {
25863 DI opval
= MAKEDI ( 0xffffff80 , 0 );
25864 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
25865 written
|= ( 1 << 17 );
25866 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
25868 frvbf_media_overflow ( current_cpu
, 8 );
25872 DI opval
= tmp_tmp
;
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
);
25882 tmp_tmp
= ADDDI ( GET_H_ACC40S ((( FLD ( f_ACC40Sk
)) + ( 1 ))), MULDI ( EXTHIDI ( tmp_argilo
), EXTHIDI ( tmp_argjhi
)));
25883 if ( GTDI ( tmp_tmp
, MAKEDI ( 127 , 0xffffffff ))) {
25886 DI opval
= MAKEDI ( 127 , 0xffffffff );
25887 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 1 )), opval
);
25888 written
|= ( 1 << 18 );
25889 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
25891 frvbf_media_overflow ( current_cpu
, 4 );
25894 if ( LTDI ( tmp_tmp
, MAKEDI ( 0xffffff80 , 0 ))) {
25897 DI opval
= MAKEDI ( 0xffffff80 , 0 );
25898 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 1 )), opval
);
25899 written
|= ( 1 << 18 );
25900 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
25902 frvbf_media_overflow ( current_cpu
, 4 );
25906 DI opval
= tmp_tmp
;
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
);
25919 abuf
-> written
= written
;
25924 /* mqmacxhs: mqmacxhs$pack $FRintieven,$FRintjeven,$ACC40Sk */
25927 SEM_FN_NAME ( frvbf
, mqmacxhs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
25929 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
25930 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
25931 int UNUSED written
= 0 ;
25932 IADDR UNUSED pc
= abuf
-> addr
;
25933 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
25935 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Sk
))) {
25936 if ( ANDSI ( FLD ( f_ACC40Sk
), SUBSI ( 4 , 1 ))) {
25937 frvbf_media_acc_not_aligned ( current_cpu
);
25939 if ( ORIF ( ANDSI ( FLD ( f_FRi
), SUBSI ( 2 , 1 )), ANDSI ( FLD ( f_FRj
), SUBSI ( 2 , 1 )))) {
25940 frvbf_media_register_not_aligned ( current_cpu
);
25948 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
25949 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
25950 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
25951 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
25955 tmp_tmp
= ADDDI ( GET_H_ACC40S ( FLD ( f_ACC40Sk
)), MULDI ( EXTHIDI ( tmp_argihi
), EXTHIDI ( tmp_argjlo
)));
25956 if ( GTDI ( tmp_tmp
, MAKEDI ( 127 , 0xffffffff ))) {
25959 DI opval
= MAKEDI ( 127 , 0xffffffff );
25960 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
25961 written
|= ( 1 << 17 );
25962 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
25964 frvbf_media_overflow ( current_cpu
, 8 );
25967 if ( LTDI ( tmp_tmp
, MAKEDI ( 0xffffff80 , 0 ))) {
25970 DI opval
= MAKEDI ( 0xffffff80 , 0 );
25971 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
25972 written
|= ( 1 << 17 );
25973 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
25975 frvbf_media_overflow ( current_cpu
, 8 );
25979 DI opval
= tmp_tmp
;
25980 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
25981 written
|= ( 1 << 17 );
25982 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
25989 tmp_tmp
= ADDDI ( GET_H_ACC40S ((( FLD ( f_ACC40Sk
)) + ( 1 ))), MULDI ( EXTHIDI ( tmp_argilo
), EXTHIDI ( tmp_argjhi
)));
25990 if ( GTDI ( tmp_tmp
, MAKEDI ( 127 , 0xffffffff ))) {
25993 DI opval
= MAKEDI ( 127 , 0xffffffff );
25994 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 1 )), opval
);
25995 written
|= ( 1 << 18 );
25996 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
25998 frvbf_media_overflow ( current_cpu
, 4 );
26001 if ( LTDI ( tmp_tmp
, MAKEDI ( 0xffffff80 , 0 ))) {
26004 DI opval
= MAKEDI ( 0xffffff80 , 0 );
26005 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 1 )), opval
);
26006 written
|= ( 1 << 18 );
26007 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26009 frvbf_media_overflow ( current_cpu
, 4 );
26013 DI opval
= tmp_tmp
;
26014 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 1 )), opval
);
26015 written
|= ( 1 << 18 );
26016 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26022 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
26023 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
26024 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
26025 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
26029 tmp_tmp
= ADDDI ( GET_H_ACC40S ((( FLD ( f_ACC40Sk
)) + ( 2 ))), MULDI ( EXTHIDI ( tmp_argihi
), EXTHIDI ( tmp_argjlo
)));
26030 if ( GTDI ( tmp_tmp
, MAKEDI ( 127 , 0xffffffff ))) {
26033 DI opval
= MAKEDI ( 127 , 0xffffffff );
26034 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 2 )), opval
);
26035 written
|= ( 1 << 19 );
26036 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26038 frvbf_media_overflow ( current_cpu
, 2 );
26041 if ( LTDI ( tmp_tmp
, MAKEDI ( 0xffffff80 , 0 ))) {
26044 DI opval
= MAKEDI ( 0xffffff80 , 0 );
26045 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 2 )), opval
);
26046 written
|= ( 1 << 19 );
26047 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26049 frvbf_media_overflow ( current_cpu
, 2 );
26053 DI opval
= tmp_tmp
;
26054 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 2 )), opval
);
26055 written
|= ( 1 << 19 );
26056 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26063 tmp_tmp
= ADDDI ( GET_H_ACC40S ((( FLD ( f_ACC40Sk
)) + ( 3 ))), MULDI ( EXTHIDI ( tmp_argilo
), EXTHIDI ( tmp_argjhi
)));
26064 if ( GTDI ( tmp_tmp
, MAKEDI ( 127 , 0xffffffff ))) {
26067 DI opval
= MAKEDI ( 127 , 0xffffffff );
26068 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 3 )), opval
);
26069 written
|= ( 1 << 20 );
26070 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26072 frvbf_media_overflow ( current_cpu
, 1 );
26075 if ( LTDI ( tmp_tmp
, MAKEDI ( 0xffffff80 , 0 ))) {
26078 DI opval
= MAKEDI ( 0xffffff80 , 0 );
26079 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 3 )), opval
);
26080 written
|= ( 1 << 20 );
26081 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26083 frvbf_media_overflow ( current_cpu
, 1 );
26087 DI opval
= tmp_tmp
;
26088 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 3 )), opval
);
26089 written
|= ( 1 << 20 );
26090 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26100 abuf
-> written
= written
;
26105 /* mcpxrs: mcpxrs$pack $FRinti,$FRintj,$ACC40Sk */
26108 SEM_FN_NAME ( frvbf
, mcpxrs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
26110 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26111 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
26112 int UNUSED written
= 0 ;
26113 IADDR UNUSED pc
= abuf
-> addr
;
26114 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
26116 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Sk
))) {
26123 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
26124 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
26125 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
26126 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
26131 tmp_tmp1
= MULDI ( EXTHIDI ( tmp_argihi
), EXTHIDI ( tmp_argjhi
));
26132 tmp_tmp2
= MULDI ( EXTHIDI ( tmp_argilo
), EXTHIDI ( tmp_argjlo
));
26133 tmp_tmp1
= SUBDI ( tmp_tmp1
, tmp_tmp2
);
26134 if ( GTDI ( tmp_tmp1
, MAKEDI ( 127 , 0xffffffff ))) {
26137 DI opval
= MAKEDI ( 127 , 0xffffffff );
26138 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
26139 written
|= ( 1 << 9 );
26140 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26142 frvbf_media_overflow ( current_cpu
, 8 );
26145 if ( LTDI ( tmp_tmp1
, MAKEDI ( 0xffffff80 , 0 ))) {
26148 DI opval
= MAKEDI ( 0xffffff80 , 0 );
26149 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
26150 written
|= ( 1 << 9 );
26151 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26153 frvbf_media_overflow ( current_cpu
, 8 );
26157 DI opval
= tmp_tmp1
;
26158 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
26159 written
|= ( 1 << 9 );
26160 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26168 abuf
-> written
= written
;
26173 /* mcpxru: mcpxru$pack $FRinti,$FRintj,$ACC40Sk */
26176 SEM_FN_NAME ( frvbf
, mcpxru
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
26178 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26179 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
26180 int UNUSED written
= 0 ;
26181 IADDR UNUSED pc
= abuf
-> addr
;
26182 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
26184 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Sk
))) {
26191 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
26192 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
26193 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
26194 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
26199 tmp_tmp1
= MULDI ( ZEXTHIDI ( tmp_argihi
), ZEXTHIDI ( tmp_argjhi
));
26200 tmp_tmp2
= MULDI ( ZEXTHIDI ( tmp_argilo
), ZEXTHIDI ( tmp_argjlo
));
26201 tmp_tmp1
= SUBDI ( tmp_tmp1
, tmp_tmp2
);
26202 if ( GTDI ( tmp_tmp1
, MAKEDI ( 255 , 0xffffffff ))) {
26205 DI opval
= MAKEDI ( 255 , 0xffffffff );
26206 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
26207 written
|= ( 1 << 9 );
26208 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26210 frvbf_media_overflow ( current_cpu
, 8 );
26213 if ( LTDI ( tmp_tmp1
, MAKEDI ( 0 , 0 ))) {
26216 DI opval
= MAKEDI ( 0 , 0 );
26217 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
26218 written
|= ( 1 << 9 );
26219 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26221 frvbf_media_overflow ( current_cpu
, 8 );
26225 DI opval
= tmp_tmp1
;
26226 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
26227 written
|= ( 1 << 9 );
26228 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26236 abuf
-> written
= written
;
26241 /* mcpxis: mcpxis$pack $FRinti,$FRintj,$ACC40Sk */
26244 SEM_FN_NAME ( frvbf
, mcpxis
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
26246 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26247 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
26248 int UNUSED written
= 0 ;
26249 IADDR UNUSED pc
= abuf
-> addr
;
26250 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
26252 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Sk
))) {
26259 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
26260 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
26261 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
26262 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
26267 tmp_tmp1
= MULDI ( EXTHIDI ( tmp_argihi
), EXTHIDI ( tmp_argjlo
));
26268 tmp_tmp2
= MULDI ( EXTHIDI ( tmp_argilo
), EXTHIDI ( tmp_argjhi
));
26269 tmp_tmp1
= ADDDI ( tmp_tmp1
, tmp_tmp2
);
26270 if ( GTDI ( tmp_tmp1
, MAKEDI ( 127 , 0xffffffff ))) {
26273 DI opval
= MAKEDI ( 127 , 0xffffffff );
26274 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
26275 written
|= ( 1 << 9 );
26276 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26278 frvbf_media_overflow ( current_cpu
, 8 );
26281 if ( LTDI ( tmp_tmp1
, MAKEDI ( 0xffffff80 , 0 ))) {
26284 DI opval
= MAKEDI ( 0xffffff80 , 0 );
26285 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
26286 written
|= ( 1 << 9 );
26287 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26289 frvbf_media_overflow ( current_cpu
, 8 );
26293 DI opval
= tmp_tmp1
;
26294 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
26295 written
|= ( 1 << 9 );
26296 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26304 abuf
-> written
= written
;
26309 /* mcpxiu: mcpxiu$pack $FRinti,$FRintj,$ACC40Sk */
26312 SEM_FN_NAME ( frvbf
, mcpxiu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
26314 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26315 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
26316 int UNUSED written
= 0 ;
26317 IADDR UNUSED pc
= abuf
-> addr
;
26318 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
26320 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Sk
))) {
26327 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
26328 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
26329 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
26330 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
26335 tmp_tmp1
= MULDI ( ZEXTHIDI ( tmp_argihi
), ZEXTHIDI ( tmp_argjlo
));
26336 tmp_tmp2
= MULDI ( ZEXTHIDI ( tmp_argilo
), ZEXTHIDI ( tmp_argjhi
));
26337 tmp_tmp1
= ADDDI ( tmp_tmp1
, tmp_tmp2
);
26338 if ( GTDI ( tmp_tmp1
, MAKEDI ( 255 , 0xffffffff ))) {
26341 DI opval
= MAKEDI ( 255 , 0xffffffff );
26342 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
26343 written
|= ( 1 << 9 );
26344 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26346 frvbf_media_overflow ( current_cpu
, 8 );
26349 if ( LTDI ( tmp_tmp1
, MAKEDI ( 0 , 0 ))) {
26352 DI opval
= MAKEDI ( 0 , 0 );
26353 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
26354 written
|= ( 1 << 9 );
26355 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26357 frvbf_media_overflow ( current_cpu
, 8 );
26361 DI opval
= tmp_tmp1
;
26362 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
26363 written
|= ( 1 << 9 );
26364 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26372 abuf
-> written
= written
;
26377 /* cmcpxrs: cmcpxrs$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
26380 SEM_FN_NAME ( frvbf
, cmcpxrs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
26382 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26383 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
26384 int UNUSED written
= 0 ;
26385 IADDR UNUSED pc
= abuf
-> addr
;
26386 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
26388 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
26389 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Sk
))) {
26396 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
26397 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
26398 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
26399 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
26404 tmp_tmp1
= MULDI ( EXTHIDI ( tmp_argihi
), EXTHIDI ( tmp_argjhi
));
26405 tmp_tmp2
= MULDI ( EXTHIDI ( tmp_argilo
), EXTHIDI ( tmp_argjlo
));
26406 tmp_tmp1
= SUBDI ( tmp_tmp1
, tmp_tmp2
);
26407 if ( GTDI ( tmp_tmp1
, MAKEDI ( 127 , 0xffffffff ))) {
26410 DI opval
= MAKEDI ( 127 , 0xffffffff );
26411 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
26412 written
|= ( 1 << 11 );
26413 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26415 frvbf_media_overflow ( current_cpu
, 8 );
26418 if ( LTDI ( tmp_tmp1
, MAKEDI ( 0xffffff80 , 0 ))) {
26421 DI opval
= MAKEDI ( 0xffffff80 , 0 );
26422 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
26423 written
|= ( 1 << 11 );
26424 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26426 frvbf_media_overflow ( current_cpu
, 8 );
26430 DI opval
= tmp_tmp1
;
26431 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
26432 written
|= ( 1 << 11 );
26433 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26442 abuf
-> written
= written
;
26447 /* cmcpxru: cmcpxru$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
26450 SEM_FN_NAME ( frvbf
, cmcpxru
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
26452 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26453 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
26454 int UNUSED written
= 0 ;
26455 IADDR UNUSED pc
= abuf
-> addr
;
26456 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
26458 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
26459 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Sk
))) {
26466 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
26467 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
26468 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
26469 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
26474 tmp_tmp1
= MULDI ( ZEXTHIDI ( tmp_argihi
), ZEXTHIDI ( tmp_argjhi
));
26475 tmp_tmp2
= MULDI ( ZEXTHIDI ( tmp_argilo
), ZEXTHIDI ( tmp_argjlo
));
26476 tmp_tmp1
= SUBDI ( tmp_tmp1
, tmp_tmp2
);
26477 if ( GTDI ( tmp_tmp1
, MAKEDI ( 255 , 0xffffffff ))) {
26480 DI opval
= MAKEDI ( 255 , 0xffffffff );
26481 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
26482 written
|= ( 1 << 11 );
26483 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26485 frvbf_media_overflow ( current_cpu
, 8 );
26488 if ( LTDI ( tmp_tmp1
, MAKEDI ( 0 , 0 ))) {
26491 DI opval
= MAKEDI ( 0 , 0 );
26492 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
26493 written
|= ( 1 << 11 );
26494 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26496 frvbf_media_overflow ( current_cpu
, 8 );
26500 DI opval
= tmp_tmp1
;
26501 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
26502 written
|= ( 1 << 11 );
26503 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26512 abuf
-> written
= written
;
26517 /* cmcpxis: cmcpxis$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
26520 SEM_FN_NAME ( frvbf
, cmcpxis
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
26522 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26523 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
26524 int UNUSED written
= 0 ;
26525 IADDR UNUSED pc
= abuf
-> addr
;
26526 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
26528 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
26529 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Sk
))) {
26536 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
26537 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
26538 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
26539 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
26544 tmp_tmp1
= MULDI ( EXTHIDI ( tmp_argihi
), EXTHIDI ( tmp_argjlo
));
26545 tmp_tmp2
= MULDI ( EXTHIDI ( tmp_argilo
), EXTHIDI ( tmp_argjhi
));
26546 tmp_tmp1
= ADDDI ( tmp_tmp1
, tmp_tmp2
);
26547 if ( GTDI ( tmp_tmp1
, MAKEDI ( 127 , 0xffffffff ))) {
26550 DI opval
= MAKEDI ( 127 , 0xffffffff );
26551 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
26552 written
|= ( 1 << 11 );
26553 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26555 frvbf_media_overflow ( current_cpu
, 8 );
26558 if ( LTDI ( tmp_tmp1
, MAKEDI ( 0xffffff80 , 0 ))) {
26561 DI opval
= MAKEDI ( 0xffffff80 , 0 );
26562 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
26563 written
|= ( 1 << 11 );
26564 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26566 frvbf_media_overflow ( current_cpu
, 8 );
26570 DI opval
= tmp_tmp1
;
26571 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
26572 written
|= ( 1 << 11 );
26573 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26582 abuf
-> written
= written
;
26587 /* cmcpxiu: cmcpxiu$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
26590 SEM_FN_NAME ( frvbf
, cmcpxiu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
26592 #define FLD(f) abuf->fields.sfmt_cmmachs.f
26593 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
26594 int UNUSED written
= 0 ;
26595 IADDR UNUSED pc
= abuf
-> addr
;
26596 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
26598 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
26599 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Sk
))) {
26606 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
26607 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
26608 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
26609 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
26614 tmp_tmp1
= MULDI ( ZEXTHIDI ( tmp_argihi
), ZEXTHIDI ( tmp_argjlo
));
26615 tmp_tmp2
= MULDI ( ZEXTHIDI ( tmp_argilo
), ZEXTHIDI ( tmp_argjhi
));
26616 tmp_tmp1
= ADDDI ( tmp_tmp1
, tmp_tmp2
);
26617 if ( GTDI ( tmp_tmp1
, MAKEDI ( 255 , 0xffffffff ))) {
26620 DI opval
= MAKEDI ( 255 , 0xffffffff );
26621 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
26622 written
|= ( 1 << 11 );
26623 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26625 frvbf_media_overflow ( current_cpu
, 8 );
26628 if ( LTDI ( tmp_tmp1
, MAKEDI ( 0 , 0 ))) {
26631 DI opval
= MAKEDI ( 0 , 0 );
26632 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
26633 written
|= ( 1 << 11 );
26634 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26636 frvbf_media_overflow ( current_cpu
, 8 );
26640 DI opval
= tmp_tmp1
;
26641 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
26642 written
|= ( 1 << 11 );
26643 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26652 abuf
-> written
= written
;
26657 /* mqcpxrs: mqcpxrs$pack $FRintieven,$FRintjeven,$ACC40Sk */
26660 SEM_FN_NAME ( frvbf
, mqcpxrs
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
26662 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
26663 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
26664 int UNUSED written
= 0 ;
26665 IADDR UNUSED pc
= abuf
-> addr
;
26666 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
26668 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Sk
))) {
26669 if ( ANDSI ( FLD ( f_ACC40Sk
), SUBSI ( 2 , 1 ))) {
26670 frvbf_media_acc_not_aligned ( current_cpu
);
26672 if ( ORIF ( ANDSI ( FLD ( f_FRi
), SUBSI ( 2 , 1 )), ANDSI ( FLD ( f_FRj
), SUBSI ( 2 , 1 )))) {
26673 frvbf_media_register_not_aligned ( current_cpu
);
26681 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
26682 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
26683 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
26684 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
26689 tmp_tmp1
= MULDI ( EXTHIDI ( tmp_argihi
), EXTHIDI ( tmp_argjhi
));
26690 tmp_tmp2
= MULDI ( EXTHIDI ( tmp_argilo
), EXTHIDI ( tmp_argjlo
));
26691 tmp_tmp1
= SUBDI ( tmp_tmp1
, tmp_tmp2
);
26692 if ( GTDI ( tmp_tmp1
, MAKEDI ( 127 , 0xffffffff ))) {
26695 DI opval
= MAKEDI ( 127 , 0xffffffff );
26696 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
26697 written
|= ( 1 << 13 );
26698 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26700 frvbf_media_overflow ( current_cpu
, 8 );
26703 if ( LTDI ( tmp_tmp1
, MAKEDI ( 0xffffff80 , 0 ))) {
26706 DI opval
= MAKEDI ( 0xffffff80 , 0 );
26707 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
26708 written
|= ( 1 << 13 );
26709 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26711 frvbf_media_overflow ( current_cpu
, 8 );
26715 DI opval
= tmp_tmp1
;
26716 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
26717 written
|= ( 1 << 13 );
26718 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26724 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
26725 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
26726 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
26727 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
26732 tmp_tmp1
= MULDI ( EXTHIDI ( tmp_argihi
), EXTHIDI ( tmp_argjhi
));
26733 tmp_tmp2
= MULDI ( EXTHIDI ( tmp_argilo
), EXTHIDI ( tmp_argjlo
));
26734 tmp_tmp1
= SUBDI ( tmp_tmp1
, tmp_tmp2
);
26735 if ( GTDI ( tmp_tmp1
, MAKEDI ( 127 , 0xffffffff ))) {
26738 DI opval
= MAKEDI ( 127 , 0xffffffff );
26739 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 1 )), opval
);
26740 written
|= ( 1 << 14 );
26741 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26743 frvbf_media_overflow ( current_cpu
, 4 );
26746 if ( LTDI ( tmp_tmp1
, MAKEDI ( 0xffffff80 , 0 ))) {
26749 DI opval
= MAKEDI ( 0xffffff80 , 0 );
26750 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 1 )), opval
);
26751 written
|= ( 1 << 14 );
26752 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26754 frvbf_media_overflow ( current_cpu
, 4 );
26758 DI opval
= tmp_tmp1
;
26759 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 1 )), opval
);
26760 written
|= ( 1 << 14 );
26761 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26771 abuf
-> written
= written
;
26776 /* mqcpxru: mqcpxru$pack $FRintieven,$FRintjeven,$ACC40Sk */
26779 SEM_FN_NAME ( frvbf
, mqcpxru
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
26781 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
26782 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
26783 int UNUSED written
= 0 ;
26784 IADDR UNUSED pc
= abuf
-> addr
;
26785 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
26787 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Sk
))) {
26788 if ( ANDSI ( FLD ( f_ACC40Sk
), SUBSI ( 2 , 1 ))) {
26789 frvbf_media_acc_not_aligned ( current_cpu
);
26791 if ( ORIF ( ANDSI ( FLD ( f_FRi
), SUBSI ( 2 , 1 )), ANDSI ( FLD ( f_FRj
), SUBSI ( 2 , 1 )))) {
26792 frvbf_media_register_not_aligned ( current_cpu
);
26800 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
26801 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
26802 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
26803 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
26808 tmp_tmp1
= MULDI ( ZEXTHIDI ( tmp_argihi
), ZEXTHIDI ( tmp_argjhi
));
26809 tmp_tmp2
= MULDI ( ZEXTHIDI ( tmp_argilo
), ZEXTHIDI ( tmp_argjlo
));
26810 tmp_tmp1
= SUBDI ( tmp_tmp1
, tmp_tmp2
);
26811 if ( GTDI ( tmp_tmp1
, MAKEDI ( 255 , 0xffffffff ))) {
26814 DI opval
= MAKEDI ( 255 , 0xffffffff );
26815 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
26816 written
|= ( 1 << 13 );
26817 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26819 frvbf_media_overflow ( current_cpu
, 8 );
26822 if ( LTDI ( tmp_tmp1
, MAKEDI ( 0 , 0 ))) {
26825 DI opval
= MAKEDI ( 0 , 0 );
26826 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
26827 written
|= ( 1 << 13 );
26828 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26830 frvbf_media_overflow ( current_cpu
, 8 );
26834 DI opval
= tmp_tmp1
;
26835 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
26836 written
|= ( 1 << 13 );
26837 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26843 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
26844 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
26845 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
26846 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
26851 tmp_tmp1
= MULDI ( ZEXTHIDI ( tmp_argihi
), ZEXTHIDI ( tmp_argjhi
));
26852 tmp_tmp2
= MULDI ( ZEXTHIDI ( tmp_argilo
), ZEXTHIDI ( tmp_argjlo
));
26853 tmp_tmp1
= SUBDI ( tmp_tmp1
, tmp_tmp2
);
26854 if ( GTDI ( tmp_tmp1
, MAKEDI ( 255 , 0xffffffff ))) {
26857 DI opval
= MAKEDI ( 255 , 0xffffffff );
26858 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 1 )), opval
);
26859 written
|= ( 1 << 14 );
26860 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26862 frvbf_media_overflow ( current_cpu
, 4 );
26865 if ( LTDI ( tmp_tmp1
, MAKEDI ( 0 , 0 ))) {
26868 DI opval
= MAKEDI ( 0 , 0 );
26869 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 1 )), opval
);
26870 written
|= ( 1 << 14 );
26871 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26873 frvbf_media_overflow ( current_cpu
, 4 );
26877 DI opval
= tmp_tmp1
;
26878 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 1 )), opval
);
26879 written
|= ( 1 << 14 );
26880 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26890 abuf
-> written
= written
;
26895 /* mqcpxis: mqcpxis$pack $FRintieven,$FRintjeven,$ACC40Sk */
26898 SEM_FN_NAME ( frvbf
, mqcpxis
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
26900 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
26901 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
26902 int UNUSED written
= 0 ;
26903 IADDR UNUSED pc
= abuf
-> addr
;
26904 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
26906 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Sk
))) {
26907 if ( ANDSI ( FLD ( f_ACC40Sk
), SUBSI ( 2 , 1 ))) {
26908 frvbf_media_acc_not_aligned ( current_cpu
);
26910 if ( ORIF ( ANDSI ( FLD ( f_FRi
), SUBSI ( 2 , 1 )), ANDSI ( FLD ( f_FRj
), SUBSI ( 2 , 1 )))) {
26911 frvbf_media_register_not_aligned ( current_cpu
);
26919 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
26920 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
26921 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
26922 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
26927 tmp_tmp1
= MULDI ( EXTHIDI ( tmp_argihi
), EXTHIDI ( tmp_argjlo
));
26928 tmp_tmp2
= MULDI ( EXTHIDI ( tmp_argilo
), EXTHIDI ( tmp_argjhi
));
26929 tmp_tmp1
= ADDDI ( tmp_tmp1
, tmp_tmp2
);
26930 if ( GTDI ( tmp_tmp1
, MAKEDI ( 127 , 0xffffffff ))) {
26933 DI opval
= MAKEDI ( 127 , 0xffffffff );
26934 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
26935 written
|= ( 1 << 13 );
26936 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26938 frvbf_media_overflow ( current_cpu
, 8 );
26941 if ( LTDI ( tmp_tmp1
, MAKEDI ( 0xffffff80 , 0 ))) {
26944 DI opval
= MAKEDI ( 0xffffff80 , 0 );
26945 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
26946 written
|= ( 1 << 13 );
26947 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26949 frvbf_media_overflow ( current_cpu
, 8 );
26953 DI opval
= tmp_tmp1
;
26954 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
26955 written
|= ( 1 << 13 );
26956 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26962 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
26963 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
26964 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
26965 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
26970 tmp_tmp1
= MULDI ( EXTHIDI ( tmp_argihi
), EXTHIDI ( tmp_argjlo
));
26971 tmp_tmp2
= MULDI ( EXTHIDI ( tmp_argilo
), EXTHIDI ( tmp_argjhi
));
26972 tmp_tmp1
= ADDDI ( tmp_tmp1
, tmp_tmp2
);
26973 if ( GTDI ( tmp_tmp1
, MAKEDI ( 127 , 0xffffffff ))) {
26976 DI opval
= MAKEDI ( 127 , 0xffffffff );
26977 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 1 )), opval
);
26978 written
|= ( 1 << 14 );
26979 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26981 frvbf_media_overflow ( current_cpu
, 4 );
26984 if ( LTDI ( tmp_tmp1
, MAKEDI ( 0xffffff80 , 0 ))) {
26987 DI opval
= MAKEDI ( 0xffffff80 , 0 );
26988 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 1 )), opval
);
26989 written
|= ( 1 << 14 );
26990 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
26992 frvbf_media_overflow ( current_cpu
, 4 );
26996 DI opval
= tmp_tmp1
;
26997 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 1 )), opval
);
26998 written
|= ( 1 << 14 );
26999 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
27009 abuf
-> written
= written
;
27014 /* mqcpxiu: mqcpxiu$pack $FRintieven,$FRintjeven,$ACC40Sk */
27017 SEM_FN_NAME ( frvbf
, mqcpxiu
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
27019 #define FLD(f) abuf->fields.sfmt_cmqmachs.f
27020 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
27021 int UNUSED written
= 0 ;
27022 IADDR UNUSED pc
= abuf
-> addr
;
27023 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
27025 if ( frvbf_check_acc_range ( current_cpu
, FLD ( f_ACC40Sk
))) {
27026 if ( ANDSI ( FLD ( f_ACC40Sk
), SUBSI ( 2 , 1 ))) {
27027 frvbf_media_acc_not_aligned ( current_cpu
);
27029 if ( ORIF ( ANDSI ( FLD ( f_FRi
), SUBSI ( 2 , 1 )), ANDSI ( FLD ( f_FRj
), SUBSI ( 2 , 1 )))) {
27030 frvbf_media_register_not_aligned ( current_cpu
);
27038 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
27039 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
27040 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
27041 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
27046 tmp_tmp1
= MULDI ( ZEXTHIDI ( tmp_argihi
), ZEXTHIDI ( tmp_argjlo
));
27047 tmp_tmp2
= MULDI ( ZEXTHIDI ( tmp_argilo
), ZEXTHIDI ( tmp_argjhi
));
27048 tmp_tmp1
= ADDDI ( tmp_tmp1
, tmp_tmp2
);
27049 if ( GTDI ( tmp_tmp1
, MAKEDI ( 255 , 0xffffffff ))) {
27052 DI opval
= MAKEDI ( 255 , 0xffffffff );
27053 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
27054 written
|= ( 1 << 13 );
27055 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
27057 frvbf_media_overflow ( current_cpu
, 8 );
27060 if ( LTDI ( tmp_tmp1
, MAKEDI ( 0 , 0 ))) {
27063 DI opval
= MAKEDI ( 0 , 0 );
27064 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
27065 written
|= ( 1 << 13 );
27066 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
27068 frvbf_media_overflow ( current_cpu
, 8 );
27072 DI opval
= tmp_tmp1
;
27073 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
27074 written
|= ( 1 << 13 );
27075 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
27081 tmp_argihi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
27082 tmp_argilo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRi
)), 0 ));
27083 tmp_argjhi
= ADDHI ( GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
27084 tmp_argjlo
= ADDHI ( GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 1 ))), MULSI ( GET_H_FR_INT ( FLD ( f_FRj
)), 0 ));
27089 tmp_tmp1
= MULDI ( ZEXTHIDI ( tmp_argihi
), ZEXTHIDI ( tmp_argjlo
));
27090 tmp_tmp2
= MULDI ( ZEXTHIDI ( tmp_argilo
), ZEXTHIDI ( tmp_argjhi
));
27091 tmp_tmp1
= ADDDI ( tmp_tmp1
, tmp_tmp2
);
27092 if ( GTDI ( tmp_tmp1
, MAKEDI ( 255 , 0xffffffff ))) {
27095 DI opval
= MAKEDI ( 255 , 0xffffffff );
27096 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 1 )), opval
);
27097 written
|= ( 1 << 14 );
27098 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
27100 frvbf_media_overflow ( current_cpu
, 4 );
27103 if ( LTDI ( tmp_tmp1
, MAKEDI ( 0 , 0 ))) {
27106 DI opval
= MAKEDI ( 0 , 0 );
27107 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 1 )), opval
);
27108 written
|= ( 1 << 14 );
27109 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
27111 frvbf_media_overflow ( current_cpu
, 4 );
27115 DI opval
= tmp_tmp1
;
27116 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, (( FLD ( f_ACC40Sk
)) + ( 1 )), opval
);
27117 written
|= ( 1 << 14 );
27118 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
27128 abuf
-> written
= written
;
27133 /* mexpdhw: mexpdhw$pack $FRinti,$u6,$FRintk */
27136 SEM_FN_NAME ( frvbf
, mexpdhw
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
27138 #define FLD(f) abuf->fields.sfmt_cmexpdhw.f
27139 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
27140 int UNUSED written
= 0 ;
27141 IADDR UNUSED pc
= abuf
-> addr
;
27142 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
27146 if ( ANDSI ( FLD ( f_u6
), 1 )) {
27147 tmp_tmp
= GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 )));
27149 tmp_tmp
= GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 )));
27152 UHI opval
= tmp_tmp
;
27153 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
27154 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
27157 UHI opval
= tmp_tmp
;
27158 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
27159 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
27167 /* cmexpdhw: cmexpdhw$pack $FRinti,$u6,$FRintk,$CCi,$cond */
27170 SEM_FN_NAME ( frvbf
, cmexpdhw
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
27172 #define FLD(f) abuf->fields.sfmt_cmexpdhw.f
27173 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
27174 int UNUSED written
= 0 ;
27175 IADDR UNUSED pc
= abuf
-> addr
;
27176 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
27178 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
27181 if ( ANDSI ( FLD ( f_u6
), 1 )) {
27182 tmp_tmp
= GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 )));
27184 tmp_tmp
= GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 )));
27187 UHI opval
= tmp_tmp
;
27188 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
27189 written
|= ( 1 << 7 );
27190 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
27193 UHI opval
= tmp_tmp
;
27194 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
27195 written
|= ( 1 << 8 );
27196 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
27201 abuf
-> written
= written
;
27206 /* mexpdhd: mexpdhd$pack $FRinti,$u6,$FRintkeven */
27209 SEM_FN_NAME ( frvbf
, mexpdhd
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
27211 #define FLD(f) abuf->fields.sfmt_cmexpdhd.f
27212 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
27213 int UNUSED written
= 0 ;
27214 IADDR UNUSED pc
= abuf
-> addr
;
27215 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
27217 if ( ANDSI ( FLD ( f_FRk
), SUBSI ( 2 , 1 ))) {
27218 frvbf_media_register_not_aligned ( current_cpu
);
27223 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRk
)));
27224 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
27225 written
|= ( 1 << 6 );
27226 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
27228 if ( ANDSI ( FLD ( f_u6
), 1 )) {
27229 tmp_tmp
= GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 )));
27231 tmp_tmp
= GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 )));
27234 UHI opval
= tmp_tmp
;
27235 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
27236 written
|= ( 1 << 7 );
27237 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
27240 UHI opval
= tmp_tmp
;
27241 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
27242 written
|= ( 1 << 9 );
27243 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
27246 UHI opval
= tmp_tmp
;
27247 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
27248 written
|= ( 1 << 8 );
27249 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
27252 UHI opval
= tmp_tmp
;
27253 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
27254 written
|= ( 1 << 10 );
27255 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
27260 abuf
-> written
= written
;
27265 /* cmexpdhd: cmexpdhd$pack $FRinti,$u6,$FRintkeven,$CCi,$cond */
27268 SEM_FN_NAME ( frvbf
, cmexpdhd
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
27270 #define FLD(f) abuf->fields.sfmt_cmexpdhd.f
27271 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
27272 int UNUSED written
= 0 ;
27273 IADDR UNUSED pc
= abuf
-> addr
;
27274 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
27276 if ( ANDSI ( FLD ( f_FRk
), SUBSI ( 2 , 1 ))) {
27277 frvbf_media_register_not_aligned ( current_cpu
);
27279 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
27283 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRk
)));
27284 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
27285 written
|= ( 1 << 8 );
27286 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
27288 if ( ANDSI ( FLD ( f_u6
), 1 )) {
27289 tmp_tmp
= GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 )));
27291 tmp_tmp
= GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 )));
27294 UHI opval
= tmp_tmp
;
27295 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
27296 written
|= ( 1 << 9 );
27297 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
27300 UHI opval
= tmp_tmp
;
27301 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
27302 written
|= ( 1 << 11 );
27303 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
27306 UHI opval
= tmp_tmp
;
27307 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
27308 written
|= ( 1 << 10 );
27309 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
27312 UHI opval
= tmp_tmp
;
27313 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
27314 written
|= ( 1 << 12 );
27315 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
27321 abuf
-> written
= written
;
27326 /* mpackh: mpackh$pack $FRinti,$FRintj,$FRintk */
27329 SEM_FN_NAME ( frvbf
, mpackh
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
27331 #define FLD(f) abuf->fields.sfmt_cmaddhss.f
27332 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
27333 int UNUSED written
= 0 ;
27334 IADDR UNUSED pc
= abuf
-> addr
;
27335 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
27339 UHI opval
= GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 )));
27340 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
27341 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
27344 UHI opval
= GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 )));
27345 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
27346 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
27354 /* mdpackh: mdpackh$pack $FRintieven,$FRintjeven,$FRintkeven */
27357 SEM_FN_NAME ( frvbf
, mdpackh
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
27359 #define FLD(f) abuf->fields.sfmt_mdpackh.f
27360 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
27361 int UNUSED written
= 0 ;
27362 IADDR UNUSED pc
= abuf
-> addr
;
27363 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
27365 if ( ORIF ( ANDSI ( FLD ( f_FRi
), SUBSI ( 2 , 1 )), ORIF ( ANDSI ( FLD ( f_FRj
), SUBSI ( 2 , 1 )), ANDSI ( FLD ( f_FRk
), SUBSI ( 2 , 1 ))))) {
27366 frvbf_media_register_not_aligned ( current_cpu
);
27370 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRi
)));
27371 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRi
), opval
);
27372 written
|= ( 1 << 10 );
27373 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
27376 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRj
)));
27377 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRj
), opval
);
27378 written
|= ( 1 << 11 );
27379 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
27382 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRk
)));
27383 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
27384 written
|= ( 1 << 12 );
27385 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
27389 UHI opval
= GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 )));
27390 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
27391 written
|= ( 1 << 13 );
27392 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
27395 UHI opval
= GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 )));
27396 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
27397 written
|= ( 1 << 15 );
27398 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
27403 UHI opval
= GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 1 )));
27404 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
27405 written
|= ( 1 << 14 );
27406 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
27409 UHI opval
= GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 1 )));
27410 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
27411 written
|= ( 1 << 16 );
27412 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
27418 abuf
-> written
= written
;
27423 /* munpackh: munpackh$pack $FRinti,$FRintkeven */
27426 SEM_FN_NAME ( frvbf
, munpackh
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
27428 #define FLD(f) abuf->fields.sfmt_munpackh.f
27429 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
27430 int UNUSED written
= 0 ;
27431 IADDR UNUSED pc
= abuf
-> addr
;
27432 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
27434 if ( ANDSI ( FLD ( f_FRk
), SUBSI ( 2 , 1 ))) {
27435 frvbf_media_register_not_aligned ( current_cpu
);
27439 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRi
)));
27440 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRi
), opval
);
27441 written
|= ( 1 << 6 );
27442 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
27445 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRk
)));
27446 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
27447 written
|= ( 1 << 7 );
27448 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
27452 UHI opval
= GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 )));
27453 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
27454 written
|= ( 1 << 8 );
27455 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
27458 UHI opval
= GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 )));
27459 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
27460 written
|= ( 1 << 10 );
27461 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
27464 UHI opval
= GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 )));
27465 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( ADDSI ( 0 , 1 ))), opval
);
27466 written
|= ( 1 << 9 );
27467 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
27470 UHI opval
= GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 )));
27471 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( ADDSI ( 0 , 1 ))), opval
);
27472 written
|= ( 1 << 11 );
27473 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
27479 abuf
-> written
= written
;
27484 /* mdunpackh: mdunpackh$pack $FRintieven,$FRintk */
27487 SEM_FN_NAME ( frvbf
, mdunpackh
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
27489 #define FLD(f) abuf->fields.sfmt_mdunpackh.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 );
27495 if ( ORIF ( ANDSI ( FLD ( f_FRi
), SUBSI ( 2 , 1 )), ANDSI ( FLD ( f_FRk
), SUBSI ( 4 , 1 )))) {
27496 frvbf_media_register_not_aligned ( current_cpu
);
27500 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRi
)));
27501 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRi
), opval
);
27502 written
|= ( 1 << 8 );
27503 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
27506 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRk
)));
27507 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
27508 written
|= ( 1 << 9 );
27509 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
27513 UHI opval
= GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 )));
27514 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
27515 written
|= ( 1 << 10 );
27516 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
27519 UHI opval
= GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 0 )));
27520 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
27521 written
|= ( 1 << 14 );
27522 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
27525 UHI opval
= GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 )));
27526 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( ADDSI ( 0 , 1 ))), opval
);
27527 written
|= ( 1 << 12 );
27528 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
27531 UHI opval
= GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 0 )));
27532 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( ADDSI ( 0 , 1 ))), opval
);
27533 written
|= ( 1 << 16 );
27534 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
27539 UHI opval
= GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 1 )));
27540 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 2 )), opval
);
27541 written
|= ( 1 << 11 );
27542 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
27545 UHI opval
= GET_H_FR_HI ((( FLD ( f_FRi
)) + ( 1 )));
27546 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 2 )), opval
);
27547 written
|= ( 1 << 15 );
27548 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
27551 UHI opval
= GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 1 )));
27552 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( ADDSI ( 2 , 1 ))), opval
);
27553 written
|= ( 1 << 13 );
27554 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
27557 UHI opval
= GET_H_FR_LO ((( FLD ( f_FRi
)) + ( 1 )));
27558 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( ADDSI ( 2 , 1 ))), opval
);
27559 written
|= ( 1 << 17 );
27560 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
27566 abuf
-> written
= written
;
27571 /* mbtoh: mbtoh$pack $FRintj,$FRintkeven */
27574 SEM_FN_NAME ( frvbf
, mbtoh
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
27576 #define FLD(f) abuf->fields.sfmt_cmbtoh.f
27577 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
27578 int UNUSED written
= 0 ;
27579 IADDR UNUSED pc
= abuf
-> addr
;
27580 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
27584 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRj
)));
27585 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRj
), opval
);
27586 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
27589 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRk
)));
27590 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
27591 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
27593 if ( ANDSI ( FLD ( f_FRk
), SUBSI ( 2 , 1 ))) {
27594 frvbf_media_register_not_aligned ( current_cpu
);
27598 UHI opval
= GET_H_FR_3 ((( FLD ( f_FRj
)) + ( 0 )));
27599 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
27600 written
|= ( 1 << 10 );
27601 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
27604 UHI opval
= GET_H_FR_2 ((( FLD ( f_FRj
)) + ( 0 )));
27605 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
27606 written
|= ( 1 << 12 );
27607 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
27610 UHI opval
= GET_H_FR_1 ((( FLD ( f_FRj
)) + ( 0 )));
27611 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
27612 written
|= ( 1 << 11 );
27613 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
27616 UHI opval
= GET_H_FR_0 ((( FLD ( f_FRj
)) + ( 0 )));
27617 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
27618 written
|= ( 1 << 13 );
27619 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
27625 abuf
-> written
= written
;
27630 /* cmbtoh: cmbtoh$pack $FRintj,$FRintkeven,$CCi,$cond */
27633 SEM_FN_NAME ( frvbf
, cmbtoh
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
27635 #define FLD(f) abuf->fields.sfmt_cmbtoh.f
27636 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
27637 int UNUSED written
= 0 ;
27638 IADDR UNUSED pc
= abuf
-> addr
;
27639 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
27643 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRj
)));
27644 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRj
), opval
);
27645 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
27648 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRk
)));
27649 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
27650 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
27652 if ( ANDSI ( FLD ( f_FRk
), SUBSI ( 2 , 1 ))) {
27653 frvbf_media_register_not_aligned ( current_cpu
);
27655 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
27658 UHI opval
= GET_H_FR_3 ((( FLD ( f_FRj
)) + ( 0 )));
27659 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
27660 written
|= ( 1 << 12 );
27661 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
27664 UHI opval
= GET_H_FR_2 ((( FLD ( f_FRj
)) + ( 0 )));
27665 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
27666 written
|= ( 1 << 14 );
27667 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
27670 UHI opval
= GET_H_FR_1 ((( FLD ( f_FRj
)) + ( 0 )));
27671 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
27672 written
|= ( 1 << 13 );
27673 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
27676 UHI opval
= GET_H_FR_0 ((( FLD ( f_FRj
)) + ( 0 )));
27677 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
27678 written
|= ( 1 << 15 );
27679 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
27686 abuf
-> written
= written
;
27691 /* mhtob: mhtob$pack $FRintjeven,$FRintk */
27694 SEM_FN_NAME ( frvbf
, mhtob
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
27696 #define FLD(f) abuf->fields.sfmt_cmhtob.f
27697 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
27698 int UNUSED written
= 0 ;
27699 IADDR UNUSED pc
= abuf
-> addr
;
27700 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
27704 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRj
)));
27705 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRj
), opval
);
27706 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
27709 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRk
)));
27710 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
27711 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
27713 if ( ANDSI ( FLD ( f_FRj
), SUBSI ( 2 , 1 ))) {
27714 frvbf_media_register_not_aligned ( current_cpu
);
27718 UHI opval
= GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 )));
27719 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_3_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
27720 written
|= ( 1 << 13 );
27721 TRACE_RESULT ( current_cpu
, abuf
, "fr_3" , 'x' , opval
);
27724 UHI opval
= GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 )));
27725 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_2_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
27726 written
|= ( 1 << 12 );
27727 TRACE_RESULT ( current_cpu
, abuf
, "fr_2" , 'x' , opval
);
27730 UHI opval
= GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 1 )));
27731 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_1_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
27732 written
|= ( 1 << 11 );
27733 TRACE_RESULT ( current_cpu
, abuf
, "fr_1" , 'x' , opval
);
27736 UHI opval
= GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 1 )));
27737 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_0_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
27738 written
|= ( 1 << 10 );
27739 TRACE_RESULT ( current_cpu
, abuf
, "fr_0" , 'x' , opval
);
27745 abuf
-> written
= written
;
27750 /* cmhtob: cmhtob$pack $FRintjeven,$FRintk,$CCi,$cond */
27753 SEM_FN_NAME ( frvbf
, cmhtob
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
27755 #define FLD(f) abuf->fields.sfmt_cmhtob.f
27756 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
27757 int UNUSED written
= 0 ;
27758 IADDR UNUSED pc
= abuf
-> addr
;
27759 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
27763 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRj
)));
27764 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRj
), opval
);
27765 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
27768 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRk
)));
27769 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
27770 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
27772 if ( ANDSI ( FLD ( f_FRj
), SUBSI ( 2 , 1 ))) {
27773 frvbf_media_register_not_aligned ( current_cpu
);
27775 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
27778 UHI opval
= GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 0 )));
27779 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_3_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
27780 written
|= ( 1 << 15 );
27781 TRACE_RESULT ( current_cpu
, abuf
, "fr_3" , 'x' , opval
);
27784 UHI opval
= GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 0 )));
27785 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_2_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
27786 written
|= ( 1 << 14 );
27787 TRACE_RESULT ( current_cpu
, abuf
, "fr_2" , 'x' , opval
);
27790 UHI opval
= GET_H_FR_HI ((( FLD ( f_FRj
)) + ( 1 )));
27791 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_1_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
27792 written
|= ( 1 << 13 );
27793 TRACE_RESULT ( current_cpu
, abuf
, "fr_1" , 'x' , opval
);
27796 UHI opval
= GET_H_FR_LO ((( FLD ( f_FRj
)) + ( 1 )));
27797 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_0_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
27798 written
|= ( 1 << 12 );
27799 TRACE_RESULT ( current_cpu
, abuf
, "fr_0" , 'x' , opval
);
27806 abuf
-> written
= written
;
27811 /* mbtohe: mbtohe$pack $FRintj,$FRintk */
27814 SEM_FN_NAME ( frvbf
, mbtohe
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
27816 #define FLD(f) abuf->fields.sfmt_cmbtohe.f
27817 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
27818 int UNUSED written
= 0 ;
27819 IADDR UNUSED pc
= abuf
-> addr
;
27820 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
27824 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRj
)));
27825 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRj
), opval
);
27826 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
27829 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRk
)));
27830 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
27831 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
27833 if ( ANDSI ( FLD ( f_FRk
), SUBSI ( 4 , 1 ))) {
27834 frvbf_media_register_not_aligned ( current_cpu
);
27838 UHI opval
= GET_H_FR_3 ((( FLD ( f_FRj
)) + ( 0 )));
27839 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
27840 written
|= ( 1 << 10 );
27841 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
27844 UHI opval
= GET_H_FR_3 ((( FLD ( f_FRj
)) + ( 0 )));
27845 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
27846 written
|= ( 1 << 14 );
27847 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
27850 UHI opval
= GET_H_FR_2 ((( FLD ( f_FRj
)) + ( 0 )));
27851 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
27852 written
|= ( 1 << 11 );
27853 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
27856 UHI opval
= GET_H_FR_2 ((( FLD ( f_FRj
)) + ( 0 )));
27857 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
27858 written
|= ( 1 << 15 );
27859 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
27862 UHI opval
= GET_H_FR_1 ((( FLD ( f_FRj
)) + ( 0 )));
27863 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 2 )), opval
);
27864 written
|= ( 1 << 12 );
27865 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
27868 UHI opval
= GET_H_FR_1 ((( FLD ( f_FRj
)) + ( 0 )));
27869 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 2 )), opval
);
27870 written
|= ( 1 << 16 );
27871 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
27874 UHI opval
= GET_H_FR_0 ((( FLD ( f_FRj
)) + ( 0 )));
27875 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 3 )), opval
);
27876 written
|= ( 1 << 13 );
27877 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
27880 UHI opval
= GET_H_FR_0 ((( FLD ( f_FRj
)) + ( 0 )));
27881 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 3 )), opval
);
27882 written
|= ( 1 << 17 );
27883 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
27889 abuf
-> written
= written
;
27894 /* cmbtohe: cmbtohe$pack $FRintj,$FRintk,$CCi,$cond */
27897 SEM_FN_NAME ( frvbf
, cmbtohe
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
27899 #define FLD(f) abuf->fields.sfmt_cmbtohe.f
27900 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
27901 int UNUSED written
= 0 ;
27902 IADDR UNUSED pc
= abuf
-> addr
;
27903 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
27907 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRj
)));
27908 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRj
), opval
);
27909 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
27912 SI opval
= frv_ref_SI ( GET_H_FR_INT ( FLD ( f_FRk
)));
27913 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
27914 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
27916 if ( ANDSI ( FLD ( f_FRk
), SUBSI ( 4 , 1 ))) {
27917 frvbf_media_register_not_aligned ( current_cpu
);
27919 if ( EQQI ( CPU ( h_cccr
[ FLD ( f_CCi
)]), ORSI ( FLD ( f_cond
), 2 ))) {
27922 UHI opval
= GET_H_FR_3 ((( FLD ( f_FRj
)) + ( 0 )));
27923 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
27924 written
|= ( 1 << 12 );
27925 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
27928 UHI opval
= GET_H_FR_3 ((( FLD ( f_FRj
)) + ( 0 )));
27929 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 0 )), opval
);
27930 written
|= ( 1 << 16 );
27931 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
27934 UHI opval
= GET_H_FR_2 ((( FLD ( f_FRj
)) + ( 0 )));
27935 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
27936 written
|= ( 1 << 13 );
27937 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
27940 UHI opval
= GET_H_FR_2 ((( FLD ( f_FRj
)) + ( 0 )));
27941 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 1 )), opval
);
27942 written
|= ( 1 << 17 );
27943 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
27946 UHI opval
= GET_H_FR_1 ((( FLD ( f_FRj
)) + ( 0 )));
27947 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 2 )), opval
);
27948 written
|= ( 1 << 14 );
27949 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
27952 UHI opval
= GET_H_FR_1 ((( FLD ( f_FRj
)) + ( 0 )));
27953 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 2 )), opval
);
27954 written
|= ( 1 << 18 );
27955 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
27958 UHI opval
= GET_H_FR_0 ((( FLD ( f_FRj
)) + ( 0 )));
27959 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_hi_set
, (( FLD ( f_FRk
)) + ( 3 )), opval
);
27960 written
|= ( 1 << 15 );
27961 TRACE_RESULT ( current_cpu
, abuf
, "fr_hi" , 'x' , opval
);
27964 UHI opval
= GET_H_FR_0 ((( FLD ( f_FRj
)) + ( 0 )));
27965 sim_queue_fn_hi_write ( current_cpu
, frvbf_h_fr_lo_set
, (( FLD ( f_FRk
)) + ( 3 )), opval
);
27966 written
|= ( 1 << 19 );
27967 TRACE_RESULT ( current_cpu
, abuf
, "fr_lo" , 'x' , opval
);
27974 abuf
-> written
= written
;
27979 /* mnop: mnop$pack */
27982 SEM_FN_NAME ( frvbf
, mnop
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
27984 #define FLD(f) abuf->fields.fmt_empty.f
27985 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
27986 int UNUSED written
= 0 ;
27987 IADDR UNUSED pc
= abuf
-> addr
;
27988 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
27990 (( void ) 0 ); /*nop*/
27996 /* mclracc-0: mclracc$pack $ACC40Sk,$A0 */
27999 SEM_FN_NAME ( frvbf
, mclracc_0
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
28001 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
28002 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
28003 int UNUSED written
= 0 ;
28004 IADDR UNUSED pc
= abuf
-> addr
;
28005 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
28007 frvbf_clear_accumulators ( current_cpu
, FLD ( f_ACC40Sk
), 0 );
28013 /* mclracc-1: mclracc$pack $ACC40Sk,$A1 */
28016 SEM_FN_NAME ( frvbf
, mclracc_1
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
28018 #define FLD(f) abuf->fields.sfmt_mdasaccs.f
28019 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
28020 int UNUSED written
= 0 ;
28021 IADDR UNUSED pc
= abuf
-> addr
;
28022 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
28024 frvbf_clear_accumulators ( current_cpu
, FLD ( f_ACC40Sk
), 1 );
28030 /* mrdacc: mrdacc$pack $ACC40Si,$FRintk */
28033 SEM_FN_NAME ( frvbf
, mrdacc
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
28035 #define FLD(f) abuf->fields.sfmt_mcuti.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 );
28042 SI opval
= GET_H_ACC40S ( FLD ( f_ACC40Si
));
28043 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
28044 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
28051 /* mrdaccg: mrdaccg$pack $ACCGi,$FRintk */
28054 SEM_FN_NAME ( frvbf
, mrdaccg
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
28056 #define FLD(f) abuf->fields.sfmt_mrdaccg.f
28057 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
28058 int UNUSED written
= 0 ;
28059 IADDR UNUSED pc
= abuf
-> addr
;
28060 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
28063 SI opval
= GET_H_ACCG ( FLD ( f_ACCGi
));
28064 sim_queue_fn_si_write ( current_cpu
, frvbf_h_fr_int_set
, FLD ( f_FRk
), opval
);
28065 TRACE_RESULT ( current_cpu
, abuf
, "fr_int" , 'x' , opval
);
28072 /* mwtacc: mwtacc$pack $FRinti,$ACC40Sk */
28075 SEM_FN_NAME ( frvbf
, mwtacc
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
28077 #define FLD(f) abuf->fields.sfmt_cmmachs.f
28078 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
28079 int UNUSED written
= 0 ;
28080 IADDR UNUSED pc
= abuf
-> addr
;
28081 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
28084 DI opval
= ORDI ( ANDDI ( GET_H_ACC40S ( FLD ( f_ACC40Sk
)), MAKEDI ( 0xffffffff , 0 )), GET_H_FR_INT ( FLD ( f_FRi
)));
28085 sim_queue_fn_di_write ( current_cpu
, frvbf_h_acc40S_set
, FLD ( f_ACC40Sk
), opval
);
28086 TRACE_RESULT ( current_cpu
, abuf
, "acc40S" , 'D' , opval
);
28093 /* mwtaccg: mwtaccg$pack $FRinti,$ACCGk */
28096 SEM_FN_NAME ( frvbf
, mwtaccg
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
28098 #define FLD(f) abuf->fields.sfmt_mwtaccg.f
28099 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
28100 int UNUSED written
= 0 ;
28101 IADDR UNUSED pc
= abuf
-> addr
;
28102 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
28105 frv_ref_SI ( GET_H_ACCG ( FLD ( f_ACCGk
)));
28107 USI opval
= GET_H_FR_INT ( FLD ( f_FRi
));
28108 sim_queue_fn_si_write ( current_cpu
, frvbf_h_accg_set
, FLD ( f_ACCGk
), opval
);
28109 TRACE_RESULT ( current_cpu
, abuf
, "accg" , 'x' , opval
);
28117 /* mcop1: mcop1$pack $FRi,$FRj,$FRk */
28120 SEM_FN_NAME ( frvbf
, mcop1
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
28122 #define FLD(f) abuf->fields.fmt_empty.f
28123 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
28124 int UNUSED written
= 0 ;
28125 IADDR UNUSED pc
= abuf
-> addr
;
28126 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
28128 frvbf_media_cop ( current_cpu
, 1 );
28134 /* mcop2: mcop2$pack $FRi,$FRj,$FRk */
28137 SEM_FN_NAME ( frvbf
, mcop2
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
28139 #define FLD(f) abuf->fields.fmt_empty.f
28140 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
28141 int UNUSED written
= 0 ;
28142 IADDR UNUSED pc
= abuf
-> addr
;
28143 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
28145 frvbf_media_cop ( current_cpu
, 2 );
28151 /* fnop: fnop$pack */
28154 SEM_FN_NAME ( frvbf
, fnop
) ( SIM_CPU
* current_cpu
, SEM_ARG sem_arg
)
28156 #define FLD(f) abuf->fields.fmt_empty.f
28157 ARGBUF
* abuf
= SEM_ARGBUF ( sem_arg
);
28158 int UNUSED written
= 0 ;
28159 IADDR UNUSED pc
= abuf
-> addr
;
28160 SEM_PC vpc
= SEM_NEXT_VPC ( sem_arg
, pc
, 4 );
28162 (( void ) 0 ); /*nop*/
28168 /* Table of all semantic fns. */
28170 static const struct sem_fn_desc sem_fns
[] = {
28171 { FRVBF_INSN_X_INVALID
, SEM_FN_NAME ( frvbf
, x_invalid
) },
28172 { FRVBF_INSN_X_AFTER
, SEM_FN_NAME ( frvbf
, x_after
) },
28173 { FRVBF_INSN_X_BEFORE
, SEM_FN_NAME ( frvbf
, x_before
) },
28174 { FRVBF_INSN_X_CTI_CHAIN
, SEM_FN_NAME ( frvbf
, x_cti_chain
) },
28175 { FRVBF_INSN_X_CHAIN
, SEM_FN_NAME ( frvbf
, x_chain
) },
28176 { FRVBF_INSN_X_BEGIN
, SEM_FN_NAME ( frvbf
, x_begin
) },
28177 { FRVBF_INSN_ADD
, SEM_FN_NAME ( frvbf
, add
) },
28178 { FRVBF_INSN_SUB
, SEM_FN_NAME ( frvbf
, sub
) },
28179 { FRVBF_INSN_AND
, SEM_FN_NAME ( frvbf
, and ) },
28180 { FRVBF_INSN_OR
, SEM_FN_NAME ( frvbf
, or ) },
28181 { FRVBF_INSN_XOR
, SEM_FN_NAME ( frvbf
, xor ) },
28182 { FRVBF_INSN_NOT
, SEM_FN_NAME ( frvbf
, not ) },
28183 { FRVBF_INSN_SDIV
, SEM_FN_NAME ( frvbf
, sdiv
) },
28184 { FRVBF_INSN_NSDIV
, SEM_FN_NAME ( frvbf
, nsdiv
) },
28185 { FRVBF_INSN_UDIV
, SEM_FN_NAME ( frvbf
, udiv
) },
28186 { FRVBF_INSN_NUDIV
, SEM_FN_NAME ( frvbf
, nudiv
) },
28187 { FRVBF_INSN_SMUL
, SEM_FN_NAME ( frvbf
, smul
) },
28188 { FRVBF_INSN_UMUL
, SEM_FN_NAME ( frvbf
, umul
) },
28189 { FRVBF_INSN_SMU
, SEM_FN_NAME ( frvbf
, smu
) },
28190 { FRVBF_INSN_SMASS
, SEM_FN_NAME ( frvbf
, smass
) },
28191 { FRVBF_INSN_SMSSS
, SEM_FN_NAME ( frvbf
, smsss
) },
28192 { FRVBF_INSN_SLL
, SEM_FN_NAME ( frvbf
, sll
) },
28193 { FRVBF_INSN_SRL
, SEM_FN_NAME ( frvbf
, srl
) },
28194 { FRVBF_INSN_SRA
, SEM_FN_NAME ( frvbf
, sra
) },
28195 { FRVBF_INSN_SLASS
, SEM_FN_NAME ( frvbf
, slass
) },
28196 { FRVBF_INSN_SCUTSS
, SEM_FN_NAME ( frvbf
, scutss
) },
28197 { FRVBF_INSN_SCAN
, SEM_FN_NAME ( frvbf
, scan
) },
28198 { FRVBF_INSN_CADD
, SEM_FN_NAME ( frvbf
, cadd
) },
28199 { FRVBF_INSN_CSUB
, SEM_FN_NAME ( frvbf
, csub
) },
28200 { FRVBF_INSN_CAND
, SEM_FN_NAME ( frvbf
, cand
) },
28201 { FRVBF_INSN_COR
, SEM_FN_NAME ( frvbf
, cor
) },
28202 { FRVBF_INSN_CXOR
, SEM_FN_NAME ( frvbf
, cxor
) },
28203 { FRVBF_INSN_CNOT
, SEM_FN_NAME ( frvbf
, cnot
) },
28204 { FRVBF_INSN_CSMUL
, SEM_FN_NAME ( frvbf
, csmul
) },
28205 { FRVBF_INSN_CSDIV
, SEM_FN_NAME ( frvbf
, csdiv
) },
28206 { FRVBF_INSN_CUDIV
, SEM_FN_NAME ( frvbf
, cudiv
) },
28207 { FRVBF_INSN_CSLL
, SEM_FN_NAME ( frvbf
, csll
) },
28208 { FRVBF_INSN_CSRL
, SEM_FN_NAME ( frvbf
, csrl
) },
28209 { FRVBF_INSN_CSRA
, SEM_FN_NAME ( frvbf
, csra
) },
28210 { FRVBF_INSN_CSCAN
, SEM_FN_NAME ( frvbf
, cscan
) },
28211 { FRVBF_INSN_ADDCC
, SEM_FN_NAME ( frvbf
, addcc
) },
28212 { FRVBF_INSN_SUBCC
, SEM_FN_NAME ( frvbf
, subcc
) },
28213 { FRVBF_INSN_ANDCC
, SEM_FN_NAME ( frvbf
, andcc
) },
28214 { FRVBF_INSN_ORCC
, SEM_FN_NAME ( frvbf
, orcc
) },
28215 { FRVBF_INSN_XORCC
, SEM_FN_NAME ( frvbf
, xorcc
) },
28216 { FRVBF_INSN_SLLCC
, SEM_FN_NAME ( frvbf
, sllcc
) },
28217 { FRVBF_INSN_SRLCC
, SEM_FN_NAME ( frvbf
, srlcc
) },
28218 { FRVBF_INSN_SRACC
, SEM_FN_NAME ( frvbf
, sracc
) },
28219 { FRVBF_INSN_SMULCC
, SEM_FN_NAME ( frvbf
, smulcc
) },
28220 { FRVBF_INSN_UMULCC
, SEM_FN_NAME ( frvbf
, umulcc
) },
28221 { FRVBF_INSN_CADDCC
, SEM_FN_NAME ( frvbf
, caddcc
) },
28222 { FRVBF_INSN_CSUBCC
, SEM_FN_NAME ( frvbf
, csubcc
) },
28223 { FRVBF_INSN_CSMULCC
, SEM_FN_NAME ( frvbf
, csmulcc
) },
28224 { FRVBF_INSN_CANDCC
, SEM_FN_NAME ( frvbf
, candcc
) },
28225 { FRVBF_INSN_CORCC
, SEM_FN_NAME ( frvbf
, corcc
) },
28226 { FRVBF_INSN_CXORCC
, SEM_FN_NAME ( frvbf
, cxorcc
) },
28227 { FRVBF_INSN_CSLLCC
, SEM_FN_NAME ( frvbf
, csllcc
) },
28228 { FRVBF_INSN_CSRLCC
, SEM_FN_NAME ( frvbf
, csrlcc
) },
28229 { FRVBF_INSN_CSRACC
, SEM_FN_NAME ( frvbf
, csracc
) },
28230 { FRVBF_INSN_ADDX
, SEM_FN_NAME ( frvbf
, addx
) },
28231 { FRVBF_INSN_SUBX
, SEM_FN_NAME ( frvbf
, subx
) },
28232 { FRVBF_INSN_ADDXCC
, SEM_FN_NAME ( frvbf
, addxcc
) },
28233 { FRVBF_INSN_SUBXCC
, SEM_FN_NAME ( frvbf
, subxcc
) },
28234 { FRVBF_INSN_ADDSS
, SEM_FN_NAME ( frvbf
, addss
) },
28235 { FRVBF_INSN_SUBSS
, SEM_FN_NAME ( frvbf
, subss
) },
28236 { FRVBF_INSN_ADDI
, SEM_FN_NAME ( frvbf
, addi
) },
28237 { FRVBF_INSN_SUBI
, SEM_FN_NAME ( frvbf
, subi
) },
28238 { FRVBF_INSN_ANDI
, SEM_FN_NAME ( frvbf
, andi
) },
28239 { FRVBF_INSN_ORI
, SEM_FN_NAME ( frvbf
, ori
) },
28240 { FRVBF_INSN_XORI
, SEM_FN_NAME ( frvbf
, xori
) },
28241 { FRVBF_INSN_SDIVI
, SEM_FN_NAME ( frvbf
, sdivi
) },
28242 { FRVBF_INSN_NSDIVI
, SEM_FN_NAME ( frvbf
, nsdivi
) },
28243 { FRVBF_INSN_UDIVI
, SEM_FN_NAME ( frvbf
, udivi
) },
28244 { FRVBF_INSN_NUDIVI
, SEM_FN_NAME ( frvbf
, nudivi
) },
28245 { FRVBF_INSN_SMULI
, SEM_FN_NAME ( frvbf
, smuli
) },
28246 { FRVBF_INSN_UMULI
, SEM_FN_NAME ( frvbf
, umuli
) },
28247 { FRVBF_INSN_SLLI
, SEM_FN_NAME ( frvbf
, slli
) },
28248 { FRVBF_INSN_SRLI
, SEM_FN_NAME ( frvbf
, srli
) },
28249 { FRVBF_INSN_SRAI
, SEM_FN_NAME ( frvbf
, srai
) },
28250 { FRVBF_INSN_SCANI
, SEM_FN_NAME ( frvbf
, scani
) },
28251 { FRVBF_INSN_ADDICC
, SEM_FN_NAME ( frvbf
, addicc
) },
28252 { FRVBF_INSN_SUBICC
, SEM_FN_NAME ( frvbf
, subicc
) },
28253 { FRVBF_INSN_ANDICC
, SEM_FN_NAME ( frvbf
, andicc
) },
28254 { FRVBF_INSN_ORICC
, SEM_FN_NAME ( frvbf
, oricc
) },
28255 { FRVBF_INSN_XORICC
, SEM_FN_NAME ( frvbf
, xoricc
) },
28256 { FRVBF_INSN_SMULICC
, SEM_FN_NAME ( frvbf
, smulicc
) },
28257 { FRVBF_INSN_UMULICC
, SEM_FN_NAME ( frvbf
, umulicc
) },
28258 { FRVBF_INSN_SLLICC
, SEM_FN_NAME ( frvbf
, sllicc
) },
28259 { FRVBF_INSN_SRLICC
, SEM_FN_NAME ( frvbf
, srlicc
) },
28260 { FRVBF_INSN_SRAICC
, SEM_FN_NAME ( frvbf
, sraicc
) },
28261 { FRVBF_INSN_ADDXI
, SEM_FN_NAME ( frvbf
, addxi
) },
28262 { FRVBF_INSN_SUBXI
, SEM_FN_NAME ( frvbf
, subxi
) },
28263 { FRVBF_INSN_ADDXICC
, SEM_FN_NAME ( frvbf
, addxicc
) },
28264 { FRVBF_INSN_SUBXICC
, SEM_FN_NAME ( frvbf
, subxicc
) },
28265 { FRVBF_INSN_CMPB
, SEM_FN_NAME ( frvbf
, cmpb
) },
28266 { FRVBF_INSN_CMPBA
, SEM_FN_NAME ( frvbf
, cmpba
) },
28267 { FRVBF_INSN_SETLO
, SEM_FN_NAME ( frvbf
, setlo
) },
28268 { FRVBF_INSN_SETHI
, SEM_FN_NAME ( frvbf
, sethi
) },
28269 { FRVBF_INSN_SETLOS
, SEM_FN_NAME ( frvbf
, setlos
) },
28270 { FRVBF_INSN_LDSB
, SEM_FN_NAME ( frvbf
, ldsb
) },
28271 { FRVBF_INSN_LDUB
, SEM_FN_NAME ( frvbf
, ldub
) },
28272 { FRVBF_INSN_LDSH
, SEM_FN_NAME ( frvbf
, ldsh
) },
28273 { FRVBF_INSN_LDUH
, SEM_FN_NAME ( frvbf
, lduh
) },
28274 { FRVBF_INSN_LD
, SEM_FN_NAME ( frvbf
, ld
) },
28275 { FRVBF_INSN_LDBF
, SEM_FN_NAME ( frvbf
, ldbf
) },
28276 { FRVBF_INSN_LDHF
, SEM_FN_NAME ( frvbf
, ldhf
) },
28277 { FRVBF_INSN_LDF
, SEM_FN_NAME ( frvbf
, ldf
) },
28278 { FRVBF_INSN_LDC
, SEM_FN_NAME ( frvbf
, ldc
) },
28279 { FRVBF_INSN_NLDSB
, SEM_FN_NAME ( frvbf
, nldsb
) },
28280 { FRVBF_INSN_NLDUB
, SEM_FN_NAME ( frvbf
, nldub
) },
28281 { FRVBF_INSN_NLDSH
, SEM_FN_NAME ( frvbf
, nldsh
) },
28282 { FRVBF_INSN_NLDUH
, SEM_FN_NAME ( frvbf
, nlduh
) },
28283 { FRVBF_INSN_NLD
, SEM_FN_NAME ( frvbf
, nld
) },
28284 { FRVBF_INSN_NLDBF
, SEM_FN_NAME ( frvbf
, nldbf
) },
28285 { FRVBF_INSN_NLDHF
, SEM_FN_NAME ( frvbf
, nldhf
) },
28286 { FRVBF_INSN_NLDF
, SEM_FN_NAME ( frvbf
, nldf
) },
28287 { FRVBF_INSN_LDD
, SEM_FN_NAME ( frvbf
, ldd
) },
28288 { FRVBF_INSN_LDDF
, SEM_FN_NAME ( frvbf
, lddf
) },
28289 { FRVBF_INSN_LDDC
, SEM_FN_NAME ( frvbf
, lddc
) },
28290 { FRVBF_INSN_NLDD
, SEM_FN_NAME ( frvbf
, nldd
) },
28291 { FRVBF_INSN_NLDDF
, SEM_FN_NAME ( frvbf
, nlddf
) },
28292 { FRVBF_INSN_LDQ
, SEM_FN_NAME ( frvbf
, ldq
) },
28293 { FRVBF_INSN_LDQF
, SEM_FN_NAME ( frvbf
, ldqf
) },
28294 { FRVBF_INSN_LDQC
, SEM_FN_NAME ( frvbf
, ldqc
) },
28295 { FRVBF_INSN_NLDQ
, SEM_FN_NAME ( frvbf
, nldq
) },
28296 { FRVBF_INSN_NLDQF
, SEM_FN_NAME ( frvbf
, nldqf
) },
28297 { FRVBF_INSN_LDSBU
, SEM_FN_NAME ( frvbf
, ldsbu
) },
28298 { FRVBF_INSN_LDUBU
, SEM_FN_NAME ( frvbf
, ldubu
) },
28299 { FRVBF_INSN_LDSHU
, SEM_FN_NAME ( frvbf
, ldshu
) },
28300 { FRVBF_INSN_LDUHU
, SEM_FN_NAME ( frvbf
, lduhu
) },
28301 { FRVBF_INSN_LDU
, SEM_FN_NAME ( frvbf
, ldu
) },
28302 { FRVBF_INSN_NLDSBU
, SEM_FN_NAME ( frvbf
, nldsbu
) },
28303 { FRVBF_INSN_NLDUBU
, SEM_FN_NAME ( frvbf
, nldubu
) },
28304 { FRVBF_INSN_NLDSHU
, SEM_FN_NAME ( frvbf
, nldshu
) },
28305 { FRVBF_INSN_NLDUHU
, SEM_FN_NAME ( frvbf
, nlduhu
) },
28306 { FRVBF_INSN_NLDU
, SEM_FN_NAME ( frvbf
, nldu
) },
28307 { FRVBF_INSN_LDBFU
, SEM_FN_NAME ( frvbf
, ldbfu
) },
28308 { FRVBF_INSN_LDHFU
, SEM_FN_NAME ( frvbf
, ldhfu
) },
28309 { FRVBF_INSN_LDFU
, SEM_FN_NAME ( frvbf
, ldfu
) },
28310 { FRVBF_INSN_LDCU
, SEM_FN_NAME ( frvbf
, ldcu
) },
28311 { FRVBF_INSN_NLDBFU
, SEM_FN_NAME ( frvbf
, nldbfu
) },
28312 { FRVBF_INSN_NLDHFU
, SEM_FN_NAME ( frvbf
, nldhfu
) },
28313 { FRVBF_INSN_NLDFU
, SEM_FN_NAME ( frvbf
, nldfu
) },
28314 { FRVBF_INSN_LDDU
, SEM_FN_NAME ( frvbf
, lddu
) },
28315 { FRVBF_INSN_NLDDU
, SEM_FN_NAME ( frvbf
, nlddu
) },
28316 { FRVBF_INSN_LDDFU
, SEM_FN_NAME ( frvbf
, lddfu
) },
28317 { FRVBF_INSN_LDDCU
, SEM_FN_NAME ( frvbf
, lddcu
) },
28318 { FRVBF_INSN_NLDDFU
, SEM_FN_NAME ( frvbf
, nlddfu
) },
28319 { FRVBF_INSN_LDQU
, SEM_FN_NAME ( frvbf
, ldqu
) },
28320 { FRVBF_INSN_NLDQU
, SEM_FN_NAME ( frvbf
, nldqu
) },
28321 { FRVBF_INSN_LDQFU
, SEM_FN_NAME ( frvbf
, ldqfu
) },
28322 { FRVBF_INSN_LDQCU
, SEM_FN_NAME ( frvbf
, ldqcu
) },
28323 { FRVBF_INSN_NLDQFU
, SEM_FN_NAME ( frvbf
, nldqfu
) },
28324 { FRVBF_INSN_LDSBI
, SEM_FN_NAME ( frvbf
, ldsbi
) },
28325 { FRVBF_INSN_LDSHI
, SEM_FN_NAME ( frvbf
, ldshi
) },
28326 { FRVBF_INSN_LDI
, SEM_FN_NAME ( frvbf
, ldi
) },
28327 { FRVBF_INSN_LDUBI
, SEM_FN_NAME ( frvbf
, ldubi
) },
28328 { FRVBF_INSN_LDUHI
, SEM_FN_NAME ( frvbf
, lduhi
) },
28329 { FRVBF_INSN_LDBFI
, SEM_FN_NAME ( frvbf
, ldbfi
) },
28330 { FRVBF_INSN_LDHFI
, SEM_FN_NAME ( frvbf
, ldhfi
) },
28331 { FRVBF_INSN_LDFI
, SEM_FN_NAME ( frvbf
, ldfi
) },
28332 { FRVBF_INSN_NLDSBI
, SEM_FN_NAME ( frvbf
, nldsbi
) },
28333 { FRVBF_INSN_NLDUBI
, SEM_FN_NAME ( frvbf
, nldubi
) },
28334 { FRVBF_INSN_NLDSHI
, SEM_FN_NAME ( frvbf
, nldshi
) },
28335 { FRVBF_INSN_NLDUHI
, SEM_FN_NAME ( frvbf
, nlduhi
) },
28336 { FRVBF_INSN_NLDI
, SEM_FN_NAME ( frvbf
, nldi
) },
28337 { FRVBF_INSN_NLDBFI
, SEM_FN_NAME ( frvbf
, nldbfi
) },
28338 { FRVBF_INSN_NLDHFI
, SEM_FN_NAME ( frvbf
, nldhfi
) },
28339 { FRVBF_INSN_NLDFI
, SEM_FN_NAME ( frvbf
, nldfi
) },
28340 { FRVBF_INSN_LDDI
, SEM_FN_NAME ( frvbf
, lddi
) },
28341 { FRVBF_INSN_LDDFI
, SEM_FN_NAME ( frvbf
, lddfi
) },
28342 { FRVBF_INSN_NLDDI
, SEM_FN_NAME ( frvbf
, nlddi
) },
28343 { FRVBF_INSN_NLDDFI
, SEM_FN_NAME ( frvbf
, nlddfi
) },
28344 { FRVBF_INSN_LDQI
, SEM_FN_NAME ( frvbf
, ldqi
) },
28345 { FRVBF_INSN_LDQFI
, SEM_FN_NAME ( frvbf
, ldqfi
) },
28346 { FRVBF_INSN_NLDQFI
, SEM_FN_NAME ( frvbf
, nldqfi
) },
28347 { FRVBF_INSN_STB
, SEM_FN_NAME ( frvbf
, stb
) },
28348 { FRVBF_INSN_STH
, SEM_FN_NAME ( frvbf
, sth
) },
28349 { FRVBF_INSN_ST
, SEM_FN_NAME ( frvbf
, st
) },
28350 { FRVBF_INSN_STBF
, SEM_FN_NAME ( frvbf
, stbf
) },
28351 { FRVBF_INSN_STHF
, SEM_FN_NAME ( frvbf
, sthf
) },
28352 { FRVBF_INSN_STF
, SEM_FN_NAME ( frvbf
, stf
) },
28353 { FRVBF_INSN_STC
, SEM_FN_NAME ( frvbf
, stc
) },
28354 { FRVBF_INSN_STD
, SEM_FN_NAME ( frvbf
, std
) },
28355 { FRVBF_INSN_STDF
, SEM_FN_NAME ( frvbf
, stdf
) },
28356 { FRVBF_INSN_STDC
, SEM_FN_NAME ( frvbf
, stdc
) },
28357 { FRVBF_INSN_STQ
, SEM_FN_NAME ( frvbf
, stq
) },
28358 { FRVBF_INSN_STQF
, SEM_FN_NAME ( frvbf
, stqf
) },
28359 { FRVBF_INSN_STQC
, SEM_FN_NAME ( frvbf
, stqc
) },
28360 { FRVBF_INSN_STBU
, SEM_FN_NAME ( frvbf
, stbu
) },
28361 { FRVBF_INSN_STHU
, SEM_FN_NAME ( frvbf
, sthu
) },
28362 { FRVBF_INSN_STU
, SEM_FN_NAME ( frvbf
, stu
) },
28363 { FRVBF_INSN_STBFU
, SEM_FN_NAME ( frvbf
, stbfu
) },
28364 { FRVBF_INSN_STHFU
, SEM_FN_NAME ( frvbf
, sthfu
) },
28365 { FRVBF_INSN_STFU
, SEM_FN_NAME ( frvbf
, stfu
) },
28366 { FRVBF_INSN_STCU
, SEM_FN_NAME ( frvbf
, stcu
) },
28367 { FRVBF_INSN_STDU
, SEM_FN_NAME ( frvbf
, stdu
) },
28368 { FRVBF_INSN_STDFU
, SEM_FN_NAME ( frvbf
, stdfu
) },
28369 { FRVBF_INSN_STDCU
, SEM_FN_NAME ( frvbf
, stdcu
) },
28370 { FRVBF_INSN_STQU
, SEM_FN_NAME ( frvbf
, stqu
) },
28371 { FRVBF_INSN_STQFU
, SEM_FN_NAME ( frvbf
, stqfu
) },
28372 { FRVBF_INSN_STQCU
, SEM_FN_NAME ( frvbf
, stqcu
) },
28373 { FRVBF_INSN_CLDSB
, SEM_FN_NAME ( frvbf
, cldsb
) },
28374 { FRVBF_INSN_CLDUB
, SEM_FN_NAME ( frvbf
, cldub
) },
28375 { FRVBF_INSN_CLDSH
, SEM_FN_NAME ( frvbf
, cldsh
) },
28376 { FRVBF_INSN_CLDUH
, SEM_FN_NAME ( frvbf
, clduh
) },
28377 { FRVBF_INSN_CLD
, SEM_FN_NAME ( frvbf
, cld
) },
28378 { FRVBF_INSN_CLDBF
, SEM_FN_NAME ( frvbf
, cldbf
) },
28379 { FRVBF_INSN_CLDHF
, SEM_FN_NAME ( frvbf
, cldhf
) },
28380 { FRVBF_INSN_CLDF
, SEM_FN_NAME ( frvbf
, cldf
) },
28381 { FRVBF_INSN_CLDD
, SEM_FN_NAME ( frvbf
, cldd
) },
28382 { FRVBF_INSN_CLDDF
, SEM_FN_NAME ( frvbf
, clddf
) },
28383 { FRVBF_INSN_CLDQ
, SEM_FN_NAME ( frvbf
, cldq
) },
28384 { FRVBF_INSN_CLDSBU
, SEM_FN_NAME ( frvbf
, cldsbu
) },
28385 { FRVBF_INSN_CLDUBU
, SEM_FN_NAME ( frvbf
, cldubu
) },
28386 { FRVBF_INSN_CLDSHU
, SEM_FN_NAME ( frvbf
, cldshu
) },
28387 { FRVBF_INSN_CLDUHU
, SEM_FN_NAME ( frvbf
, clduhu
) },
28388 { FRVBF_INSN_CLDU
, SEM_FN_NAME ( frvbf
, cldu
) },
28389 { FRVBF_INSN_CLDBFU
, SEM_FN_NAME ( frvbf
, cldbfu
) },
28390 { FRVBF_INSN_CLDHFU
, SEM_FN_NAME ( frvbf
, cldhfu
) },
28391 { FRVBF_INSN_CLDFU
, SEM_FN_NAME ( frvbf
, cldfu
) },
28392 { FRVBF_INSN_CLDDU
, SEM_FN_NAME ( frvbf
, clddu
) },
28393 { FRVBF_INSN_CLDDFU
, SEM_FN_NAME ( frvbf
, clddfu
) },
28394 { FRVBF_INSN_CLDQU
, SEM_FN_NAME ( frvbf
, cldqu
) },
28395 { FRVBF_INSN_CSTB
, SEM_FN_NAME ( frvbf
, cstb
) },
28396 { FRVBF_INSN_CSTH
, SEM_FN_NAME ( frvbf
, csth
) },
28397 { FRVBF_INSN_CST
, SEM_FN_NAME ( frvbf
, cst
) },
28398 { FRVBF_INSN_CSTBF
, SEM_FN_NAME ( frvbf
, cstbf
) },
28399 { FRVBF_INSN_CSTHF
, SEM_FN_NAME ( frvbf
, csthf
) },
28400 { FRVBF_INSN_CSTF
, SEM_FN_NAME ( frvbf
, cstf
) },
28401 { FRVBF_INSN_CSTD
, SEM_FN_NAME ( frvbf
, cstd
) },
28402 { FRVBF_INSN_CSTDF
, SEM_FN_NAME ( frvbf
, cstdf
) },
28403 { FRVBF_INSN_CSTQ
, SEM_FN_NAME ( frvbf
, cstq
) },
28404 { FRVBF_INSN_CSTBU
, SEM_FN_NAME ( frvbf
, cstbu
) },
28405 { FRVBF_INSN_CSTHU
, SEM_FN_NAME ( frvbf
, csthu
) },
28406 { FRVBF_INSN_CSTU
, SEM_FN_NAME ( frvbf
, cstu
) },
28407 { FRVBF_INSN_CSTBFU
, SEM_FN_NAME ( frvbf
, cstbfu
) },
28408 { FRVBF_INSN_CSTHFU
, SEM_FN_NAME ( frvbf
, csthfu
) },
28409 { FRVBF_INSN_CSTFU
, SEM_FN_NAME ( frvbf
, cstfu
) },
28410 { FRVBF_INSN_CSTDU
, SEM_FN_NAME ( frvbf
, cstdu
) },
28411 { FRVBF_INSN_CSTDFU
, SEM_FN_NAME ( frvbf
, cstdfu
) },
28412 { FRVBF_INSN_STBI
, SEM_FN_NAME ( frvbf
, stbi
) },
28413 { FRVBF_INSN_STHI
, SEM_FN_NAME ( frvbf
, sthi
) },
28414 { FRVBF_INSN_STI
, SEM_FN_NAME ( frvbf
, sti
) },
28415 { FRVBF_INSN_STBFI
, SEM_FN_NAME ( frvbf
, stbfi
) },
28416 { FRVBF_INSN_STHFI
, SEM_FN_NAME ( frvbf
, sthfi
) },
28417 { FRVBF_INSN_STFI
, SEM_FN_NAME ( frvbf
, stfi
) },
28418 { FRVBF_INSN_STDI
, SEM_FN_NAME ( frvbf
, stdi
) },
28419 { FRVBF_INSN_STDFI
, SEM_FN_NAME ( frvbf
, stdfi
) },
28420 { FRVBF_INSN_STQI
, SEM_FN_NAME ( frvbf
, stqi
) },
28421 { FRVBF_INSN_STQFI
, SEM_FN_NAME ( frvbf
, stqfi
) },
28422 { FRVBF_INSN_SWAP
, SEM_FN_NAME ( frvbf
, swap
) },
28423 { FRVBF_INSN_SWAPI
, SEM_FN_NAME ( frvbf
, swapi
) },
28424 { FRVBF_INSN_CSWAP
, SEM_FN_NAME ( frvbf
, cswap
) },
28425 { FRVBF_INSN_MOVGF
, SEM_FN_NAME ( frvbf
, movgf
) },
28426 { FRVBF_INSN_MOVFG
, SEM_FN_NAME ( frvbf
, movfg
) },
28427 { FRVBF_INSN_MOVGFD
, SEM_FN_NAME ( frvbf
, movgfd
) },
28428 { FRVBF_INSN_MOVFGD
, SEM_FN_NAME ( frvbf
, movfgd
) },
28429 { FRVBF_INSN_MOVGFQ
, SEM_FN_NAME ( frvbf
, movgfq
) },
28430 { FRVBF_INSN_MOVFGQ
, SEM_FN_NAME ( frvbf
, movfgq
) },
28431 { FRVBF_INSN_CMOVGF
, SEM_FN_NAME ( frvbf
, cmovgf
) },
28432 { FRVBF_INSN_CMOVFG
, SEM_FN_NAME ( frvbf
, cmovfg
) },
28433 { FRVBF_INSN_CMOVGFD
, SEM_FN_NAME ( frvbf
, cmovgfd
) },
28434 { FRVBF_INSN_CMOVFGD
, SEM_FN_NAME ( frvbf
, cmovfgd
) },
28435 { FRVBF_INSN_MOVGS
, SEM_FN_NAME ( frvbf
, movgs
) },
28436 { FRVBF_INSN_MOVSG
, SEM_FN_NAME ( frvbf
, movsg
) },
28437 { FRVBF_INSN_BRA
, SEM_FN_NAME ( frvbf
, bra
) },
28438 { FRVBF_INSN_BNO
, SEM_FN_NAME ( frvbf
, bno
) },
28439 { FRVBF_INSN_BEQ
, SEM_FN_NAME ( frvbf
, beq
) },
28440 { FRVBF_INSN_BNE
, SEM_FN_NAME ( frvbf
, bne
) },
28441 { FRVBF_INSN_BLE
, SEM_FN_NAME ( frvbf
, ble
) },
28442 { FRVBF_INSN_BGT
, SEM_FN_NAME ( frvbf
, bgt
) },
28443 { FRVBF_INSN_BLT
, SEM_FN_NAME ( frvbf
, blt
) },
28444 { FRVBF_INSN_BGE
, SEM_FN_NAME ( frvbf
, bge
) },
28445 { FRVBF_INSN_BLS
, SEM_FN_NAME ( frvbf
, bls
) },
28446 { FRVBF_INSN_BHI
, SEM_FN_NAME ( frvbf
, bhi
) },
28447 { FRVBF_INSN_BC
, SEM_FN_NAME ( frvbf
, bc
) },
28448 { FRVBF_INSN_BNC
, SEM_FN_NAME ( frvbf
, bnc
) },
28449 { FRVBF_INSN_BN
, SEM_FN_NAME ( frvbf
, bn
) },
28450 { FRVBF_INSN_BP
, SEM_FN_NAME ( frvbf
, bp
) },
28451 { FRVBF_INSN_BV
, SEM_FN_NAME ( frvbf
, bv
) },
28452 { FRVBF_INSN_BNV
, SEM_FN_NAME ( frvbf
, bnv
) },
28453 { FRVBF_INSN_FBRA
, SEM_FN_NAME ( frvbf
, fbra
) },
28454 { FRVBF_INSN_FBNO
, SEM_FN_NAME ( frvbf
, fbno
) },
28455 { FRVBF_INSN_FBNE
, SEM_FN_NAME ( frvbf
, fbne
) },
28456 { FRVBF_INSN_FBEQ
, SEM_FN_NAME ( frvbf
, fbeq
) },
28457 { FRVBF_INSN_FBLG
, SEM_FN_NAME ( frvbf
, fblg
) },
28458 { FRVBF_INSN_FBUE
, SEM_FN_NAME ( frvbf
, fbue
) },
28459 { FRVBF_INSN_FBUL
, SEM_FN_NAME ( frvbf
, fbul
) },
28460 { FRVBF_INSN_FBGE
, SEM_FN_NAME ( frvbf
, fbge
) },
28461 { FRVBF_INSN_FBLT
, SEM_FN_NAME ( frvbf
, fblt
) },
28462 { FRVBF_INSN_FBUGE
, SEM_FN_NAME ( frvbf
, fbuge
) },
28463 { FRVBF_INSN_FBUG
, SEM_FN_NAME ( frvbf
, fbug
) },
28464 { FRVBF_INSN_FBLE
, SEM_FN_NAME ( frvbf
, fble
) },
28465 { FRVBF_INSN_FBGT
, SEM_FN_NAME ( frvbf
, fbgt
) },
28466 { FRVBF_INSN_FBULE
, SEM_FN_NAME ( frvbf
, fbule
) },
28467 { FRVBF_INSN_FBU
, SEM_FN_NAME ( frvbf
, fbu
) },
28468 { FRVBF_INSN_FBO
, SEM_FN_NAME ( frvbf
, fbo
) },
28469 { FRVBF_INSN_BCTRLR
, SEM_FN_NAME ( frvbf
, bctrlr
) },
28470 { FRVBF_INSN_BRALR
, SEM_FN_NAME ( frvbf
, bralr
) },
28471 { FRVBF_INSN_BNOLR
, SEM_FN_NAME ( frvbf
, bnolr
) },
28472 { FRVBF_INSN_BEQLR
, SEM_FN_NAME ( frvbf
, beqlr
) },
28473 { FRVBF_INSN_BNELR
, SEM_FN_NAME ( frvbf
, bnelr
) },
28474 { FRVBF_INSN_BLELR
, SEM_FN_NAME ( frvbf
, blelr
) },
28475 { FRVBF_INSN_BGTLR
, SEM_FN_NAME ( frvbf
, bgtlr
) },
28476 { FRVBF_INSN_BLTLR
, SEM_FN_NAME ( frvbf
, bltlr
) },
28477 { FRVBF_INSN_BGELR
, SEM_FN_NAME ( frvbf
, bgelr
) },
28478 { FRVBF_INSN_BLSLR
, SEM_FN_NAME ( frvbf
, blslr
) },
28479 { FRVBF_INSN_BHILR
, SEM_FN_NAME ( frvbf
, bhilr
) },
28480 { FRVBF_INSN_BCLR
, SEM_FN_NAME ( frvbf
, bclr
) },
28481 { FRVBF_INSN_BNCLR
, SEM_FN_NAME ( frvbf
, bnclr
) },
28482 { FRVBF_INSN_BNLR
, SEM_FN_NAME ( frvbf
, bnlr
) },
28483 { FRVBF_INSN_BPLR
, SEM_FN_NAME ( frvbf
, bplr
) },
28484 { FRVBF_INSN_BVLR
, SEM_FN_NAME ( frvbf
, bvlr
) },
28485 { FRVBF_INSN_BNVLR
, SEM_FN_NAME ( frvbf
, bnvlr
) },
28486 { FRVBF_INSN_FBRALR
, SEM_FN_NAME ( frvbf
, fbralr
) },
28487 { FRVBF_INSN_FBNOLR
, SEM_FN_NAME ( frvbf
, fbnolr
) },
28488 { FRVBF_INSN_FBEQLR
, SEM_FN_NAME ( frvbf
, fbeqlr
) },
28489 { FRVBF_INSN_FBNELR
, SEM_FN_NAME ( frvbf
, fbnelr
) },
28490 { FRVBF_INSN_FBLGLR
, SEM_FN_NAME ( frvbf
, fblglr
) },
28491 { FRVBF_INSN_FBUELR
, SEM_FN_NAME ( frvbf
, fbuelr
) },
28492 { FRVBF_INSN_FBULLR
, SEM_FN_NAME ( frvbf
, fbullr
) },
28493 { FRVBF_INSN_FBGELR
, SEM_FN_NAME ( frvbf
, fbgelr
) },
28494 { FRVBF_INSN_FBLTLR
, SEM_FN_NAME ( frvbf
, fbltlr
) },
28495 { FRVBF_INSN_FBUGELR
, SEM_FN_NAME ( frvbf
, fbugelr
) },
28496 { FRVBF_INSN_FBUGLR
, SEM_FN_NAME ( frvbf
, fbuglr
) },
28497 { FRVBF_INSN_FBLELR
, SEM_FN_NAME ( frvbf
, fblelr
) },
28498 { FRVBF_INSN_FBGTLR
, SEM_FN_NAME ( frvbf
, fbgtlr
) },
28499 { FRVBF_INSN_FBULELR
, SEM_FN_NAME ( frvbf
, fbulelr
) },
28500 { FRVBF_INSN_FBULR
, SEM_FN_NAME ( frvbf
, fbulr
) },
28501 { FRVBF_INSN_FBOLR
, SEM_FN_NAME ( frvbf
, fbolr
) },
28502 { FRVBF_INSN_BCRALR
, SEM_FN_NAME ( frvbf
, bcralr
) },
28503 { FRVBF_INSN_BCNOLR
, SEM_FN_NAME ( frvbf
, bcnolr
) },
28504 { FRVBF_INSN_BCEQLR
, SEM_FN_NAME ( frvbf
, bceqlr
) },
28505 { FRVBF_INSN_BCNELR
, SEM_FN_NAME ( frvbf
, bcnelr
) },
28506 { FRVBF_INSN_BCLELR
, SEM_FN_NAME ( frvbf
, bclelr
) },
28507 { FRVBF_INSN_BCGTLR
, SEM_FN_NAME ( frvbf
, bcgtlr
) },
28508 { FRVBF_INSN_BCLTLR
, SEM_FN_NAME ( frvbf
, bcltlr
) },
28509 { FRVBF_INSN_BCGELR
, SEM_FN_NAME ( frvbf
, bcgelr
) },
28510 { FRVBF_INSN_BCLSLR
, SEM_FN_NAME ( frvbf
, bclslr
) },
28511 { FRVBF_INSN_BCHILR
, SEM_FN_NAME ( frvbf
, bchilr
) },
28512 { FRVBF_INSN_BCCLR
, SEM_FN_NAME ( frvbf
, bcclr
) },
28513 { FRVBF_INSN_BCNCLR
, SEM_FN_NAME ( frvbf
, bcnclr
) },
28514 { FRVBF_INSN_BCNLR
, SEM_FN_NAME ( frvbf
, bcnlr
) },
28515 { FRVBF_INSN_BCPLR
, SEM_FN_NAME ( frvbf
, bcplr
) },
28516 { FRVBF_INSN_BCVLR
, SEM_FN_NAME ( frvbf
, bcvlr
) },
28517 { FRVBF_INSN_BCNVLR
, SEM_FN_NAME ( frvbf
, bcnvlr
) },
28518 { FRVBF_INSN_FCBRALR
, SEM_FN_NAME ( frvbf
, fcbralr
) },
28519 { FRVBF_INSN_FCBNOLR
, SEM_FN_NAME ( frvbf
, fcbnolr
) },
28520 { FRVBF_INSN_FCBEQLR
, SEM_FN_NAME ( frvbf
, fcbeqlr
) },
28521 { FRVBF_INSN_FCBNELR
, SEM_FN_NAME ( frvbf
, fcbnelr
) },
28522 { FRVBF_INSN_FCBLGLR
, SEM_FN_NAME ( frvbf
, fcblglr
) },
28523 { FRVBF_INSN_FCBUELR
, SEM_FN_NAME ( frvbf
, fcbuelr
) },
28524 { FRVBF_INSN_FCBULLR
, SEM_FN_NAME ( frvbf
, fcbullr
) },
28525 { FRVBF_INSN_FCBGELR
, SEM_FN_NAME ( frvbf
, fcbgelr
) },
28526 { FRVBF_INSN_FCBLTLR
, SEM_FN_NAME ( frvbf
, fcbltlr
) },
28527 { FRVBF_INSN_FCBUGELR
, SEM_FN_NAME ( frvbf
, fcbugelr
) },
28528 { FRVBF_INSN_FCBUGLR
, SEM_FN_NAME ( frvbf
, fcbuglr
) },
28529 { FRVBF_INSN_FCBLELR
, SEM_FN_NAME ( frvbf
, fcblelr
) },
28530 { FRVBF_INSN_FCBGTLR
, SEM_FN_NAME ( frvbf
, fcbgtlr
) },
28531 { FRVBF_INSN_FCBULELR
, SEM_FN_NAME ( frvbf
, fcbulelr
) },
28532 { FRVBF_INSN_FCBULR
, SEM_FN_NAME ( frvbf
, fcbulr
) },
28533 { FRVBF_INSN_FCBOLR
, SEM_FN_NAME ( frvbf
, fcbolr
) },
28534 { FRVBF_INSN_JMPL
, SEM_FN_NAME ( frvbf
, jmpl
) },
28535 { FRVBF_INSN_CALLL
, SEM_FN_NAME ( frvbf
, calll
) },
28536 { FRVBF_INSN_JMPIL
, SEM_FN_NAME ( frvbf
, jmpil
) },
28537 { FRVBF_INSN_CALLIL
, SEM_FN_NAME ( frvbf
, callil
) },
28538 { FRVBF_INSN_CALL
, SEM_FN_NAME ( frvbf
, call
) },
28539 { FRVBF_INSN_RETT
, SEM_FN_NAME ( frvbf
, rett
) },
28540 { FRVBF_INSN_REI
, SEM_FN_NAME ( frvbf
, rei
) },
28541 { FRVBF_INSN_TRA
, SEM_FN_NAME ( frvbf
, tra
) },
28542 { FRVBF_INSN_TNO
, SEM_FN_NAME ( frvbf
, tno
) },
28543 { FRVBF_INSN_TEQ
, SEM_FN_NAME ( frvbf
, teq
) },
28544 { FRVBF_INSN_TNE
, SEM_FN_NAME ( frvbf
, tne
) },
28545 { FRVBF_INSN_TLE
, SEM_FN_NAME ( frvbf
, tle
) },
28546 { FRVBF_INSN_TGT
, SEM_FN_NAME ( frvbf
, tgt
) },
28547 { FRVBF_INSN_TLT
, SEM_FN_NAME ( frvbf
, tlt
) },
28548 { FRVBF_INSN_TGE
, SEM_FN_NAME ( frvbf
, tge
) },
28549 { FRVBF_INSN_TLS
, SEM_FN_NAME ( frvbf
, tls
) },
28550 { FRVBF_INSN_THI
, SEM_FN_NAME ( frvbf
, thi
) },
28551 { FRVBF_INSN_TC
, SEM_FN_NAME ( frvbf
, tc
) },
28552 { FRVBF_INSN_TNC
, SEM_FN_NAME ( frvbf
, tnc
) },
28553 { FRVBF_INSN_TN
, SEM_FN_NAME ( frvbf
, tn
) },
28554 { FRVBF_INSN_TP
, SEM_FN_NAME ( frvbf
, tp
) },
28555 { FRVBF_INSN_TV
, SEM_FN_NAME ( frvbf
, tv
) },
28556 { FRVBF_INSN_TNV
, SEM_FN_NAME ( frvbf
, tnv
) },
28557 { FRVBF_INSN_FTRA
, SEM_FN_NAME ( frvbf
, ftra
) },
28558 { FRVBF_INSN_FTNO
, SEM_FN_NAME ( frvbf
, ftno
) },
28559 { FRVBF_INSN_FTNE
, SEM_FN_NAME ( frvbf
, ftne
) },
28560 { FRVBF_INSN_FTEQ
, SEM_FN_NAME ( frvbf
, fteq
) },
28561 { FRVBF_INSN_FTLG
, SEM_FN_NAME ( frvbf
, ftlg
) },
28562 { FRVBF_INSN_FTUE
, SEM_FN_NAME ( frvbf
, ftue
) },
28563 { FRVBF_INSN_FTUL
, SEM_FN_NAME ( frvbf
, ftul
) },
28564 { FRVBF_INSN_FTGE
, SEM_FN_NAME ( frvbf
, ftge
) },
28565 { FRVBF_INSN_FTLT
, SEM_FN_NAME ( frvbf
, ftlt
) },
28566 { FRVBF_INSN_FTUGE
, SEM_FN_NAME ( frvbf
, ftuge
) },
28567 { FRVBF_INSN_FTUG
, SEM_FN_NAME ( frvbf
, ftug
) },
28568 { FRVBF_INSN_FTLE
, SEM_FN_NAME ( frvbf
, ftle
) },
28569 { FRVBF_INSN_FTGT
, SEM_FN_NAME ( frvbf
, ftgt
) },
28570 { FRVBF_INSN_FTULE
, SEM_FN_NAME ( frvbf
, ftule
) },
28571 { FRVBF_INSN_FTU
, SEM_FN_NAME ( frvbf
, ftu
) },
28572 { FRVBF_INSN_FTO
, SEM_FN_NAME ( frvbf
, fto
) },
28573 { FRVBF_INSN_TIRA
, SEM_FN_NAME ( frvbf
, tira
) },
28574 { FRVBF_INSN_TINO
, SEM_FN_NAME ( frvbf
, tino
) },
28575 { FRVBF_INSN_TIEQ
, SEM_FN_NAME ( frvbf
, tieq
) },
28576 { FRVBF_INSN_TINE
, SEM_FN_NAME ( frvbf
, tine
) },
28577 { FRVBF_INSN_TILE
, SEM_FN_NAME ( frvbf
, tile
) },
28578 { FRVBF_INSN_TIGT
, SEM_FN_NAME ( frvbf
, tigt
) },
28579 { FRVBF_INSN_TILT
, SEM_FN_NAME ( frvbf
, tilt
) },
28580 { FRVBF_INSN_TIGE
, SEM_FN_NAME ( frvbf
, tige
) },
28581 { FRVBF_INSN_TILS
, SEM_FN_NAME ( frvbf
, tils
) },
28582 { FRVBF_INSN_TIHI
, SEM_FN_NAME ( frvbf
, tihi
) },
28583 { FRVBF_INSN_TIC
, SEM_FN_NAME ( frvbf
, tic
) },
28584 { FRVBF_INSN_TINC
, SEM_FN_NAME ( frvbf
, tinc
) },
28585 { FRVBF_INSN_TIN
, SEM_FN_NAME ( frvbf
, tin
) },
28586 { FRVBF_INSN_TIP
, SEM_FN_NAME ( frvbf
, tip
) },
28587 { FRVBF_INSN_TIV
, SEM_FN_NAME ( frvbf
, tiv
) },
28588 { FRVBF_INSN_TINV
, SEM_FN_NAME ( frvbf
, tinv
) },
28589 { FRVBF_INSN_FTIRA
, SEM_FN_NAME ( frvbf
, ftira
) },
28590 { FRVBF_INSN_FTINO
, SEM_FN_NAME ( frvbf
, ftino
) },
28591 { FRVBF_INSN_FTINE
, SEM_FN_NAME ( frvbf
, ftine
) },
28592 { FRVBF_INSN_FTIEQ
, SEM_FN_NAME ( frvbf
, ftieq
) },
28593 { FRVBF_INSN_FTILG
, SEM_FN_NAME ( frvbf
, ftilg
) },
28594 { FRVBF_INSN_FTIUE
, SEM_FN_NAME ( frvbf
, ftiue
) },
28595 { FRVBF_INSN_FTIUL
, SEM_FN_NAME ( frvbf
, ftiul
) },
28596 { FRVBF_INSN_FTIGE
, SEM_FN_NAME ( frvbf
, ftige
) },
28597 { FRVBF_INSN_FTILT
, SEM_FN_NAME ( frvbf
, ftilt
) },
28598 { FRVBF_INSN_FTIUGE
, SEM_FN_NAME ( frvbf
, ftiuge
) },
28599 { FRVBF_INSN_FTIUG
, SEM_FN_NAME ( frvbf
, ftiug
) },
28600 { FRVBF_INSN_FTILE
, SEM_FN_NAME ( frvbf
, ftile
) },
28601 { FRVBF_INSN_FTIGT
, SEM_FN_NAME ( frvbf
, ftigt
) },
28602 { FRVBF_INSN_FTIULE
, SEM_FN_NAME ( frvbf
, ftiule
) },
28603 { FRVBF_INSN_FTIU
, SEM_FN_NAME ( frvbf
, ftiu
) },
28604 { FRVBF_INSN_FTIO
, SEM_FN_NAME ( frvbf
, ftio
) },
28605 { FRVBF_INSN_BREAK
, SEM_FN_NAME ( frvbf
, break ) },
28606 { FRVBF_INSN_MTRAP
, SEM_FN_NAME ( frvbf
, mtrap
) },
28607 { FRVBF_INSN_ANDCR
, SEM_FN_NAME ( frvbf
, andcr
) },
28608 { FRVBF_INSN_ORCR
, SEM_FN_NAME ( frvbf
, orcr
) },
28609 { FRVBF_INSN_XORCR
, SEM_FN_NAME ( frvbf
, xorcr
) },
28610 { FRVBF_INSN_NANDCR
, SEM_FN_NAME ( frvbf
, nandcr
) },
28611 { FRVBF_INSN_NORCR
, SEM_FN_NAME ( frvbf
, norcr
) },
28612 { FRVBF_INSN_ANDNCR
, SEM_FN_NAME ( frvbf
, andncr
) },
28613 { FRVBF_INSN_ORNCR
, SEM_FN_NAME ( frvbf
, orncr
) },
28614 { FRVBF_INSN_NANDNCR
, SEM_FN_NAME ( frvbf
, nandncr
) },
28615 { FRVBF_INSN_NORNCR
, SEM_FN_NAME ( frvbf
, norncr
) },
28616 { FRVBF_INSN_NOTCR
, SEM_FN_NAME ( frvbf
, notcr
) },
28617 { FRVBF_INSN_CKRA
, SEM_FN_NAME ( frvbf
, ckra
) },
28618 { FRVBF_INSN_CKNO
, SEM_FN_NAME ( frvbf
, ckno
) },
28619 { FRVBF_INSN_CKEQ
, SEM_FN_NAME ( frvbf
, ckeq
) },
28620 { FRVBF_INSN_CKNE
, SEM_FN_NAME ( frvbf
, ckne
) },
28621 { FRVBF_INSN_CKLE
, SEM_FN_NAME ( frvbf
, ckle
) },
28622 { FRVBF_INSN_CKGT
, SEM_FN_NAME ( frvbf
, ckgt
) },
28623 { FRVBF_INSN_CKLT
, SEM_FN_NAME ( frvbf
, cklt
) },
28624 { FRVBF_INSN_CKGE
, SEM_FN_NAME ( frvbf
, ckge
) },
28625 { FRVBF_INSN_CKLS
, SEM_FN_NAME ( frvbf
, ckls
) },
28626 { FRVBF_INSN_CKHI
, SEM_FN_NAME ( frvbf
, ckhi
) },
28627 { FRVBF_INSN_CKC
, SEM_FN_NAME ( frvbf
, ckc
) },
28628 { FRVBF_INSN_CKNC
, SEM_FN_NAME ( frvbf
, cknc
) },
28629 { FRVBF_INSN_CKN
, SEM_FN_NAME ( frvbf
, ckn
) },
28630 { FRVBF_INSN_CKP
, SEM_FN_NAME ( frvbf
, ckp
) },
28631 { FRVBF_INSN_CKV
, SEM_FN_NAME ( frvbf
, ckv
) },
28632 { FRVBF_INSN_CKNV
, SEM_FN_NAME ( frvbf
, cknv
) },
28633 { FRVBF_INSN_FCKRA
, SEM_FN_NAME ( frvbf
, fckra
) },
28634 { FRVBF_INSN_FCKNO
, SEM_FN_NAME ( frvbf
, fckno
) },
28635 { FRVBF_INSN_FCKNE
, SEM_FN_NAME ( frvbf
, fckne
) },
28636 { FRVBF_INSN_FCKEQ
, SEM_FN_NAME ( frvbf
, fckeq
) },
28637 { FRVBF_INSN_FCKLG
, SEM_FN_NAME ( frvbf
, fcklg
) },
28638 { FRVBF_INSN_FCKUE
, SEM_FN_NAME ( frvbf
, fckue
) },
28639 { FRVBF_INSN_FCKUL
, SEM_FN_NAME ( frvbf
, fckul
) },
28640 { FRVBF_INSN_FCKGE
, SEM_FN_NAME ( frvbf
, fckge
) },
28641 { FRVBF_INSN_FCKLT
, SEM_FN_NAME ( frvbf
, fcklt
) },
28642 { FRVBF_INSN_FCKUGE
, SEM_FN_NAME ( frvbf
, fckuge
) },
28643 { FRVBF_INSN_FCKUG
, SEM_FN_NAME ( frvbf
, fckug
) },
28644 { FRVBF_INSN_FCKLE
, SEM_FN_NAME ( frvbf
, fckle
) },
28645 { FRVBF_INSN_FCKGT
, SEM_FN_NAME ( frvbf
, fckgt
) },
28646 { FRVBF_INSN_FCKULE
, SEM_FN_NAME ( frvbf
, fckule
) },
28647 { FRVBF_INSN_FCKU
, SEM_FN_NAME ( frvbf
, fcku
) },
28648 { FRVBF_INSN_FCKO
, SEM_FN_NAME ( frvbf
, fcko
) },
28649 { FRVBF_INSN_CCKRA
, SEM_FN_NAME ( frvbf
, cckra
) },
28650 { FRVBF_INSN_CCKNO
, SEM_FN_NAME ( frvbf
, cckno
) },
28651 { FRVBF_INSN_CCKEQ
, SEM_FN_NAME ( frvbf
, cckeq
) },
28652 { FRVBF_INSN_CCKNE
, SEM_FN_NAME ( frvbf
, cckne
) },
28653 { FRVBF_INSN_CCKLE
, SEM_FN_NAME ( frvbf
, cckle
) },
28654 { FRVBF_INSN_CCKGT
, SEM_FN_NAME ( frvbf
, cckgt
) },
28655 { FRVBF_INSN_CCKLT
, SEM_FN_NAME ( frvbf
, ccklt
) },
28656 { FRVBF_INSN_CCKGE
, SEM_FN_NAME ( frvbf
, cckge
) },
28657 { FRVBF_INSN_CCKLS
, SEM_FN_NAME ( frvbf
, cckls
) },
28658 { FRVBF_INSN_CCKHI
, SEM_FN_NAME ( frvbf
, cckhi
) },
28659 { FRVBF_INSN_CCKC
, SEM_FN_NAME ( frvbf
, cckc
) },
28660 { FRVBF_INSN_CCKNC
, SEM_FN_NAME ( frvbf
, ccknc
) },
28661 { FRVBF_INSN_CCKN
, SEM_FN_NAME ( frvbf
, cckn
) },
28662 { FRVBF_INSN_CCKP
, SEM_FN_NAME ( frvbf
, cckp
) },
28663 { FRVBF_INSN_CCKV
, SEM_FN_NAME ( frvbf
, cckv
) },
28664 { FRVBF_INSN_CCKNV
, SEM_FN_NAME ( frvbf
, ccknv
) },
28665 { FRVBF_INSN_CFCKRA
, SEM_FN_NAME ( frvbf
, cfckra
) },
28666 { FRVBF_INSN_CFCKNO
, SEM_FN_NAME ( frvbf
, cfckno
) },
28667 { FRVBF_INSN_CFCKNE
, SEM_FN_NAME ( frvbf
, cfckne
) },
28668 { FRVBF_INSN_CFCKEQ
, SEM_FN_NAME ( frvbf
, cfckeq
) },
28669 { FRVBF_INSN_CFCKLG
, SEM_FN_NAME ( frvbf
, cfcklg
) },
28670 { FRVBF_INSN_CFCKUE
, SEM_FN_NAME ( frvbf
, cfckue
) },
28671 { FRVBF_INSN_CFCKUL
, SEM_FN_NAME ( frvbf
, cfckul
) },
28672 { FRVBF_INSN_CFCKGE
, SEM_FN_NAME ( frvbf
, cfckge
) },
28673 { FRVBF_INSN_CFCKLT
, SEM_FN_NAME ( frvbf
, cfcklt
) },
28674 { FRVBF_INSN_CFCKUGE
, SEM_FN_NAME ( frvbf
, cfckuge
) },
28675 { FRVBF_INSN_CFCKUG
, SEM_FN_NAME ( frvbf
, cfckug
) },
28676 { FRVBF_INSN_CFCKLE
, SEM_FN_NAME ( frvbf
, cfckle
) },
28677 { FRVBF_INSN_CFCKGT
, SEM_FN_NAME ( frvbf
, cfckgt
) },
28678 { FRVBF_INSN_CFCKULE
, SEM_FN_NAME ( frvbf
, cfckule
) },
28679 { FRVBF_INSN_CFCKU
, SEM_FN_NAME ( frvbf
, cfcku
) },
28680 { FRVBF_INSN_CFCKO
, SEM_FN_NAME ( frvbf
, cfcko
) },
28681 { FRVBF_INSN_CJMPL
, SEM_FN_NAME ( frvbf
, cjmpl
) },
28682 { FRVBF_INSN_CCALLL
, SEM_FN_NAME ( frvbf
, ccalll
) },
28683 { FRVBF_INSN_ICI
, SEM_FN_NAME ( frvbf
, ici
) },
28684 { FRVBF_INSN_DCI
, SEM_FN_NAME ( frvbf
, dci
) },
28685 { FRVBF_INSN_ICEI
, SEM_FN_NAME ( frvbf
, icei
) },
28686 { FRVBF_INSN_DCEI
, SEM_FN_NAME ( frvbf
, dcei
) },
28687 { FRVBF_INSN_DCF
, SEM_FN_NAME ( frvbf
, dcf
) },
28688 { FRVBF_INSN_DCEF
, SEM_FN_NAME ( frvbf
, dcef
) },
28689 { FRVBF_INSN_WITLB
, SEM_FN_NAME ( frvbf
, witlb
) },
28690 { FRVBF_INSN_WDTLB
, SEM_FN_NAME ( frvbf
, wdtlb
) },
28691 { FRVBF_INSN_ITLBI
, SEM_FN_NAME ( frvbf
, itlbi
) },
28692 { FRVBF_INSN_DTLBI
, SEM_FN_NAME ( frvbf
, dtlbi
) },
28693 { FRVBF_INSN_ICPL
, SEM_FN_NAME ( frvbf
, icpl
) },
28694 { FRVBF_INSN_DCPL
, SEM_FN_NAME ( frvbf
, dcpl
) },
28695 { FRVBF_INSN_ICUL
, SEM_FN_NAME ( frvbf
, icul
) },
28696 { FRVBF_INSN_DCUL
, SEM_FN_NAME ( frvbf
, dcul
) },
28697 { FRVBF_INSN_BAR
, SEM_FN_NAME ( frvbf
, bar
) },
28698 { FRVBF_INSN_MEMBAR
, SEM_FN_NAME ( frvbf
, membar
) },
28699 { FRVBF_INSN_LRAI
, SEM_FN_NAME ( frvbf
, lrai
) },
28700 { FRVBF_INSN_LRAD
, SEM_FN_NAME ( frvbf
, lrad
) },
28701 { FRVBF_INSN_TLBPR
, SEM_FN_NAME ( frvbf
, tlbpr
) },
28702 { FRVBF_INSN_COP1
, SEM_FN_NAME ( frvbf
, cop1
) },
28703 { FRVBF_INSN_COP2
, SEM_FN_NAME ( frvbf
, cop2
) },
28704 { FRVBF_INSN_CLRGR
, SEM_FN_NAME ( frvbf
, clrgr
) },
28705 { FRVBF_INSN_CLRFR
, SEM_FN_NAME ( frvbf
, clrfr
) },
28706 { FRVBF_INSN_CLRGA
, SEM_FN_NAME ( frvbf
, clrga
) },
28707 { FRVBF_INSN_CLRFA
, SEM_FN_NAME ( frvbf
, clrfa
) },
28708 { FRVBF_INSN_COMMITGR
, SEM_FN_NAME ( frvbf
, commitgr
) },
28709 { FRVBF_INSN_COMMITFR
, SEM_FN_NAME ( frvbf
, commitfr
) },
28710 { FRVBF_INSN_COMMITGA
, SEM_FN_NAME ( frvbf
, commitga
) },
28711 { FRVBF_INSN_COMMITFA
, SEM_FN_NAME ( frvbf
, commitfa
) },
28712 { FRVBF_INSN_FITOS
, SEM_FN_NAME ( frvbf
, fitos
) },
28713 { FRVBF_INSN_FSTOI
, SEM_FN_NAME ( frvbf
, fstoi
) },
28714 { FRVBF_INSN_FITOD
, SEM_FN_NAME ( frvbf
, fitod
) },
28715 { FRVBF_INSN_FDTOI
, SEM_FN_NAME ( frvbf
, fdtoi
) },
28716 { FRVBF_INSN_FDITOS
, SEM_FN_NAME ( frvbf
, fditos
) },
28717 { FRVBF_INSN_FDSTOI
, SEM_FN_NAME ( frvbf
, fdstoi
) },
28718 { FRVBF_INSN_NFDITOS
, SEM_FN_NAME ( frvbf
, nfditos
) },
28719 { FRVBF_INSN_NFDSTOI
, SEM_FN_NAME ( frvbf
, nfdstoi
) },
28720 { FRVBF_INSN_CFITOS
, SEM_FN_NAME ( frvbf
, cfitos
) },
28721 { FRVBF_INSN_CFSTOI
, SEM_FN_NAME ( frvbf
, cfstoi
) },
28722 { FRVBF_INSN_NFITOS
, SEM_FN_NAME ( frvbf
, nfitos
) },
28723 { FRVBF_INSN_NFSTOI
, SEM_FN_NAME ( frvbf
, nfstoi
) },
28724 { FRVBF_INSN_FMOVS
, SEM_FN_NAME ( frvbf
, fmovs
) },
28725 { FRVBF_INSN_FMOVD
, SEM_FN_NAME ( frvbf
, fmovd
) },
28726 { FRVBF_INSN_FDMOVS
, SEM_FN_NAME ( frvbf
, fdmovs
) },
28727 { FRVBF_INSN_CFMOVS
, SEM_FN_NAME ( frvbf
, cfmovs
) },
28728 { FRVBF_INSN_FNEGS
, SEM_FN_NAME ( frvbf
, fnegs
) },
28729 { FRVBF_INSN_FNEGD
, SEM_FN_NAME ( frvbf
, fnegd
) },
28730 { FRVBF_INSN_FDNEGS
, SEM_FN_NAME ( frvbf
, fdnegs
) },
28731 { FRVBF_INSN_CFNEGS
, SEM_FN_NAME ( frvbf
, cfnegs
) },
28732 { FRVBF_INSN_FABSS
, SEM_FN_NAME ( frvbf
, fabss
) },
28733 { FRVBF_INSN_FABSD
, SEM_FN_NAME ( frvbf
, fabsd
) },
28734 { FRVBF_INSN_FDABSS
, SEM_FN_NAME ( frvbf
, fdabss
) },
28735 { FRVBF_INSN_CFABSS
, SEM_FN_NAME ( frvbf
, cfabss
) },
28736 { FRVBF_INSN_FSQRTS
, SEM_FN_NAME ( frvbf
, fsqrts
) },
28737 { FRVBF_INSN_FDSQRTS
, SEM_FN_NAME ( frvbf
, fdsqrts
) },
28738 { FRVBF_INSN_NFDSQRTS
, SEM_FN_NAME ( frvbf
, nfdsqrts
) },
28739 { FRVBF_INSN_FSQRTD
, SEM_FN_NAME ( frvbf
, fsqrtd
) },
28740 { FRVBF_INSN_CFSQRTS
, SEM_FN_NAME ( frvbf
, cfsqrts
) },
28741 { FRVBF_INSN_NFSQRTS
, SEM_FN_NAME ( frvbf
, nfsqrts
) },
28742 { FRVBF_INSN_FADDS
, SEM_FN_NAME ( frvbf
, fadds
) },
28743 { FRVBF_INSN_FSUBS
, SEM_FN_NAME ( frvbf
, fsubs
) },
28744 { FRVBF_INSN_FMULS
, SEM_FN_NAME ( frvbf
, fmuls
) },
28745 { FRVBF_INSN_FDIVS
, SEM_FN_NAME ( frvbf
, fdivs
) },
28746 { FRVBF_INSN_FADDD
, SEM_FN_NAME ( frvbf
, faddd
) },
28747 { FRVBF_INSN_FSUBD
, SEM_FN_NAME ( frvbf
, fsubd
) },
28748 { FRVBF_INSN_FMULD
, SEM_FN_NAME ( frvbf
, fmuld
) },
28749 { FRVBF_INSN_FDIVD
, SEM_FN_NAME ( frvbf
, fdivd
) },
28750 { FRVBF_INSN_CFADDS
, SEM_FN_NAME ( frvbf
, cfadds
) },
28751 { FRVBF_INSN_CFSUBS
, SEM_FN_NAME ( frvbf
, cfsubs
) },
28752 { FRVBF_INSN_CFMULS
, SEM_FN_NAME ( frvbf
, cfmuls
) },
28753 { FRVBF_INSN_CFDIVS
, SEM_FN_NAME ( frvbf
, cfdivs
) },
28754 { FRVBF_INSN_NFADDS
, SEM_FN_NAME ( frvbf
, nfadds
) },
28755 { FRVBF_INSN_NFSUBS
, SEM_FN_NAME ( frvbf
, nfsubs
) },
28756 { FRVBF_INSN_NFMULS
, SEM_FN_NAME ( frvbf
, nfmuls
) },
28757 { FRVBF_INSN_NFDIVS
, SEM_FN_NAME ( frvbf
, nfdivs
) },
28758 { FRVBF_INSN_FCMPS
, SEM_FN_NAME ( frvbf
, fcmps
) },
28759 { FRVBF_INSN_FCMPD
, SEM_FN_NAME ( frvbf
, fcmpd
) },
28760 { FRVBF_INSN_CFCMPS
, SEM_FN_NAME ( frvbf
, cfcmps
) },
28761 { FRVBF_INSN_FDCMPS
, SEM_FN_NAME ( frvbf
, fdcmps
) },
28762 { FRVBF_INSN_FMADDS
, SEM_FN_NAME ( frvbf
, fmadds
) },
28763 { FRVBF_INSN_FMSUBS
, SEM_FN_NAME ( frvbf
, fmsubs
) },
28764 { FRVBF_INSN_FMADDD
, SEM_FN_NAME ( frvbf
, fmaddd
) },
28765 { FRVBF_INSN_FMSUBD
, SEM_FN_NAME ( frvbf
, fmsubd
) },
28766 { FRVBF_INSN_FDMADDS
, SEM_FN_NAME ( frvbf
, fdmadds
) },
28767 { FRVBF_INSN_NFDMADDS
, SEM_FN_NAME ( frvbf
, nfdmadds
) },
28768 { FRVBF_INSN_CFMADDS
, SEM_FN_NAME ( frvbf
, cfmadds
) },
28769 { FRVBF_INSN_CFMSUBS
, SEM_FN_NAME ( frvbf
, cfmsubs
) },
28770 { FRVBF_INSN_NFMADDS
, SEM_FN_NAME ( frvbf
, nfmadds
) },
28771 { FRVBF_INSN_NFMSUBS
, SEM_FN_NAME ( frvbf
, nfmsubs
) },
28772 { FRVBF_INSN_FMAS
, SEM_FN_NAME ( frvbf
, fmas
) },
28773 { FRVBF_INSN_FMSS
, SEM_FN_NAME ( frvbf
, fmss
) },
28774 { FRVBF_INSN_FDMAS
, SEM_FN_NAME ( frvbf
, fdmas
) },
28775 { FRVBF_INSN_FDMSS
, SEM_FN_NAME ( frvbf
, fdmss
) },
28776 { FRVBF_INSN_NFDMAS
, SEM_FN_NAME ( frvbf
, nfdmas
) },
28777 { FRVBF_INSN_NFDMSS
, SEM_FN_NAME ( frvbf
, nfdmss
) },
28778 { FRVBF_INSN_CFMAS
, SEM_FN_NAME ( frvbf
, cfmas
) },
28779 { FRVBF_INSN_CFMSS
, SEM_FN_NAME ( frvbf
, cfmss
) },
28780 { FRVBF_INSN_FMAD
, SEM_FN_NAME ( frvbf
, fmad
) },
28781 { FRVBF_INSN_FMSD
, SEM_FN_NAME ( frvbf
, fmsd
) },
28782 { FRVBF_INSN_NFMAS
, SEM_FN_NAME ( frvbf
, nfmas
) },
28783 { FRVBF_INSN_NFMSS
, SEM_FN_NAME ( frvbf
, nfmss
) },
28784 { FRVBF_INSN_FDADDS
, SEM_FN_NAME ( frvbf
, fdadds
) },
28785 { FRVBF_INSN_FDSUBS
, SEM_FN_NAME ( frvbf
, fdsubs
) },
28786 { FRVBF_INSN_FDMULS
, SEM_FN_NAME ( frvbf
, fdmuls
) },
28787 { FRVBF_INSN_FDDIVS
, SEM_FN_NAME ( frvbf
, fddivs
) },
28788 { FRVBF_INSN_FDSADS
, SEM_FN_NAME ( frvbf
, fdsads
) },
28789 { FRVBF_INSN_FDMULCS
, SEM_FN_NAME ( frvbf
, fdmulcs
) },
28790 { FRVBF_INSN_NFDMULCS
, SEM_FN_NAME ( frvbf
, nfdmulcs
) },
28791 { FRVBF_INSN_NFDADDS
, SEM_FN_NAME ( frvbf
, nfdadds
) },
28792 { FRVBF_INSN_NFDSUBS
, SEM_FN_NAME ( frvbf
, nfdsubs
) },
28793 { FRVBF_INSN_NFDMULS
, SEM_FN_NAME ( frvbf
, nfdmuls
) },
28794 { FRVBF_INSN_NFDDIVS
, SEM_FN_NAME ( frvbf
, nfddivs
) },
28795 { FRVBF_INSN_NFDSADS
, SEM_FN_NAME ( frvbf
, nfdsads
) },
28796 { FRVBF_INSN_NFDCMPS
, SEM_FN_NAME ( frvbf
, nfdcmps
) },
28797 { FRVBF_INSN_MHSETLOS
, SEM_FN_NAME ( frvbf
, mhsetlos
) },
28798 { FRVBF_INSN_MHSETHIS
, SEM_FN_NAME ( frvbf
, mhsethis
) },
28799 { FRVBF_INSN_MHDSETS
, SEM_FN_NAME ( frvbf
, mhdsets
) },
28800 { FRVBF_INSN_MHSETLOH
, SEM_FN_NAME ( frvbf
, mhsetloh
) },
28801 { FRVBF_INSN_MHSETHIH
, SEM_FN_NAME ( frvbf
, mhsethih
) },
28802 { FRVBF_INSN_MHDSETH
, SEM_FN_NAME ( frvbf
, mhdseth
) },
28803 { FRVBF_INSN_MAND
, SEM_FN_NAME ( frvbf
, mand
) },
28804 { FRVBF_INSN_MOR
, SEM_FN_NAME ( frvbf
, mor
) },
28805 { FRVBF_INSN_MXOR
, SEM_FN_NAME ( frvbf
, mxor
) },
28806 { FRVBF_INSN_CMAND
, SEM_FN_NAME ( frvbf
, cmand
) },
28807 { FRVBF_INSN_CMOR
, SEM_FN_NAME ( frvbf
, cmor
) },
28808 { FRVBF_INSN_CMXOR
, SEM_FN_NAME ( frvbf
, cmxor
) },
28809 { FRVBF_INSN_MNOT
, SEM_FN_NAME ( frvbf
, mnot
) },
28810 { FRVBF_INSN_CMNOT
, SEM_FN_NAME ( frvbf
, cmnot
) },
28811 { FRVBF_INSN_MROTLI
, SEM_FN_NAME ( frvbf
, mrotli
) },
28812 { FRVBF_INSN_MROTRI
, SEM_FN_NAME ( frvbf
, mrotri
) },
28813 { FRVBF_INSN_MWCUT
, SEM_FN_NAME ( frvbf
, mwcut
) },
28814 { FRVBF_INSN_MWCUTI
, SEM_FN_NAME ( frvbf
, mwcuti
) },
28815 { FRVBF_INSN_MCUT
, SEM_FN_NAME ( frvbf
, mcut
) },
28816 { FRVBF_INSN_MCUTI
, SEM_FN_NAME ( frvbf
, mcuti
) },
28817 { FRVBF_INSN_MCUTSS
, SEM_FN_NAME ( frvbf
, mcutss
) },
28818 { FRVBF_INSN_MCUTSSI
, SEM_FN_NAME ( frvbf
, mcutssi
) },
28819 { FRVBF_INSN_MDCUTSSI
, SEM_FN_NAME ( frvbf
, mdcutssi
) },
28820 { FRVBF_INSN_MAVEH
, SEM_FN_NAME ( frvbf
, maveh
) },
28821 { FRVBF_INSN_MSLLHI
, SEM_FN_NAME ( frvbf
, msllhi
) },
28822 { FRVBF_INSN_MSRLHI
, SEM_FN_NAME ( frvbf
, msrlhi
) },
28823 { FRVBF_INSN_MSRAHI
, SEM_FN_NAME ( frvbf
, msrahi
) },
28824 { FRVBF_INSN_MDROTLI
, SEM_FN_NAME ( frvbf
, mdrotli
) },
28825 { FRVBF_INSN_MCPLHI
, SEM_FN_NAME ( frvbf
, mcplhi
) },
28826 { FRVBF_INSN_MCPLI
, SEM_FN_NAME ( frvbf
, mcpli
) },
28827 { FRVBF_INSN_MSATHS
, SEM_FN_NAME ( frvbf
, msaths
) },
28828 { FRVBF_INSN_MQSATHS
, SEM_FN_NAME ( frvbf
, mqsaths
) },
28829 { FRVBF_INSN_MSATHU
, SEM_FN_NAME ( frvbf
, msathu
) },
28830 { FRVBF_INSN_MCMPSH
, SEM_FN_NAME ( frvbf
, mcmpsh
) },
28831 { FRVBF_INSN_MCMPUH
, SEM_FN_NAME ( frvbf
, mcmpuh
) },
28832 { FRVBF_INSN_MABSHS
, SEM_FN_NAME ( frvbf
, mabshs
) },
28833 { FRVBF_INSN_MADDHSS
, SEM_FN_NAME ( frvbf
, maddhss
) },
28834 { FRVBF_INSN_MADDHUS
, SEM_FN_NAME ( frvbf
, maddhus
) },
28835 { FRVBF_INSN_MSUBHSS
, SEM_FN_NAME ( frvbf
, msubhss
) },
28836 { FRVBF_INSN_MSUBHUS
, SEM_FN_NAME ( frvbf
, msubhus
) },
28837 { FRVBF_INSN_CMADDHSS
, SEM_FN_NAME ( frvbf
, cmaddhss
) },
28838 { FRVBF_INSN_CMADDHUS
, SEM_FN_NAME ( frvbf
, cmaddhus
) },
28839 { FRVBF_INSN_CMSUBHSS
, SEM_FN_NAME ( frvbf
, cmsubhss
) },
28840 { FRVBF_INSN_CMSUBHUS
, SEM_FN_NAME ( frvbf
, cmsubhus
) },
28841 { FRVBF_INSN_MQADDHSS
, SEM_FN_NAME ( frvbf
, mqaddhss
) },
28842 { FRVBF_INSN_MQADDHUS
, SEM_FN_NAME ( frvbf
, mqaddhus
) },
28843 { FRVBF_INSN_MQSUBHSS
, SEM_FN_NAME ( frvbf
, mqsubhss
) },
28844 { FRVBF_INSN_MQSUBHUS
, SEM_FN_NAME ( frvbf
, mqsubhus
) },
28845 { FRVBF_INSN_CMQADDHSS
, SEM_FN_NAME ( frvbf
, cmqaddhss
) },
28846 { FRVBF_INSN_CMQADDHUS
, SEM_FN_NAME ( frvbf
, cmqaddhus
) },
28847 { FRVBF_INSN_CMQSUBHSS
, SEM_FN_NAME ( frvbf
, cmqsubhss
) },
28848 { FRVBF_INSN_CMQSUBHUS
, SEM_FN_NAME ( frvbf
, cmqsubhus
) },
28849 { FRVBF_INSN_MQLCLRHS
, SEM_FN_NAME ( frvbf
, mqlclrhs
) },
28850 { FRVBF_INSN_MQLMTHS
, SEM_FN_NAME ( frvbf
, mqlmths
) },
28851 { FRVBF_INSN_MQSLLHI
, SEM_FN_NAME ( frvbf
, mqsllhi
) },
28852 { FRVBF_INSN_MQSRAHI
, SEM_FN_NAME ( frvbf
, mqsrahi
) },
28853 { FRVBF_INSN_MADDACCS
, SEM_FN_NAME ( frvbf
, maddaccs
) },
28854 { FRVBF_INSN_MSUBACCS
, SEM_FN_NAME ( frvbf
, msubaccs
) },
28855 { FRVBF_INSN_MDADDACCS
, SEM_FN_NAME ( frvbf
, mdaddaccs
) },
28856 { FRVBF_INSN_MDSUBACCS
, SEM_FN_NAME ( frvbf
, mdsubaccs
) },
28857 { FRVBF_INSN_MASACCS
, SEM_FN_NAME ( frvbf
, masaccs
) },
28858 { FRVBF_INSN_MDASACCS
, SEM_FN_NAME ( frvbf
, mdasaccs
) },
28859 { FRVBF_INSN_MMULHS
, SEM_FN_NAME ( frvbf
, mmulhs
) },
28860 { FRVBF_INSN_MMULHU
, SEM_FN_NAME ( frvbf
, mmulhu
) },
28861 { FRVBF_INSN_MMULXHS
, SEM_FN_NAME ( frvbf
, mmulxhs
) },
28862 { FRVBF_INSN_MMULXHU
, SEM_FN_NAME ( frvbf
, mmulxhu
) },
28863 { FRVBF_INSN_CMMULHS
, SEM_FN_NAME ( frvbf
, cmmulhs
) },
28864 { FRVBF_INSN_CMMULHU
, SEM_FN_NAME ( frvbf
, cmmulhu
) },
28865 { FRVBF_INSN_MQMULHS
, SEM_FN_NAME ( frvbf
, mqmulhs
) },
28866 { FRVBF_INSN_MQMULHU
, SEM_FN_NAME ( frvbf
, mqmulhu
) },
28867 { FRVBF_INSN_MQMULXHS
, SEM_FN_NAME ( frvbf
, mqmulxhs
) },
28868 { FRVBF_INSN_MQMULXHU
, SEM_FN_NAME ( frvbf
, mqmulxhu
) },
28869 { FRVBF_INSN_CMQMULHS
, SEM_FN_NAME ( frvbf
, cmqmulhs
) },
28870 { FRVBF_INSN_CMQMULHU
, SEM_FN_NAME ( frvbf
, cmqmulhu
) },
28871 { FRVBF_INSN_MMACHS
, SEM_FN_NAME ( frvbf
, mmachs
) },
28872 { FRVBF_INSN_MMACHU
, SEM_FN_NAME ( frvbf
, mmachu
) },
28873 { FRVBF_INSN_MMRDHS
, SEM_FN_NAME ( frvbf
, mmrdhs
) },
28874 { FRVBF_INSN_MMRDHU
, SEM_FN_NAME ( frvbf
, mmrdhu
) },
28875 { FRVBF_INSN_CMMACHS
, SEM_FN_NAME ( frvbf
, cmmachs
) },
28876 { FRVBF_INSN_CMMACHU
, SEM_FN_NAME ( frvbf
, cmmachu
) },
28877 { FRVBF_INSN_MQMACHS
, SEM_FN_NAME ( frvbf
, mqmachs
) },
28878 { FRVBF_INSN_MQMACHU
, SEM_FN_NAME ( frvbf
, mqmachu
) },
28879 { FRVBF_INSN_CMQMACHS
, SEM_FN_NAME ( frvbf
, cmqmachs
) },
28880 { FRVBF_INSN_CMQMACHU
, SEM_FN_NAME ( frvbf
, cmqmachu
) },
28881 { FRVBF_INSN_MQXMACHS
, SEM_FN_NAME ( frvbf
, mqxmachs
) },
28882 { FRVBF_INSN_MQXMACXHS
, SEM_FN_NAME ( frvbf
, mqxmacxhs
) },
28883 { FRVBF_INSN_MQMACXHS
, SEM_FN_NAME ( frvbf
, mqmacxhs
) },
28884 { FRVBF_INSN_MCPXRS
, SEM_FN_NAME ( frvbf
, mcpxrs
) },
28885 { FRVBF_INSN_MCPXRU
, SEM_FN_NAME ( frvbf
, mcpxru
) },
28886 { FRVBF_INSN_MCPXIS
, SEM_FN_NAME ( frvbf
, mcpxis
) },
28887 { FRVBF_INSN_MCPXIU
, SEM_FN_NAME ( frvbf
, mcpxiu
) },
28888 { FRVBF_INSN_CMCPXRS
, SEM_FN_NAME ( frvbf
, cmcpxrs
) },
28889 { FRVBF_INSN_CMCPXRU
, SEM_FN_NAME ( frvbf
, cmcpxru
) },
28890 { FRVBF_INSN_CMCPXIS
, SEM_FN_NAME ( frvbf
, cmcpxis
) },
28891 { FRVBF_INSN_CMCPXIU
, SEM_FN_NAME ( frvbf
, cmcpxiu
) },
28892 { FRVBF_INSN_MQCPXRS
, SEM_FN_NAME ( frvbf
, mqcpxrs
) },
28893 { FRVBF_INSN_MQCPXRU
, SEM_FN_NAME ( frvbf
, mqcpxru
) },
28894 { FRVBF_INSN_MQCPXIS
, SEM_FN_NAME ( frvbf
, mqcpxis
) },
28895 { FRVBF_INSN_MQCPXIU
, SEM_FN_NAME ( frvbf
, mqcpxiu
) },
28896 { FRVBF_INSN_MEXPDHW
, SEM_FN_NAME ( frvbf
, mexpdhw
) },
28897 { FRVBF_INSN_CMEXPDHW
, SEM_FN_NAME ( frvbf
, cmexpdhw
) },
28898 { FRVBF_INSN_MEXPDHD
, SEM_FN_NAME ( frvbf
, mexpdhd
) },
28899 { FRVBF_INSN_CMEXPDHD
, SEM_FN_NAME ( frvbf
, cmexpdhd
) },
28900 { FRVBF_INSN_MPACKH
, SEM_FN_NAME ( frvbf
, mpackh
) },
28901 { FRVBF_INSN_MDPACKH
, SEM_FN_NAME ( frvbf
, mdpackh
) },
28902 { FRVBF_INSN_MUNPACKH
, SEM_FN_NAME ( frvbf
, munpackh
) },
28903 { FRVBF_INSN_MDUNPACKH
, SEM_FN_NAME ( frvbf
, mdunpackh
) },
28904 { FRVBF_INSN_MBTOH
, SEM_FN_NAME ( frvbf
, mbtoh
) },
28905 { FRVBF_INSN_CMBTOH
, SEM_FN_NAME ( frvbf
, cmbtoh
) },
28906 { FRVBF_INSN_MHTOB
, SEM_FN_NAME ( frvbf
, mhtob
) },
28907 { FRVBF_INSN_CMHTOB
, SEM_FN_NAME ( frvbf
, cmhtob
) },
28908 { FRVBF_INSN_MBTOHE
, SEM_FN_NAME ( frvbf
, mbtohe
) },
28909 { FRVBF_INSN_CMBTOHE
, SEM_FN_NAME ( frvbf
, cmbtohe
) },
28910 { FRVBF_INSN_MNOP
, SEM_FN_NAME ( frvbf
, mnop
) },
28911 { FRVBF_INSN_MCLRACC_0
, SEM_FN_NAME ( frvbf
, mclracc_0
) },
28912 { FRVBF_INSN_MCLRACC_1
, SEM_FN_NAME ( frvbf
, mclracc_1
) },
28913 { FRVBF_INSN_MRDACC
, SEM_FN_NAME ( frvbf
, mrdacc
) },
28914 { FRVBF_INSN_MRDACCG
, SEM_FN_NAME ( frvbf
, mrdaccg
) },
28915 { FRVBF_INSN_MWTACC
, SEM_FN_NAME ( frvbf
, mwtacc
) },
28916 { FRVBF_INSN_MWTACCG
, SEM_FN_NAME ( frvbf
, mwtaccg
) },
28917 { FRVBF_INSN_MCOP1
, SEM_FN_NAME ( frvbf
, mcop1
) },
28918 { FRVBF_INSN_MCOP2
, SEM_FN_NAME ( frvbf
, mcop2
) },
28919 { FRVBF_INSN_FNOP
, SEM_FN_NAME ( frvbf
, fnop
) },
28923 /* Add the semantic fns to IDESC_TABLE. */
28926 SEM_FN_NAME ( frvbf
, init_idesc_table
) ( SIM_CPU
* current_cpu
)
28928 IDESC
* idesc_table
= CPU_IDESC ( current_cpu
);
28929 const struct sem_fn_desc
* sf
;
28930 int mach_num
= MACH_NUM ( CPU_MACH ( current_cpu
));
28932 for ( sf
= & sem_fns
[ 0 ]; sf
-> fn
!= 0 ; ++ sf
)
28934 const CGEN_INSN
* insn
= idesc_table
[ sf
-> index
]. idata
;
28935 int valid_p
= ( CGEN_INSN_VIRTUAL_P ( insn
)
28936 || CGEN_INSN_MACH_HAS_P ( insn
, mach_num
));
28939 idesc_table
[ sf
-> index
]. sem_fast
= sf
-> fn
;
28941 idesc_table
[ sf
-> index
]. sem_fast
= SEM_FN_NAME ( frvbf
, x_invalid
);
28944 idesc_table
[ sf
-> index
]. sem_full
= sf
-> fn
;
28946 idesc_table
[ sf
-> index
]. sem_full
= SEM_FN_NAME ( frvbf
, x_invalid
);